jiangqs
2023-07-12 f26537e926d7ad2d725e059700142ba14c0c2b1f
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -306,6 +306,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;
    }
@@ -772,6 +774,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);
    }
@@ -1644,4 +1651,163 @@
    public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){
        sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId()));
    }
    /**
     * @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){
        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(integralRecord.getSurpIntegral()+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(integralRecord.getSurpIntegral()+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(integralRecord.getSurpIntegral()+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(integralRecord.getSurpIntegral()+changeIntegral);
                integralRecord.setChangeReason("每日任务【签到】获得积分");
                memberTotal.setTotalIntegral(memberTotal.getTotalIntegral()+changeIntegral);
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral()+changeIntegral);
                memberTotal.setSignFlag(1);
                break;
            case 5:
                integralRecord.setChangeIntegral(changeIntegral);
                integralRecord.setSurpIntegral(integralRecord.getSurpIntegral()+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;
    }
}