From f5d3adf884a49cb8f4563be0c7086a506011d64d Mon Sep 17 00:00:00 2001
From: zhanglin8526 <852614290@qq.com>
Date: 星期六, 26 八月 2023 14:35:47 +0800
Subject: [PATCH] 修改订单查询
---
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 194 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 169 insertions(+), 25 deletions(-)
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index e0fb774..f559ea3 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -27,6 +27,7 @@
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.member.service.member.MemberTotalService;
import com.ruoyi.member.util.HttpUtils;
+import com.ruoyi.member.util.MsgUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.constant.SecurityConstant;
import com.ruoyi.system.api.domain.dto.*;
@@ -390,8 +391,8 @@
for(Activeness activeness : activenessList){
if(activeness.getActivenessName().equals(merMemberPageDto.getMemberActiveness())){
Date nowDay = DateUtils.getNowDate();
- String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
- String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
+ String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getEndDay()));
+ String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getStartDay()));
merMemberPageDto.setActStartDate(actStartDate);
merMemberPageDto.setActEndDate(actEndDate);
break;
@@ -421,13 +422,15 @@
MgtActivenessJudgeVo mgtActivenessJudgeVo;
for (Activeness activeness : activenessList) {
mgtActivenessJudgeVo = new MgtActivenessJudgeVo();
- mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), activeness.getEndDay()));
- mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), activeness.getStartDay() - 1));
+ mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), -activeness.getEndDay()));
+ mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), -activeness.getStartDay()));
mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName());
+ mgtActivenessJudgeVoList.add(mgtActivenessJudgeVo);
}
//活跃度赋值
Date lastPayTime;
for (MerMemberPageVo mgtMemberPageVo : merMemberPageVoList) {
+ //实际是最后服务时间
lastPayTime = mgtMemberPageVo.getLastPayTime();
StringJoiner sj = new StringJoiner(",");
if (lastPayTime != null) {
@@ -473,7 +476,7 @@
MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
// 设置MerMemberInfoVo对象的属性值
merMemberInfoVo.setSurpNumber(memberTotal.getUseableServiceCount());
- merMemberInfoVo.setUserNumber(memberTotal.getUsedServiceCount());
+ merMemberInfoVo.setUserNumber(memberTotal.getTotalPayCount());
merMemberInfoVo.setPayMoney(memberTotal.getTotalPayMoney());
// 创建MerBaseDto对象
MerBaseDto merBaseDto = new MerBaseDto();
@@ -524,6 +527,7 @@
member.setBindingFlag(appMemberBindingDto.getBindingFlag());
member.setRelationShopId(appMemberBindingDto.getShopId());
member.setRelationShopName(appMemberBindingDto.getShopName());
+ member.setBindingType(appMemberBindingDto.getBindingType());
this.saveOrUpdate(member);
}
@@ -623,12 +627,13 @@
// Get the sysUser by mobile number
SysUser sysUser = sysUserService.getSysUserByMobile(phoneNumber).getData();
// If sysUser does not exist, create a new one
- if (sysUser == null) {
+ if (sysUser == null || !sysUser.getUserType().equals("03")) {
String memberId = IdUtils.simpleUUID();
sysUser = new SysUser();
sysUser.setUserName(memberId);
sysUser.setUserType("03");
sysUser.setNickName(merMemberAddDto.getRealName());
+ sysUser.setPhonenumber(merMemberAddDto.getPhonenumber());
sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png");
String password = "hongruitang";
sysUser.setPassword(SecurityUtils.encryptPassword(password));
@@ -645,6 +650,7 @@
member.setNickName(merMemberAddDto.getRealName());
member.setRealName(merMemberAddDto.getRealName());
member.setGender(merMemberAddDto.getGender());
+ member.setLevel(merMemberAddDto.getLevel());
member.setMobile(phoneNumber);
member.setReferrer(merMemberAddDto.getReferrer());
member.setBirthday(merMemberAddDto.getBirthday());
@@ -654,11 +660,18 @@
member.setMiniOpenid(null);
member.setBindingFlag(1);
member.setBindingTime(new Date());
+ member.setBindingType(6);
// Get shop information and set it to the member
Shop shop = remoteShopService.getShop(merMemberAddDto.getShopId()).getData();
member.setRelationShopName(shop.getShopName());
member.setCustomerSource(merMemberAddDto.getCustomerSource());
member.setCreateTime(new Date());
+ //调理问题
+ List<String> memberNurse = merMemberAddDto.getMemberNurse();
+ if(memberNurse!=null&&!memberNurse.isEmpty()){
+ String memberNurseString = String.join(",", memberNurse);
+ member.setMemberNurse(memberNurseString);
+ }
// Save the member and initialize member total
this.saveOrUpdate(member);
initMemberTotal(memberId);
@@ -676,6 +689,8 @@
).collect(Collectors.toList());
memberArchiveService.saveBatch(memberArchiveList);
}
+ }else{
+ throw new ServiceException(AppErrorConstant.MOBILE_USER_DOUBLE);
}
return sysUser.getUserId();
}
@@ -885,8 +900,8 @@
.filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId()))
.findFirst()
.ifPresent(activeness -> {
- merMemberPageDto.setActStartDate(DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())));
- merMemberPageDto.setActEndDate(DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())));
+ merMemberPageDto.setActStartDate(DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getEndDay())));
+ merMemberPageDto.setActEndDate(DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getStartDay())));
});
}
//处理标签为正则表达
@@ -916,8 +931,8 @@
MgtActivenessJudgeVo mgtActivenessJudgeVo;
for (Activeness activeness : activenessList) {
mgtActivenessJudgeVo = new MgtActivenessJudgeVo();
- mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), activeness.getEndDay()));
- mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), activeness.getStartDay() - 1));
+ mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), -activeness.getEndDay()));
+ mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), -activeness.getStartDay()));
mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName());
}
//活跃度赋值
@@ -958,6 +973,7 @@
member.setRelationShopId(shop.getShopId());
member.setRelationShopName(shop.getShopName());
member.setBindingFlag(1);
+ member.setBindingType(7);
member.setBindingTime(new Date());
member.setUpdateTime(new Date());
member.setUpdateUserId(mgtMemberRelEditDto.getUserId());
@@ -1024,6 +1040,7 @@
*/
@Override
public void memberIntegralChange(MemberIntegralChangeDto memberIntegralChangeDto) {
+ log.info("会员积分变动---"+memberIntegralChangeDto.toString());
MemberTotal memberTotal = memberTotalService.getById(memberIntegralChangeDto.getMemberId());
Integer recordType = memberIntegralChangeDto.getRecordType();
Integer changeType = memberIntegralChangeDto.getChangeType();
@@ -1225,6 +1242,9 @@
BigDecimal bigTen = new BigDecimal("100.00");
BigDecimal menPercent = new BigDecimal("100.00");
BigDecimal womenPercent = new BigDecimal("100.00");
+ if(personTotal==0){
+ personTotalBig = bigTen;
+ }
if(manTotal==0&&womenTotal==0){
menPercent = new BigDecimal("50.00");
womenPercent = new BigDecimal("50.00");
@@ -1235,7 +1255,7 @@
menPercent = new BigDecimal("100.00");
womenPercent = new BigDecimal("0.00");
}else{
- menPercent = manTotalBig.divide(personTotalBig).setScale(0,BigDecimal.ROUND_HALF_UP);
+ menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP);
womenPercent = bigTen.subtract(menPercent);
}
mgtTotalMemberTotalVo.setManPercent(menPercent);
@@ -1244,6 +1264,18 @@
String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
// 不同年龄段的会员数数组
Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
+ BigDecimal[] agePercentValue = new BigDecimal[5];
+ Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
+ BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
+ BigDecimal hundredBig = new BigDecimal("100");
+ if(totalPerson==0){
+ totalPersonBig = hundredBig;
+ }
+ agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
// 设置年龄段数组和不同年龄段的会员数数组
mgtTotalMemberTotalVo.setAgeKey(ageKey);
mgtTotalMemberTotalVo.setAgeValue(ageValue);
@@ -1277,8 +1309,8 @@
// 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
for (int i = 0; i < activenessList.size(); i++) {
activeness = activenessList.get(i);
- actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
- actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
+ actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getEndDay()));
+ actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getStartDay()));
count = memberMapper.getTotalMemberTotalActiveness(shopId, actStartDate, actEndDate);
MgtMapIntTotalVo = new MgtMapIntTotalVo();
MgtMapIntTotalVo.setMapKey(activeness.getActivenessName());
@@ -1345,20 +1377,55 @@
MgtPlTotalMemberTotalVo plTotalMemberTotalVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto);
MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getPlTotalMemberTotalAge(mgtBasePlatformDto);
if (mgtAgeTotalVo != null) {
- plTotalMemberTotalVo.setManTotal(mgtAgeTotalVo.getManTotal());
- plTotalMemberTotalVo.setWomenTotal(mgtAgeTotalVo.getWomenTotal());
- } else {
- plTotalMemberTotalVo.setManTotal(0);
- plTotalMemberTotalVo.setWomenTotal(0);
+ Integer manTotal = mgtAgeTotalVo.getManTotal();
+ Integer womenTotal = mgtAgeTotalVo.getWomenTotal();
+ Integer personTotal = manTotal + womenTotal;
+ BigDecimal manTotalBig = new BigDecimal(manTotal);
+ BigDecimal personTotalBig = new BigDecimal(personTotal);
+ BigDecimal bigTen = new BigDecimal("100.00");
+ BigDecimal menPercent = new BigDecimal("100.00");
+ BigDecimal womenPercent = new BigDecimal("100.00");
+ if(personTotal==0){
+ personTotalBig = bigTen;
+ }
+ if(manTotal==0&&womenTotal==0){
+ menPercent = new BigDecimal("50.00");
+ womenPercent = new BigDecimal("50.00");
+ }else if(manTotal==0&&womenTotal>0){
+ menPercent = new BigDecimal("0.00");
+ womenPercent = new BigDecimal("100.00");
+ }else if(manTotal>0&&womenTotal==0){
+ menPercent = new BigDecimal("100.00");
+ womenPercent = new BigDecimal("0.00");
+ }else{
+ menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP);
+ womenPercent = bigTen.subtract(menPercent);
+ }
+ plTotalMemberTotalVo.setManTotal(manTotal);
+ plTotalMemberTotalVo.setWomenTotal(womenTotal);
+ plTotalMemberTotalVo.setManPercent(menPercent);
+ plTotalMemberTotalVo.setWomenPercent(womenPercent);
}
-
// 年龄段数组
String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
// 不同年龄段的会员数数组
Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
+ BigDecimal[] agePercentValue = new BigDecimal[5];
+ Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
+ BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
+ BigDecimal hundredBig = new BigDecimal("100");
+ if(totalPerson==0){
+ totalPersonBig = hundredBig;
+ }
+ agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
// 设置年龄段数组和不同年龄段的会员数数组
plTotalMemberTotalVo.setAgeKey(ageKey);
plTotalMemberTotalVo.setAgeValue(ageValue);
+ plTotalMemberTotalVo.setAgePercent(agePercentValue);
// 获取不同调理类型的会员数
List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getPlTotalMemberTotalNurse(mgtBasePlatformDto);
if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
@@ -1390,8 +1457,8 @@
// 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
for (int i = 0; i < activenessList.size(); i++) {
activeness = activenessList.get(i);
- actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
- actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
+ actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getEndDay()));
+ actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getStartDay()));
count = memberMapper.getPlTotalMemberTotalActiveness(shopIdList, actStartDate, actEndDate);
if (StringUtils.isNotBlank(activeness.getActivenessName())) {
MgtMapIntTotalVo = new MgtMapIntTotalVo();
@@ -1475,6 +1542,18 @@
String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
// 不同年龄段的会员数数组
Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
+ BigDecimal[] agePercentValue = new BigDecimal[5];
+ Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
+ BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
+ BigDecimal hundredBig = new BigDecimal("100");
+ if(totalPerson==0){
+ totalPersonBig = hundredBig;
+ }
+ agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
// 设置年龄段数组和不同年龄段的会员数数组
mgtShopTotalMemberVo.setAgeKey(ageKey);
mgtShopTotalMemberVo.setAgeValue(ageValue);
@@ -1490,6 +1569,7 @@
*/
@Override
public void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto) {
+ log.info("会员统计变动---"+memberTotalChangeDto.toString());
Member member = this.getByUserId(memberTotalChangeDto.getUserId());
MemberTotal memberTotal = memberTotalService.getById(member.getMemberId());
//积分变动
@@ -1500,6 +1580,17 @@
} else {
memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getChangeIntegral());
memberTotal.setTotalIntegral(memberTotal.getTotalIntegral() + memberTotalChangeDto.getChangeIntegral());
+ IntegralRecord integralRecord = new IntegralRecord();
+ integralRecord.setDelFlag(0);
+ integralRecord.setUserId(memberTotalChangeDto.getUserId());
+ integralRecord.setChangeType(5);
+ integralRecord.setCreateTime(new Date());
+ integralRecord.setChangeIntegral(memberTotalChangeDto.getChangeIntegral());
+ integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+memberTotalChangeDto.getChangeIntegral());
+ integralRecord.setChangeReason("订单【"+memberTotalChangeDto.getOrderNo()+"】获得积分");
+ integralRecord.setOrderId(memberTotalChangeDto.getOrderId());
+ integralRecord.setOrderNo(memberTotalChangeDto.getOrderNo());
+ integralRecordService.saveOrUpdate(integralRecord);
}
}
//消费变动
@@ -1519,6 +1610,7 @@
if (memberTotalChangeDto.getTypeService() == 2) {
memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() - memberTotalChangeDto.getServiceCount());
memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount() + memberTotalChangeDto.getServiceCount());
+ memberTotal.setLastServiceTime(new Date());
} else {
memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() + memberTotalChangeDto.getServiceCount());
memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount() + memberTotalChangeDto.getServiceCount());
@@ -1599,6 +1691,9 @@
BigDecimal bigTen = new BigDecimal("100.00");
BigDecimal menPercent = new BigDecimal("100.00");
BigDecimal womenPercent = new BigDecimal("100.00");
+ if(personTotal==0){
+ personTotalBig = bigTen;
+ }
if(manTotal==0&&womenTotal==0){
menPercent = new BigDecimal("50.00");
womenPercent = new BigDecimal("50.00");
@@ -1609,7 +1704,7 @@
menPercent = new BigDecimal("100.00");
womenPercent = new BigDecimal("0.00");
}else{
- menPercent = manTotalBig.divide(personTotalBig,0,BigDecimal.ROUND_HALF_UP);
+ menPercent = manTotalBig.divide(personTotalBig,2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
womenPercent = bigTen.subtract(menPercent);
}
memberFixedTotalVo.setManPercent(menPercent);
@@ -1618,9 +1713,22 @@
String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"};
// 不同年龄段的会员数数组
Integer[] ageValue = {mgtAgeTotalVo.getTenAge(), mgtAgeTotalVo.getTwentyAge(), mgtAgeTotalVo.getThirtyAge(), mgtAgeTotalVo.getFortyAge(), mgtAgeTotalVo.getFiftyAge()};
+ BigDecimal[] agePercentValue = new BigDecimal[5];
+ Integer totalPerson = mgtAgeTotalVo.getTenAge()+mgtAgeTotalVo.getTwentyAge()+ mgtAgeTotalVo.getThirtyAge()+mgtAgeTotalVo.getFortyAge()+mgtAgeTotalVo.getFiftyAge();
+ BigDecimal totalPersonBig = new BigDecimal(totalPerson.toString());
+ BigDecimal hundredBig = new BigDecimal("100");
+ if(totalPerson==0){
+ totalPersonBig = hundredBig;
+ }
+ agePercentValue[0] = new BigDecimal(mgtAgeTotalVo.getTenAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[1] = new BigDecimal(mgtAgeTotalVo.getTwentyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[2] = new BigDecimal(mgtAgeTotalVo.getThirtyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[3] = new BigDecimal(mgtAgeTotalVo.getFortyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
+ agePercentValue[4] = new BigDecimal(mgtAgeTotalVo.getFiftyAge().toString()).divide(totalPersonBig,2,BigDecimal.ROUND_HALF_UP).multiply(hundredBig);
// 设置年龄段数组和不同年龄段的会员数数组
memberFixedTotalVo.setAgeKey(ageKey);
memberFixedTotalVo.setAgeValue(ageValue);
+ memberFixedTotalVo.setAgePercentValue(agePercentValue);
// 获取不同护理类型的会员数
List<MgtMapIntTotalVo> nurseTotalVos = memberMapper.getMerMemberTotalNurse(merTotalDto);
if (nurseTotalVos != null && nurseTotalVos.size() > 0) {
@@ -1657,8 +1765,8 @@
// 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组
for (int i = 0; i < activenessList.size(); i++) {
activeness = activenessList.get(i);
- actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
- actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
+ actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getEndDay()));
+ actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, -activeness.getStartDay()));
merTotalDto.setStartDate(actStartDate);
merTotalDto.setEndDate(actEndDate);
count = memberMapper.getMerMemberTotalActiveness(merTotalDto);
@@ -1763,7 +1871,20 @@
orderAgeUserVoList.add(merOrderAgeUserVo);
return orderAgeUserVoList;
}
-
+ /**
+ * @description 通过年龄层获取用户id列表
+ * @author jqs
+ * @date 2023/8/23 18:59
+ * @param ageType
+ * @return List<Long>
+ */
+ @Override
+ public List<Long> listUserIdByAgeType(Integer ageType){
+ MerTotalDto merTotalDto = new MerTotalDto();
+ merTotalDto.setAgeType(ageType);
+ List<Long> userIdList = memberMapper.listOrderAgeUser(merTotalDto);
+ return userIdList;
+ }
/**
* @description
* @author jqs
@@ -1845,6 +1966,7 @@
*/
@Override
public Boolean changeIntegral(IntegralChangeDto integralChangeDto){
+ log.info("会员积分变动---"+integralChangeDto.toString());
Member member = this.getByUserId(integralChangeDto.getUserId());
Integer integralType = integralChangeDto.getIntegralType();
Integer changeIntegral = integralChangeDto.getChangeIntegral();
@@ -1965,4 +2087,26 @@
updateWrapper.set(Member::getRelationShopName,mgtMemberShopNameDto.getShopName());
this.update(updateWrapper);
}
+
+ /**
+ * @description 发送生日祝福
+ * @author jqs
+ * @date 2023/8/7 15:40
+ * @param
+ * @return void
+ */
+ @Override
+ public void sendBirthdayBless(){
+ List<String> mobileList = memberMapper.listTodayBirthday();
+ if(mobileList!=null&&!mobileList.isEmpty()){
+ log.info("生日祝福发送短信---"+mobileList.toString());
+ for(String mobile : mobileList){
+ try {
+ MsgUtils.sendMsg(mobile,null,null);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ }
}
--
Gitblit v1.7.1