From c93e76c57a98e35abbf62d2f514d9ba51efd3243 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 21 八月 2023 19:03:55 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 681 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 571 insertions(+), 110 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 a400294..e937607 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 @@ -4,6 +4,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -21,8 +22,12 @@ import com.ruoyi.member.domain.pojo.member.MemberTotal; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.member.MemberMapper; -import com.ruoyi.member.service.member.*; +import com.ruoyi.member.service.member.IntegralRecordService; +import com.ruoyi.member.service.member.MemberArchiveService; +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.*; @@ -46,6 +51,8 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -84,8 +91,6 @@ @Resource private RemoteOrderService orderService; - @Resource - private MemberNurseService memberNurseService; @Resource private RemoteConfigService remoteConfigService; @@ -196,7 +201,26 @@ String errcode = jsonUserPhoneNumber.getString("errcode"); String errmsg = jsonUserPhoneNumber.getString("errmsg"); if (!"0".equals(errcode)) { - throw new ServiceException(errmsg); + //因为生产测试差异,临时更新token + redisService.deleteObject(SecurityConstant.WX_TOKEN); + String responseAccessToken = getAccessTokenByWX(); + JSONObject jsonAccessToken = JSONObject.parseObject(responseAccessToken); + accessToken = jsonAccessToken.getString("access_token"); + errmsg = jsonAccessToken.getString("errmsg"); + Long expiresIn = jsonAccessToken.getLong("expires_in"); + if (StringUtils.isBlank(accessToken)) { + throw new ServiceException(errmsg); + } else { + expiresIn = expiresIn - 100; + redisService.setCacheObject(SecurityConstant.WX_TOKEN, accessToken, Long.valueOf(expiresIn), TimeUnit.SECONDS); + } + responseUserPhoneNumber = getMobileByWX(accessToken, appUserRegisterDto.getMobileCode()); + jsonUserPhoneNumber = JSONObject.parseObject(responseUserPhoneNumber); + errcode = jsonUserPhoneNumber.getString("errcode"); + errmsg = jsonUserPhoneNumber.getString("errmsg"); + if (!"0".equals(errcode)) { + throw new ServiceException(errmsg); + } } String phoneInfo = jsonUserPhoneNumber.getString("phone_info"); JSONObject jsonUserPhoneInfo = JSONObject.parseObject(phoneInfo); @@ -222,6 +246,7 @@ sysUser.setUserName(memberId); sysUser.setUserType("03"); sysUser.setNickName("鸿瑞堂用户"); + sysUser.setPhonenumber(mobile); sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); String password = "hongruitang"; sysUser.setPassword(SecurityUtils.encryptPassword(password)); @@ -231,6 +256,7 @@ member.setMemberNo(memberNo); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); + member.setFrozenFlag(0); member.setNickName("鸿瑞堂用户"); member.setRealName("鸿瑞堂用户"); member.setCustomerSource("小程序"); @@ -240,12 +266,14 @@ member.setCreateTime(new Date()); member.setMobile(mobile); initMemberTotal(memberId); + log.info("sysUser01-----------------" + sysUser.toString()); } else { sysUser = sysUserService.getSysUser(member.getUserId()).getData(); + log.info("sysUser02-----------------" + sysUser.toString()); } member.setWxUnionid(appUserRegisterDto.getWxUnionid()); member.setMiniOpenid(appUserRegisterDto.getMiniOpenid()); - log.info("member-----------------" + member.toString()); + log.info("member02-----------------" + member.toString()); this.saveOrUpdate(member); appUserRegisterVo.setMobile(mobile); appUserRegisterVo.setNickName(member.getNickName()); @@ -304,6 +332,8 @@ AppOrderTotalVo appOrderTotalVo = orderService.getAppOrderTotal(userId).getData(); appUserInfoVo.setNoPayCount(appOrderTotalVo.getNoPayCount()); appUserInfoVo.setNoUseCount(appOrderTotalVo.getNoUseCount()); + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + appUserInfoVo.setIntegral(memberTotal.getUseableIntegral()); return appUserInfoVo; } @@ -321,27 +351,28 @@ switch (editType) { case 1: member.setNickName(editValue); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; case 2: + member.setAvatar(editValue); break; case 3: member.setGender(Integer.valueOf(editValue)); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); break; case 4: + if(editValue.compareTo(DateUtils.getDate())>0){ + throw new ServiceException(AppErrorConstant.BIRTHDAY_BEYOND); + } member.setBirthday(editValue); - member.setUpdateTime(new Date()); - member.setUpdateUserId(appEditUserDto.getUserId()); - this.saveOrUpdate(member); + break; + case 5: + member.setRealName(editValue); break; default: break; } + member.setUpdateTime(new Date()); + member.setUpdateUserId(appEditUserDto.getUserId()); + this.saveOrUpdate(member); sysUserService.editUserInfo(appEditUserDto); } @@ -353,17 +384,68 @@ */ @Override public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto) { + //处理活跃度 + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); if (StringUtils.isNotBlank(merMemberPageDto.getMemberActiveness())) { - Activeness activeness = remoteConfigService.getActivenessByName(merMemberPageDto.getMemberActiveness()).getData(); - if (activeness != null) { - 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())); - merMemberPageDto.setActStartDate(actStartDate); - merMemberPageDto.setActEndDate(actEndDate); + if(!activenessList.isEmpty()){ + 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())); + merMemberPageDto.setActStartDate(actStartDate); + merMemberPageDto.setActEndDate(actEndDate); + break; + } + } + } + } + //处理剩余次数 + if(merMemberPageDto.getSurpNum()!=null){ + if(merMemberPageDto.getSurpNum()==1){ + merMemberPageDto.setSurpStartNum(0); + merMemberPageDto.setSurpEndNum(5); + }else if(merMemberPageDto.getSurpNum()==2){ + merMemberPageDto.setSurpStartNum(5); + merMemberPageDto.setSurpEndNum(10); + }else if(merMemberPageDto.getSurpNum()==3){ + merMemberPageDto.setSurpStartNum(10); + merMemberPageDto.setSurpEndNum(999999999); } } List<MerMemberPageVo> merMemberPageVoList = memberMapper.pageMerMember(page, merMemberPageDto); + //处理活跃度返回 + if (merMemberPageVoList != null && !merMemberPageVoList.isEmpty()) { + if (activenessList != null && !activenessList.isEmpty()) { + //生成活跃度时间段列表 + List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>(); + 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())); + mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName()); + mgtActivenessJudgeVoList.add(mgtActivenessJudgeVo); + } + //活跃度赋值 + Date lastPayTime; + for (MerMemberPageVo mgtMemberPageVo : merMemberPageVoList) { + //实际是最后服务时间 + lastPayTime = mgtMemberPageVo.getLastPayTime(); + StringJoiner sj = new StringJoiner(","); + if (lastPayTime != null) { + for (MgtActivenessJudgeVo entity : mgtActivenessJudgeVoList) { + if (lastPayTime.compareTo(entity.getStartDay()) >= 0 && lastPayTime.compareTo(entity.getEndDay()) <= 0) { + sj.add(entity.getActivenessName()); + } + } + if (sj.length() > 0) { + mgtMemberPageVo.setMemberActiveness(sj.toString()); + } + } + } + } + } return merMemberPageVoList; } @@ -384,7 +466,7 @@ Member member = this.getByUserId(userId); // 设置MerMemberInfoVo对象的属性值 merMemberInfoVo.setUserId(userId); - merMemberInfoVo.setNickName(member.getNickName()); + merMemberInfoVo.setRealName(member.getRealName()); merMemberInfoVo.setPhonenumber(member.getMobile()); merMemberInfoVo.setAvatar(member.getAvatar()); merMemberInfoVo.setBirthday(member.getBirthday()); @@ -394,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(); @@ -445,6 +527,7 @@ member.setBindingFlag(appMemberBindingDto.getBindingFlag()); member.setRelationShopId(appMemberBindingDto.getShopId()); member.setRelationShopName(appMemberBindingDto.getShopName()); + member.setBindingType(appMemberBindingDto.getBindingType()); this.saveOrUpdate(member); } @@ -459,7 +542,7 @@ MerMemberBasicFileVo merMemberBasicFileVo = new MerMemberBasicFileVo(); Member member = this.getByUserId(userId); BeanUtils.copyProperties(member, merMemberBasicFileVo); - merMemberBasicFileVo.setNickName(member.getNickName()); + merMemberBasicFileVo.setRealName(member.getRealName()); merMemberBasicFileVo.setPhonenumber(member.getMobile()); merMemberBasicFileVo.setCreateTime(member.getCreateTime()); /*List<MemberNurse> memberNurseList = memberNurseService.listByUserId(userId); @@ -534,7 +617,7 @@ * @param merMemberAddDto */ @Override - public void addMerMember(MerMemberAddDto merMemberAddDto) { + public Long addMerMember(MerMemberAddDto merMemberAddDto) { String phoneNumber = merMemberAddDto.getPhonenumber(); Member oldMember = this.getByMobile(phoneNumber); // Check if the member already exists @@ -544,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.getNickName()); + 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)); @@ -562,9 +646,11 @@ member.setMemberId(memberId); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); - member.setNickName(merMemberAddDto.getNickName()); - member.setRealName(merMemberAddDto.getNickName()); + member.setFrozenFlag(0); + 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()); @@ -574,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("商户添加"); + 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); @@ -596,7 +689,10 @@ ).collect(Collectors.toList()); memberArchiveService.saveBatch(memberArchiveList); } + }else{ + throw new ServiceException(AppErrorConstant.MOBILE_USER_DOUBLE); } + return sysUser.getUserId(); } /** @@ -606,49 +702,54 @@ */ @Override public void editMerMember(MerMemberEditDto merMemberEditDto) { - // 获取用户信息 - Member member = this.getByUserId(merMemberEditDto.getEditUserId()); - // 检查手机号是否已经存在 - if (!member.getMobile().equals(merMemberEditDto.getPhonenumber())) { - Member memberOld = getByMobile(merMemberEditDto.getPhonenumber()); - if (memberOld != null) { - throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE); + // 获取用户信息 + Member member = this.getByUserId(merMemberEditDto.getEditUserId()); + // 检查手机号是否已经存在 + if (!member.getMobile().equals(merMemberEditDto.getPhonenumber())) { + Member memberOld = getByMobile(merMemberEditDto.getPhonenumber()); + if (memberOld != null) { + throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE); + } + } + // 更新用户信息 + member.setRealName(merMemberEditDto.getRealName()); + member.setMobile(merMemberEditDto.getPhonenumber()); + member.setGender(merMemberEditDto.getGender()); + member.setReferrer(merMemberEditDto.getReferrer()); + member.setCustomerSource(merMemberEditDto.getCustomerSource()); + member.setLevel(merMemberEditDto.getLevel()); + member.setBirthday(merMemberEditDto.getBirthday()); + member.setUpdateUserId(merMemberEditDto.getUserId()); + member.setUpdateTime(new Date()); + List<String> memberNurse = merMemberEditDto.getMemberNurse(); + if(memberNurse!=null&&!memberNurse.isEmpty()){ + String memberNurseString = String.join(",", memberNurse); + member.setMemberNurse(memberNurseString); + } + this.saveOrUpdate(member); + // 更新用户手机号 + SysUser sysUser = new SysUser(); + sysUser.setUserId(merMemberEditDto.getEditUserId()); + sysUser.setPhonenumber(merMemberEditDto.getPhonenumber()); + sysUserService.updateUserMobile(sysUser); + // 删除用户的档案信息 + memberArchiveService.deleteByUserId(sysUser.getUserId()); + // 添加用户的档案信息 + List<MemberArchiveVo> achiveList = merMemberEditDto.getAchiveList(); + if (achiveList != null && !achiveList.isEmpty()) { + // 构造用户档案列表 + List<MemberArchive> memberArchiveList = achiveList.stream().map(memberArchiveVo -> { + MemberArchive memberArchive = new MemberArchive(); + memberArchive.setDelFlag(0); + memberArchive.setUserId(sysUser.getUserId()); + memberArchive.setFieldId(memberArchiveVo.getFieldId()); + memberArchive.setFieldValue(memberArchiveVo.getFieldValue()); + return memberArchive; + }).collect(Collectors.toList()); + // 批量保存用户档案信息 + memberArchiveService.saveBatch(memberArchiveList); } } - // 更新用户信息 - member.setRealName(merMemberEditDto.getNickName()); - member.setMobile(merMemberEditDto.getPhonenumber()); - member.setGender(merMemberEditDto.getGender()); - member.setReferrer(merMemberEditDto.getReferrer()); - member.setCustomerSource(merMemberEditDto.getCustomerSource()); - member.setLevel(merMemberEditDto.getLevel()); - member.setBirthday(merMemberEditDto.getBirthday()); - member.setUpdateUserId(merMemberEditDto.getUserId()); - member.setUpdateTime(new Date()); - this.saveOrUpdate(member); - // 更新用户手机号 - SysUser sysUser = new SysUser(); - sysUser.setUserId(merMemberEditDto.getEditUserId()); - sysUser.setPhonenumber(merMemberEditDto.getPhonenumber()); - sysUserService.updateUserMobile(sysUser); - // 删除用户的档案信息 - memberArchiveService.deleteByUserId(sysUser.getUserId()); - // 添加用户的档案信息 - List<MemberArchiveVo> achiveList = merMemberEditDto.getAchiveList(); - if (achiveList != null && !achiveList.isEmpty()) { - // 构造用户档案列表 - List<MemberArchive> memberArchiveList = achiveList.stream().map(memberArchiveVo -> { - MemberArchive memberArchive = new MemberArchive(); - memberArchive.setDelFlag(0); - memberArchive.setUserId(sysUser.getUserId()); - memberArchive.setFieldId(memberArchiveVo.getFieldId()); - memberArchive.setFieldValue(memberArchiveVo.getFieldValue()); - return memberArchive; - }).collect(Collectors.toList()); - // 批量保存用户档案信息 - memberArchiveService.saveBatch(memberArchiveList); - } -} /** * @param mobile @@ -669,24 +770,51 @@ */ @Override public void updateMemberGoodsType(AppMemberGoodsTypeDto appMemberGoodsTypeDto) { + // 根据用户ID获取会员信息 Member member = this.getByUserId(appMemberGoodsTypeDto.getUserId()); + // 获取商品类型集合和商品护理集合 HashSet<String> goodsTypeSet = appMemberGoodsTypeDto.getGoodsTypeSet(); + HashSet<String> goodsNurseSet = appMemberGoodsTypeDto.getGoodsNurseSet(); + // 如果会员存在 if (member != null) { - String goodsType = member.getGoodsType(); + // 标识是否有变化 Boolean change = false; - for (String str : goodsTypeSet) { - if (goodsType != null) { - if (!goodsType.contains(str)) { - goodsType = goodsType + "," + str; + // 更新商品类型 + if (goodsTypeSet != null && goodsTypeSet.size() > 0) { + String goodsType = member.getGoodsType(); + HashSet<String> goodsTypeOldSet = new HashSet<>(); + // 如果商品类型不为空 + if (StringUtils.isNotBlank(goodsType)) { + goodsTypeOldSet = new HashSet<>(Arrays.asList(goodsType.split(","))); + // 如果商品类型集合相等 + if (!goodsTypeSet.equals(goodsTypeOldSet)) { change = true; } } else { - goodsType = str; change = true; } + goodsTypeOldSet.addAll(goodsTypeSet); + member.setGoodsType(String.join(",", goodsTypeOldSet)); } + // 更新商品护理 + if (goodsNurseSet != null && goodsNurseSet.size() > 0) { + String memberNurse = member.getMemberNurse(); + HashSet<String> memberNurseOldSet = new HashSet<>(); + // 如果会员护理不为空 + if (StringUtils.isNotBlank(memberNurse)) { + memberNurseOldSet = new HashSet<>(Arrays.asList(memberNurse.split(","))); + // 如果商品护理集合相等 + if (!goodsNurseSet.equals(memberNurseOldSet)) { + change = true; + } + } else { + change = true; + } + memberNurseOldSet.addAll(goodsNurseSet); + member.setMemberNurse(String.join(",", memberNurseOldSet)); + } + // 如果有变化,则保存或更新会员信息 if (change) { - member.setGoodsType(goodsType); this.saveOrUpdate(member); } } @@ -703,8 +831,8 @@ String memberNo = createMemberNo(); member.setMemberNo(memberNo); member.setDelFlag(0); + member.setFrozenFlag(0); member.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); - member.setBindingFlag(0); member.setCreateTime(new Date()); member.setCustomerSource("商户订单添加"); this.saveOrUpdate(member); @@ -735,6 +863,11 @@ memberTotal.setTotalExperienceOrder(0); memberTotal.setTotalServiceOrder(0); memberTotal.setTotalGoodsOrder(0); + memberTotal.setShareFlag(0); + memberTotal.setPlSuggestFlag(0); + memberTotal.setShopSuggestFlag(0); + memberTotal.setSignFlag(0); + memberTotal.setBuyFlag(0); memberTotalService.saveOrUpdate(memberTotal); } @@ -767,13 +900,26 @@ .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()))); }); } //处理标签为正则表达 if (StringUtils.isNotBlank(merMemberPageDto.getMemberTags())) { merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",", "|")); + } + //处理生日 + if(merMemberPageDto.getStartAge()!=null){ + LocalDate currentDate = LocalDate.now(); + LocalDate endBirthday = currentDate.minusYears(merMemberPageDto.getStartAge()); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + merMemberPageDto.setEndBirthday(endBirthday.format(formatter)); + } + if(merMemberPageDto.getEndAge()!=null){ + LocalDate currentDate = LocalDate.now(); + LocalDate startBirthday = currentDate.minusYears(merMemberPageDto.getEndAge()+1); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + merMemberPageDto.setStartBirthday(startBirthday.format(formatter)); } //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); @@ -785,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()); } //活跃度赋值 @@ -827,10 +973,12 @@ 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()); this.saveOrUpdate(member); + memberMapper.updateById(member); } } } @@ -847,11 +995,14 @@ String memberUserIds = mgtMemberRelDelDto.getMemberUserIds(); String[] memberUserIdArr = memberUserIds.split(","); for (String str : memberUserIdArr) { - Member member = this.getByUserId(Long.valueOf(str)); - member.setBindingFlag(0); - member.setUpdateTime(new Date()); - member.setUpdateUserId(mgtMemberRelDelDto.getUserId()); - this.saveOrUpdate(member); + LambdaUpdateWrapper<Member> updateWrapper = Wrappers.lambdaUpdate(); + updateWrapper.eq(Member::getUserId, str) + .set(Member::getBindingFlag, 0) + .set(Member::getRelationShopId,null) + .set(Member::getRelationShopName,null) + .set(Member::getUpdateUserId,mgtMemberRelDelDto.getUserId()) + .set(Member::getUpdateTime,new Date()); + this.update(updateWrapper); } } } @@ -889,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(); @@ -966,13 +1118,23 @@ mgtMemberGetVo.setNickName(member.getNickName()); mgtMemberGetVo.setAvatar(member.getAvatar()); mgtMemberGetVo.setMobile(member.getMobile()); - mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null); + if(member.getGender()!=null){ + if (member.getGender() == 0) { + mgtMemberGetVo.setGender("男"); + } else if (member.getGender() == 1) { + mgtMemberGetVo.setGender("女"); + } + }else { + mgtMemberGetVo.setGender("未知"); + } mgtMemberGetVo.setBirthday(member.getBirthday()); mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict()); mgtMemberGetVo.setCreateTime(member.getCreateTime()); mgtMemberGetVo.setLastPayTime(memberTotal.getLastPayTime()); mgtMemberGetVo.setGoodsType(member.getGoodsType()); - mgtMemberGetVo.setRelationShopName(member.getRelationShopName()); + if(member.getBindingFlag()==1){ + mgtMemberGetVo.setRelationShopName(member.getRelationShopName()); + } mgtMemberGetVo.setIntegral(memberTotal.getTotalIntegral()); mgtMemberGetVo.setMemberFrom(member.getCustomerSource()); mgtMemberGetVo.setTotalActivityCount(memberTotal.getTotalActivityCount()); @@ -1070,6 +1232,31 @@ // 获取总会员数和不同年龄段的会员数 MgtTotalMemberTotalVo mgtTotalMemberTotalVo = memberMapper.getTotalMemberTotal(mgtBaseShopDto); MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getTotalMemberTotalAge(mgtBaseShopDto); + Integer manTotal = mgtAgeTotalVo.getManTotal(); + Integer womenTotal = mgtAgeTotalVo.getWomenTotal(); + mgtTotalMemberTotalVo.setManTotal(manTotal); + mgtTotalMemberTotalVo.setWomenTotal(womenTotal); + 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(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).setScale(0,BigDecimal.ROUND_HALF_UP); + womenPercent = bigTen.subtract(menPercent); + } + mgtTotalMemberTotalVo.setManPercent(menPercent); + mgtTotalMemberTotalVo.setWomenPercent(womenPercent); // 年龄段数组 String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"}; // 不同年龄段的会员数数组 @@ -1082,6 +1269,12 @@ if (nurseTotalVos != null && nurseTotalVos.size() > 0) { nurseTotalVos = listRemoveNull(nurseTotalVos); mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); + } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getTotalMemberTotalLevel(mgtBaseShopDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + mgtTotalMemberTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto); @@ -1101,8 +1294,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()); @@ -1189,6 +1382,12 @@ nurseTotalVos = listRemoveNull(nurseTotalVos); plTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getPlTotalMemberTotalLevel(mgtBasePlatformDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + plTotalMemberTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); + } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getPlTotalMemberTotalGoodsType(mgtBasePlatformDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { @@ -1208,8 +1407,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(); @@ -1308,6 +1507,7 @@ */ @Override public void changeMemberTotal(MemberTotalChangeDto memberTotalChangeDto) { + log.info("会员统计变动---"+memberTotalChangeDto.toString()); Member member = this.getByUserId(memberTotalChangeDto.getUserId()); MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); //积分变动 @@ -1318,22 +1518,39 @@ } 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); } } //消费变动 if (memberTotalChangeDto.getPayMoney() != null) { - memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); - memberTotal.setTotalPayCount(memberTotal.getTotalPayCount() + 1); - memberTotal.setLastPayMoney(memberTotalChangeDto.getPayMoney()); - memberTotal.setLastPayTime(memberTotalChangeDto.getPayTime()); + if(memberTotalChangeDto.getPayMoney().compareTo(BigDecimal.ZERO)>=0){ + memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); + memberTotal.setTotalPayCount(memberTotal.getTotalPayCount() + 1); + memberTotal.setLastPayMoney(memberTotalChangeDto.getPayMoney()); + memberTotal.setLastPayTime(memberTotalChangeDto.getPayTime()); + }else{ + memberTotal.setTotalPayMoney(memberTotal.getTotalPayMoney().add(memberTotalChangeDto.getPayMoney())); + memberTotal.setTotalPayCount(memberTotal.getTotalPayCount() - 1); + } } //服务次数变动 if (memberTotalChangeDto.getServiceCount() != null) { if (memberTotalChangeDto.getTypeService() == 2) { memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() - memberTotalChangeDto.getServiceCount()); memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount() + memberTotalChangeDto.getServiceCount()); + memberTotal.setLastServiceTime(new Date()); } else { - memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getServiceCount()); + memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() + memberTotalChangeDto.getServiceCount()); memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount() + memberTotalChangeDto.getServiceCount()); } } @@ -1402,6 +1619,31 @@ merTotalDto.setShopId(null); } MgtAgeTotalVo mgtAgeTotalVo = memberMapper.getMerMemberTotalAge(merTotalDto); + Integer manTotal = mgtAgeTotalVo.getManTotal(); + Integer womenTotal = mgtAgeTotalVo.getWomenTotal(); + memberFixedTotalVo.setManTotal(manTotal); + memberFixedTotalVo.setWomenTotal(womenTotal); + 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(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).multiply(new BigDecimal("100")); + womenPercent = bigTen.subtract(menPercent); + } + memberFixedTotalVo.setManPercent(menPercent); + memberFixedTotalVo.setWomenPercent(womenPercent); // 年龄段数组 String[] ageKey = {"<20", "21-30", "31-40", "41-50", ">50"}; // 不同年龄段的会员数数组 @@ -1415,11 +1657,23 @@ nurseTotalVos = listRemoveNull(nurseTotalVos); memberFixedTotalVo.setNurseTotalVos(nurseTotalVos); } + //获取不同等级的会员数 + List<MgtMapIntTotalVo> memberLevelTotalVos = memberMapper.getMerMemberTotalLevel(merTotalDto); + if (memberLevelTotalVos != null && memberLevelTotalVos.size() > 0) { + memberLevelTotalVos = listRemoveNull(memberLevelTotalVos); + memberFixedTotalVo.setMemberLevelTotalVos(memberLevelTotalVos); + } // 获取不同商品类型的会员数 List<MgtMapIntTotalVo> goodsTypeTotalVos = memberMapper.getMerMemberTotalGoodsType(merTotalDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); memberFixedTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); + } + //获取会员消费排名 + List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto); + if (memberPayList != null && memberPayList.size() > 0) { + memberPayList = listRemoveNull(memberPayList); + memberFixedTotalVo.setMemberPayList(memberPayList); } // 获取不同活跃度的会员数 List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); @@ -1433,8 +1687,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); @@ -1444,12 +1698,6 @@ MgtMapIntTotalVoList.add(MgtMapIntTotalVo); } memberFixedTotalVo.setActivenessList(MgtMapIntTotalVoList); - } - //获取会员消费排名 - List<MgtMapIntTotalVo> memberPayList = memberMapper.getMerMemberPayRank(merTotalDto); - if (memberPayList != null && memberPayList.size() > 0) { - memberPayList = listRemoveNull(memberPayList); - memberFixedTotalVo.setMemberPayList(memberPayList); } return memberFixedTotalVo; } @@ -1550,11 +1798,224 @@ * @description * @author jqs * @date 2023/7/5 21:18 - * @param mgtBaseGetDto + * @param mgtFrozenMemberDto * @return void */ @Override - public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){ - sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId())); + public void mgtFrozenMember(MgtFrozenMemberDto mgtFrozenMemberDto){ + Long userId = mgtFrozenMemberDto.getId(); + Member member = this.getByUserId(userId); + member.setFrozenFlag(mgtFrozenMemberDto.getFrozenFlag()); + this.saveOrUpdate(member); + sysUserService.frozenUser(mgtFrozenMemberDto); + } + + /** + * @description 获取用户任务列表 + * @author jqs + * @date 2023/7/12 15:07 + * @param userId + * @return List<AppIntegralTaskListVo> + */ + @Override + public List<AppIntegralTaskListVo> listAppMemberIntegralTask(Long userId){ + // 获取指定用户的会员信息 + Member member = this.getByUserId(userId); + // 获取会员的总积分信息 + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + // 获取其他配置信息 + AppOtherConfigGetVo appOtherConfigGetVo = remoteConfigService.getAppOtherConfigGetVo().getData(); + // 创建一个空的积分任务列表 + List<AppIntegralTaskListVo> appIntegralTaskListVoList = new ArrayList<>(); + // 创建分享小程序任务 + AppIntegralTaskListVo shareTask = new AppIntegralTaskListVo(); + shareTask.setTaskContent("分享小程序给微信好友"); + shareTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getShareIntegral() + "积分"); + shareTask.setRecommendFlag(1); + shareTask.setCompleteFlag(memberTotal.getShareFlag()); + appIntegralTaskListVoList.add(shareTask); + // 创建提交平台建议任务 + AppIntegralTaskListVo plSuggestTask = new AppIntegralTaskListVo(); + plSuggestTask.setTaskContent("提交平台建议"); + plSuggestTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSuggestPlatformIntegral() + "积分"); + plSuggestTask.setRecommendFlag(1); + plSuggestTask.setCompleteFlag(memberTotal.getPlSuggestFlag()); + appIntegralTaskListVoList.add(plSuggestTask); + // 创建提交门店建议任务 + AppIntegralTaskListVo shopSuggestTask = new AppIntegralTaskListVo(); + shopSuggestTask.setTaskContent("提交门店建议"); + shopSuggestTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSuggestShopIntegral() + "积分"); + shopSuggestTask.setRecommendFlag(1); + shopSuggestTask.setCompleteFlag(memberTotal.getShopSuggestFlag()); + appIntegralTaskListVoList.add(shopSuggestTask); + // 创建每日签到任务 + AppIntegralTaskListVo signTask = new AppIntegralTaskListVo(); + signTask.setTaskContent("每日签到"); + signTask.setTaskDesc("完成任务+" + appOtherConfigGetVo.getSignInIntegral() + "积分"); + signTask.setRecommendFlag(1); + signTask.setCompleteFlag(memberTotal.getSignFlag()); + appIntegralTaskListVoList.add(signTask); + // 创建消费得积分任务 + AppIntegralTaskListVo buyTask = new AppIntegralTaskListVo(); + buyTask.setTaskContent("消费得积分"); + buyTask.setTaskDesc("每消费1元+" + appOtherConfigGetVo.getPayMoneyIntegral() + "积分"); + buyTask.setRecommendFlag(1); + buyTask.setCompleteFlag(memberTotal.getBuyFlag()); + appIntegralTaskListVoList.add(buyTask); + // 返回积分任务列表 + return appIntegralTaskListVoList; + } + + /** + * @description 积分变动 + * @author jqs + * @date 2023/7/12 15:59 + * @param integralChangeDto + * @return void + */ + @Override + public Boolean changeIntegral(IntegralChangeDto integralChangeDto){ + log.info("会员积分变动---"+integralChangeDto.toString()); + Member member = this.getByUserId(integralChangeDto.getUserId()); + Integer integralType = integralChangeDto.getIntegralType(); + Integer changeIntegral = integralChangeDto.getChangeIntegral(); + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + Boolean completeFlag = false; + switch(integralType){ + case 1: + if(memberTotal.getShareFlag()==1){ + completeFlag = true; + } + break; + case 2: + if(memberTotal.getPlSuggestFlag()==1){ + completeFlag = true; + } + break; + case 3: + if(memberTotal.getShopSuggestFlag()==1){ + completeFlag = true; + } + break; + case 4: + if(memberTotal.getSignFlag()==1){ + completeFlag = true; + } + break; + default: + break; + } + if(completeFlag){ + return completeFlag; + } + AppOtherConfigGetVo appOtherConfigGetVo = remoteConfigService.getAppOtherConfigGetVo().getData(); + IntegralRecord integralRecord = new IntegralRecord(); + integralRecord.setDelFlag(0); + integralRecord.setUserId(integralChangeDto.getUserId()); + integralRecord.setChangeType(integralType); + integralRecord.setCreateTime(new Date()); + //1分享获取2平台建议获取3门店建议获取4每日签到5消费得积分 + switch(integralType){ + case 1: + changeIntegral = appOtherConfigGetVo.getShareIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【分享小程序】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setShareFlag(1); + break; + case 2: + changeIntegral = appOtherConfigGetVo.getSuggestPlatformIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【提交平台建议】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setPlSuggestFlag(1); + break; + case 3: + changeIntegral = appOtherConfigGetVo.getSuggestShopIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【提交门店建议】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setShopSuggestFlag(1); + break; + case 4: + changeIntegral = appOtherConfigGetVo.getSignInIntegral(); + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); + integralRecord.setChangeReason("每日任务【签到】获得积分"); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setSignFlag(1); + break; + case 5: + integralRecord.setChangeIntegral(changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); + integralRecord.setChangeReason("订单【"+integralChangeDto.getOrderNo()+"】获得积分"); + integralRecord.setOrderId(integralChangeDto.getOrderId()); + integralRecord.setOrderNo(integralChangeDto.getOrderNo()); + memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); + memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); + memberTotal.setBuyFlag(1); + break; + default: + break; + } + memberTotalService.saveOrUpdate(memberTotal); + integralRecordService.saveOrUpdate(integralRecord); + return completeFlag; + } + + /** + * @description 统计商户今日新增会员 + * @author jqs + * @date 2023/7/14 19:54 + * @param shopIdList + * @return Integer + */ + @Override + public Integer getAreaNewMember(List<Long> shopIdList){ + return memberMapper.getAreaNewMember(shopIdList); + } + + /** + * @description 更新会员绑定商户名 + * @author jqs + * @date 2023/7/26 17:08 + * @param mgtMemberShopNameDto + * @return void + */ + @Override + public void updateMemberShopName(MgtMemberShopNameDto mgtMemberShopNameDto){ + LambdaUpdateWrapper<Member> updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(Member::getRelationShopId,mgtMemberShopNameDto.getShopId()); + 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