huanghongfa
2021-08-21 2e64c232ab6b51b2cecf1ee96e1e9b709234f326
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java
@@ -49,6 +49,10 @@
    private ComActMicroWishService comActMicroWishService;
    @Resource
    private ComActDiscussDAO comActDiscussDAO;
    @Resource
    private ComActDiscussOptionService comActDiscussOptionService;
    @Resource
    private ComActActivityService comActActivityService;
    /**
     * 查询用户某个时间段交易数量
@@ -101,11 +105,11 @@
    @Override
    public R getIntegralCommunityTradeApplets(ComActIntegralCommunityRankDTO communityTradeDTO){
        if(communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.resident)){
            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.type.resident);
            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.resident);
        }else if(communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.party)){
            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.type.party);
            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.party);
        }else if(communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.volunteer)){
            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.type.volunteer);
            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.volunteer);
        }
        return R.ok(this.baseMapper.getIntegralCommunityTradeApplets(new Page(communityTradeDTO.getPageNum(),communityTradeDTO.getPageSize()),communityTradeDTO));
    }
@@ -169,7 +173,7 @@
        }
        //判断规则是否有次数限制
        if(integralRuleDO.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.yes)){
            Integer count = this.baseMapper.getIntegralCount(getIntegralCountDTO(integralRuleDO.getType(),userId,communityId));
            Integer count = this.baseMapper.getIntegralCount(getIntegralCountDTO(integralRuleDO.getType(),userId,communityId,integralRuleDO.getIntegralType()));
            if(count >= integralRuleDO.getCount()){
                log.error("该用户参加任务次数已达上限");
                return R.fail("该用户参加任务次数已达上限");
@@ -198,19 +202,43 @@
                break;
            case 3:
                remark.append("参与议事投票奖励积分");
                ComActDiscussDO discussDO = comActDiscussDAO.selectById(serviceId);
                if(discussDO != null){
                    remark.append("【");
                    remark.append(discussDO.getVoteTitle());
                    remark.append("】");
                if(integralUserDTO.getIsComment().equals(1)){
                    ComActDiscussDO discussDO = comActDiscussDAO.selectById(serviceId);
                    if(discussDO != null){
                        remark.append("【");
                        remark.append(discussDO.getDiscussSubject());
                        remark.append("】");
                    }
                }else{
                    ComActDiscussOptionDO discussOptionDO = comActDiscussOptionService.getById(serviceId);
                    if(discussOptionDO != null){
                        ComActDiscussDO discussDO = comActDiscussDAO.selectById(discussOptionDO.getDiscussId());
                        if(discussDO != null){
                            remark.append("【");
                            remark.append(discussDO.getVoteTitle());
                            remark.append("】");
                        }
                    }
                }
                break;
            case 4:
                identityType = 3;
                remark.append("参与志愿者活动奖励积分");
                ComActActivityDO actActivityZYZDO = comActActivityService.getById(serviceId);
                if(actActivityZYZDO != null){
                    remark.append("【");
                    remark.append(actActivityZYZDO.getActivityName());
                    remark.append("】");
                }
                break;
            case 5:
                remark.append("参与社区活动奖励积分");
                ComActActivityDO actActivityDO = comActActivityService.getById(serviceId);
                if(actActivityDO != null){
                    remark.append("【");
                    remark.append(actActivityDO.getActivityName());
                    remark.append("】");
                }
                break;
            case 6:
                identityType = 2;
@@ -230,16 +258,19 @@
                    return R.fail("未查询到用户信息,记录积分失败");
                }
                //判断调查问卷调查的对象是什么身份,如果是党员和志愿者两种身份,则记录志愿者积分
                if(questnaireDO.getForParty() && integralUser.getIsPartymember().equals(1)){
                if(questnaireDO.getForParty().equals(1) && integralUser.getIsPartymember().equals(1)){
                    identityType = 2;
                    if(questnaireDO.getForVolunteer() && integralUser.getIsVolunteer().equals(1)){
                    if(questnaireDO.getForVolunteer().equals(1) && integralUser.getIsVolunteer().equals(1)){
                        identityType = 3;
                    }
                }
                if(questnaireDO.getForVolunteer() && integralUser.getIsVolunteer().equals(1)){
                if(questnaireDO.getForVolunteer().equals(1) && integralUser.getIsVolunteer().equals(1)){
                    identityType = 3;
                }
                remark.append("参与调查问卷奖励积分");
                remark.append("【");
                remark.append(questnaireDO.getTitle());
                remark.append("】");
                break;
            default:
                break;
@@ -324,10 +355,11 @@
     * @param communityId   社区id
     * @return  查询请求参数
     */
    private ComActIntegralCountDTO getIntegralCountDTO(Integer type,Long userId,Long communityId){
    private ComActIntegralCountDTO getIntegralCountDTO(Integer type,Long userId,Long communityId,Integer integralType){
        ComActIntegralCountDTO integralCountDTO = new ComActIntegralCountDTO();
        integralCountDTO.setUserId(userId);
        integralCountDTO.setCommunityId(communityId);
        integralCountDTO.setServiceType(integralType);
        integralCountDTO.setType(ComActIntegralUserTradeDO.changeType.add);
        if(type.equals(ComActIntegralRuleDO.type.month)){
            integralCountDTO.setStartTime(DateUtils.getFirstDayOfMonthString());