Merge remote-tracking branch 'origin/feature/mall_product' into feature/mall_product_new
commit
296af91986
|
@ -132,10 +132,12 @@ 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());
|
||||
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"));
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 // 下划线动画时长
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
})
|
||||
|
|
|
@ -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位需*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;
|
||||
},
|
||||
// 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;
|
||||
// },
|
||||
selectClick(value) {
|
||||
console.log(value)
|
||||
this.active = value.id
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue