bug
jiangqs
2023-08-02 bb58e108a9da48d84b84d30b73c01106dd642550
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("小程序");
@@ -351,6 +377,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 +391,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);
@@ -595,6 +635,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());
@@ -610,7 +651,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);
@@ -658,6 +699,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();
@@ -763,8 +809,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 +886,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 +955,7 @@
                member.setUpdateTime(new Date());
                member.setUpdateUserId(mgtMemberRelEditDto.getUserId());
                this.saveOrUpdate(member);
                memberMapper.updateById(member);
            }
        }
    }
@@ -1031,7 +1091,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());
@@ -1529,7 +1597,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 +1756,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 +1938,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);
    }
}