From 122bb1142631e31ce50716495dba420102f58f56 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期一, 31 七月 2023 20:05:05 +0800 Subject: [PATCH] bug --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 143 ++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 122 insertions(+), 21 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 2dbd752..a39dd9c 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); @@ -220,6 +245,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)); @@ -229,6 +255,7 @@ member.setMemberNo(memberNo); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); + member.setFrozenFlag(0); member.setNickName("鸿瑞堂用户"); member.setRealName("鸿瑞堂用户"); member.setCustomerSource("小程序"); @@ -594,6 +621,7 @@ member.setMemberId(memberId); member.setUserId(sysUser.getUserId()); member.setDelFlag(0); + member.setFrozenFlag(0); member.setNickName(merMemberAddDto.getNickName()); member.setRealName(merMemberAddDto.getNickName()); member.setGender(merMemberAddDto.getGender()); @@ -609,7 +637,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); @@ -657,6 +685,11 @@ 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(); @@ -701,24 +734,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); } } @@ -735,8 +795,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); @@ -812,6 +872,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()); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + merMemberPageDto.setStartBirthday(startBirthday.format(formatter)); + } //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); //处理活跃度返回 @@ -868,6 +941,7 @@ member.setUpdateTime(new Date()); member.setUpdateUserId(mgtMemberRelEditDto.getUserId()); this.saveOrUpdate(member); + memberMapper.updateById(member); } } } @@ -1003,7 +1077,15 @@ 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()); @@ -1501,7 +1583,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); @@ -1660,12 +1742,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); } /** @@ -1776,7 +1862,7 @@ case 1: changeIntegral = appOtherConfigGetVo.getShareIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【分享小程序】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1785,7 +1871,7 @@ case 2: changeIntegral = appOtherConfigGetVo.getSuggestPlatformIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【提交平台建议】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1794,7 +1880,7 @@ case 3: changeIntegral = appOtherConfigGetVo.getSuggestShopIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【提交门店建议】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1803,7 +1889,7 @@ case 4: changeIntegral = appOtherConfigGetVo.getSignInIntegral(); integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("每日任务【签到】获得积分"); memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral); memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral); @@ -1811,7 +1897,7 @@ break; case 5: integralRecord.setChangeIntegral(changeIntegral); - integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+changeIntegral); + integralRecord.setSurpIntegral(memberTotal.getUseableIntegral()+changeIntegral); integralRecord.setChangeReason("订单【"+integralChangeDto.getOrderNo()+"】获得积分"); integralRecord.setOrderId(integralChangeDto.getOrderId()); integralRecord.setOrderNo(integralChangeDto.getOrderNo()); @@ -1838,4 +1924,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