Merge remote-tracking branch 'origin/feature/mall_product' into feature/mall_product_new

pull/9/head
perry 2023-06-01 11:29:43 +08:00
commit 296af91986
10 changed files with 79 additions and 40 deletions

View File

@ -132,14 +132,16 @@ public class RechargeOrderServiceImpl implements RechargeOrderService {
rechargeOrderMapper.findListPage(page, pageReqVO);
return new PageResult<>(page.getRecords(), page.getTotal());
}
@Override
public List<PromoterDrawExcelVO> findPromoterDrawExcel(PromoterDrawReqExcelVO excelVO) {
return rechargeOrderMapper.findPromoterDrawExcel(excelVO);
}
@Override
public PageResult<PromoterDrawVO> findPromoterDrawPage(PromoterDrawReqVO pageReqVO) {
Page<PromoterDrawVO> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
if (Objects.nonNull(pageReqVO.getSort())&& StringUtils.equals("2",pageReqVO.getSort())) {
if (Objects.nonNull(pageReqVO.getSort()) && StringUtils.equals("2", pageReqVO.getSort())) {
pageReqVO.setSort(null);
}
rechargeOrderMapper.findPromoterDrawPage(page, pageReqVO);
@ -241,11 +243,11 @@ public class RechargeOrderServiceImpl implements RechargeOrderService {
List<RechargeOrderInfoDO> infoDOS1 = collect.get(orderDO.getOrderId());
for (RechargeOrderInfoDO infoDO : infoDOS1) {
if (infoDO.getPrice().compareTo(new BigDecimal("240")) == 0) {
grade.append("套餐1,");
grade.append("套餐" + infoDO.getPrice() + ",");
} else if (infoDO.getPrice().compareTo(new BigDecimal("400")) == 0) {
grade.append("套餐2,");
grade.append("套餐" + infoDO.getPrice() + ",");
} else if (infoDO.getPrice().compareTo(new BigDecimal("640")) == 0) {
grade.append("套餐3");
grade.append("套餐" + infoDO.getPrice() + ",");
}
}
orderDO.setGrade(grade.toString());

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.member.controller.admin.promoter;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.module.system.enums.common.SexEnum;
import com.github.pagehelper.PageInfo;
import io.swagger.v3.oas.annotations.Parameters;
@ -120,6 +121,7 @@ public class PromoterController {
@Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
})
// @PreAuthorize("@ss.hasPermission('system:user:import')")
@TenantIgnore
public CommonResult<PromoterImportRespVO> importExcel(@RequestParam("file") MultipartFile file,
@RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception {
List<PromoterImportExcelVO> list = ExcelUtils.read(file, PromoterImportExcelVO.class);

View File

@ -22,10 +22,12 @@ import javax.annotation.Resource;
import javax.validation.Validator;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import cn.iocoder.yudao.module.member.controller.admin.promoter.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.promoter.PromoterDO;
@ -179,6 +181,12 @@ public class PromoterServiceImpl implements PromoterService {
if (CollUtil.isEmpty(importUsers)) {
throw exception(PROMOTER_IMPORT_LIST_IS_EMPTY);
}
Set<String> collect = importUsers.stream().map(PromoterImportExcelVO::getMobile).collect(Collectors.toSet());
List<MemberUserDO> list = memberUserService.getByMobileList(collect);
if (!CollectionUtils.isEmpty(list)) {
List<String> collect1 = list.stream().map(MemberUserDO::getMobile).collect(Collectors.toList());
throw new ServiceException(200, "电话号码:" + collect1 + "重复");
}
PromoterImportRespVO respVO = PromoterImportRespVO.builder().createUsernames(new ArrayList<>())
.updateUsernames(new ArrayList<>()).failureUsernames(new LinkedHashMap<>()).build();
List<DeptRespDTO> deptRespDTOList = deptApi.getDeptList();
@ -191,20 +199,20 @@ public class PromoterServiceImpl implements PromoterService {
return;
}
//判断手机号是否注册
MemberUserDO memberUserDO = memberUserService.getUserByMobile(importUser.getMobile());
if (memberUserDO == null) {
// MemberUserDO memberUserDO = memberUserService.getUserByMobile(importUser.getMobile());
// if (memberUserDO == null) {
//创建用户
memberUserDO = new MemberUserDO();
MemberUserDO memberUserDO = new MemberUserDO();
memberUserDO.setNickname(importUser.getNickName());
memberUserDO.setMobile(importUser.getMobile());
memberUserDO.setPassword(importUser.getMobile().substring(importUser.getMobile().length() - 6));
memberUserDO.setStatus(0);
memberUserService.createUserIfAbsent(importUser.getMobile(), importUser.getNickName(), getClientIP());
}
MemberUserDO userIfAbsent = memberUserService.createUserIfAbsent(importUser.getMobile(), importUser.getNickName(), getClientIP());
// }
// 插入
PromoterDO promoter = new PromoterDO();
promoter.setTenantId(SecurityFrameworkUtils.getLoginUser().getTenantId());
promoter.setUserId(memberUserDO.getId());
promoter.setUserId(userIfAbsent.getId());
promoter.setCreateTime(LocalDateTime.now());
Long count = promoterMapper.selectCount(Wrappers.lambdaQuery(PromoterDO.class).eq(PromoterDO::getUserId, memberUserDO.getId()));
if (count > 0) {
@ -225,8 +233,6 @@ public class PromoterServiceImpl implements PromoterService {
}
@Override
public PromoterDO getPromoterDOByUserId(Long userId) {
return promoterMapper.selectOne(Wrappers.<PromoterDO>lambdaQuery().eq(PromoterDO::getUserId, userId).last("LIMIT 1"));

View File

@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
import java.io.InputStream;
import java.util.Collection;
import java.util.List;
import java.util.Set;
/**
* Service
@ -139,4 +140,6 @@ public interface MemberUserService {
Long promoterOrderCount(AppUserInfoReqDTO reqVO);
List<MemberUserDO> getByMobileList(Set<String> collect);
}

View File

@ -15,6 +15,7 @@ import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
import cn.iocoder.yudao.module.system.api.sms.dto.code.SmsCodeUseReqDTO;
import cn.iocoder.yudao.module.system.enums.sms.SmsSceneEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.google.common.annotations.VisibleForTesting;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.crypto.password.PasswordEncoder;
@ -27,6 +28,7 @@ import java.io.InputStream;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.servlet.ServletUtils.getClientIP;
@ -103,7 +105,7 @@ public class MemberUserServiceImpl implements MemberUserService {
user.setMobile(mobile);
user.setNickname(realName);
user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
user.setPassword(encodePassword(mobile.substring(5,11))); // 加密密码
user.setPassword(encodePassword(mobile.substring(mobile.length() - 6))); // 加密密码
user.setRegisterIp(registerIp);
user.setPromoterId(promoterId);
user.setTenantId(TenantContextHolder.getRequiredTenantId());
@ -261,4 +263,11 @@ public class MemberUserServiceImpl implements MemberUserService {
return memberUserMapper.promoterOrderCount(reqVO);
}
@Override
public List<MemberUserDO> getByMobileList(Set<String> collect) {
LambdaQueryWrapper<MemberUserDO> qw = new LambdaQueryWrapper();
qw.in(MemberUserDO::getMobile,collect);
return memberUserMapper.selectList(qw);
}
}

View File

@ -28,14 +28,14 @@
<view class="up" @tap="goEquity">
<image style="width: ;" src="@/static/images/shop/vip_oneStar.png" mode=""></image>
</view>
<text>会员等级1级</text>
<text>会员等级{{vipData.findIndex((item) => item == vip.grade) +1}}</text>
<view class="button" @tap="goEquity"></view>
</view>
<view class="right" v-else>
<view class="up" @tap="goEquity">
<image style="width: ;" src="@/static/images/shop/vip_oneStar.png" mode=""></image>
</view>
<text>会员等级0</text>
<text>会员等级{{vipData.findIndex((item) => item == vip.grade) +1}}</text>
<view class="button" @tap="goEquity"></view>
</view>
</view>
@ -223,7 +223,7 @@
bastInfo: '',
fastInfo: '',
fastList: [],
text: '尊敬的业主:接环卫所通知,近期将对小区进行大扫除,请大家做好准备',
text: '暂无公告',
firstInfo: '',
salesInfo: '',
indicatorDots: false,
@ -286,7 +286,7 @@
lineColor: 'red',
lineStyle: {}, // 线--
listActive: 0, //
vipData:['普通会员','中级会员','高级会员'],
duration: 0.2 // 线
}
},

View File

@ -14,7 +14,7 @@
</view>
<view class="item-text">
<text>充值档次{{item.grade}}</text>
<text>日期{{item.stringCreateTime}}</text>
<text>日期{{$util.timestampToTime(item.stringCreateTime)}}</text>
</view>
</view>
<u-empty v-show="!memberData.length" text="暂无数据" mode="list"></u-empty>

View File

@ -15,6 +15,9 @@ import {
setVisit,
getUserInfo
} from '@/api/user.js'
import {
mapGetters
} from "vuex";
export default {
data(){
return {
@ -23,11 +26,11 @@ export default {
userInfo: {}
}
},
computed: mapGetters(['tenantId']),
mounted(){
getUserInfo().then(res => {
this.userInfo = res.data
console.log(res.data)
getTenant(153).then(res => {
getTenant(this.tenantId).then(res => {
this.tenant = res.data
this.text = res.data.notice
})

View File

@ -67,7 +67,7 @@
<text>{{item.nickname}}</text>
</view>
<text class="extra">
{{ timestampToTime(item.payTime) }}
{{ $util.timestampToTime(item.payTime) }}
<view>{{ item.grade }}</view>
</text>
</view>
@ -152,20 +152,20 @@
}
},
methods: {
timestampToTime(timestamp) {
// 10*1000131000
var date = new Date(timestamp);
var Y = date.getFullYear() + "-";
var M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
var s = (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
return Y + M + D + h + m + s;
},
// timestampToTime(timestamp) {
// // 10*1000131000
// var date = new Date(timestamp);
// var Y = date.getFullYear() + "-";
// var M =
// (date.getMonth() + 1 < 10
// ? "0" + (date.getMonth() + 1)
// : date.getMonth() + 1) + "-";
// var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
// var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
// var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
// var s = (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
// return Y + M + D + h + m + s;
// },
selectClick(value) {
console.log(value)
this.active = value.id

View File

@ -8,6 +8,20 @@ import {
pathToBase64
} from '@/plugin/image-tools/index.js';
export default {
timestampToTime(timestamp) {
// 时间戳为10位需*1000时间戳为13位不需乘1000
var date = new Date(timestamp);
var Y = date.getFullYear() + "-";
var M =
(date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1) + "-";
var D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
var h = (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
var m = (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":";
var s = (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds());
return Y + M + D + h + m + s;
},
/**
* opt object | string
* to_url object | string