From 431dde90aa20f7652092fc0bfa9e6a1a28b06b9f Mon Sep 17 00:00:00 2001 From: jiangqs <343695869@qq.com> Date: 星期日, 06 八月 2023 12:41:23 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/HongRuiTang --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 159 insertions(+), 63 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 f6a8349..32a8647 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,7 +22,10 @@ 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.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.constant.SecurityConstant; @@ -46,6 +50,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; @@ -194,7 +200,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); @@ -230,6 +255,7 @@ member.setMemberNo(memberNo); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); + member.setFrozenFlag(0); member.setNickName("鸿瑞堂用户"); member.setRealName("鸿瑞堂用户"); member.setCustomerSource("小程序"); @@ -334,6 +360,9 @@ case 4: member.setBirthday(editValue); break; + case 5: + member.setRealName(editValue); + break; default: break; } @@ -351,6 +380,7 @@ */ @Override public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto) { + //处理活跃度 List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); if (StringUtils.isNotBlank(merMemberPageDto.getMemberActiveness())) { if(!activenessList.isEmpty()){ @@ -364,6 +394,19 @@ 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); @@ -417,7 +460,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()); @@ -492,7 +535,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); @@ -567,7 +610,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 @@ -582,7 +625,7 @@ sysUser = new SysUser(); sysUser.setUserName(memberId); sysUser.setUserType("03"); - sysUser.setNickName(merMemberAddDto.getNickName()); + sysUser.setNickName(merMemberAddDto.getRealName()); sysUser.setAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); String password = "hongruitang"; sysUser.setPassword(SecurityUtils.encryptPassword(password)); @@ -595,8 +638,9 @@ 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.setMobile(phoneNumber); member.setReferrer(merMemberAddDto.getReferrer()); @@ -610,7 +654,7 @@ // 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()); // Save the member and initialize member total this.saveOrUpdate(member); @@ -630,6 +674,7 @@ memberArchiveService.saveBatch(memberArchiveList); } } + return sysUser.getUserId(); } /** @@ -639,49 +684,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 @@ -763,8 +813,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); @@ -840,6 +890,19 @@ 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); //处理活跃度返回 @@ -896,6 +959,7 @@ member.setUpdateTime(new Date()); member.setUpdateUserId(mgtMemberRelEditDto.getUserId()); this.saveOrUpdate(member); + memberMapper.updateById(member); } } } @@ -912,11 +976,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); } } } @@ -1031,13 +1098,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()); @@ -1440,7 +1517,7 @@ memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() - memberTotalChangeDto.getServiceCount()); memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount() + memberTotalChangeDto.getServiceCount()); } else { - memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getServiceCount()); + memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() + memberTotalChangeDto.getServiceCount()); memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount() + memberTotalChangeDto.getServiceCount()); } } @@ -1529,7 +1606,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,0,BigDecimal.ROUND_HALF_UP); womenPercent = bigTen.subtract(menPercent); } memberFixedTotalVo.setManPercent(menPercent); @@ -1688,12 +1765,16 @@ * @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); } /** @@ -1866,4 +1947,19 @@ 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); + } } -- Gitblit v1.7.1