puhanshu
2021-12-21 89044714eef77f834078e878533e93060a0c5e17
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java
@@ -4,6 +4,7 @@
import javax.annotation.Resource;
import com.panzhihua.service_community.dao.ComBpActivityDAO;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -56,6 +57,8 @@
    private ComActDiscussOptionService comActDiscussOptionService;
    @Resource
    private ComActActivityService comActActivityService;
    @Resource
    private ComBpActivityDAO comBpActivityDAO;
    /**
     * 查询用户某个时间段交易数量
@@ -96,6 +99,10 @@
    @Override
    public Long addIntegralTradeRecord(Long userId, Long integralId, Long communityId, Long serviceId,
        Integer serviceType, Integer amount, Integer changeType, String remark, Integer identityType, Long createBy) {
        if (amount < 0) {
            changeType = ComActIntegralUserTradeDO.changeType.reduce;
            amount = Math.abs(amount);
        }
        ComActIntegralUserTradeDO integralUserTradeDO = new ComActIntegralUserTradeDO();
        integralUserTradeDO.setId(Snowflake.getId());
        integralUserTradeDO.setUserId(userId);
@@ -299,9 +306,37 @@
                break;
            case 8:
                remark.append("成功参加活动奖励积分");
                ComActActivityDO actActivityDO1 = comActActivityService.getById(serviceId);
                if(actActivityDO1!=null){
                    amount=actActivityDO1.getRewardIntegral();
                if(integralUserDTO.getActivityType()==1){
                    ComActActivityDO actActivityDO1 = comActActivityService.getById(serviceId);
                    if(actActivityDO1!=null){
                        amount=actActivityDO1.getRewardIntegral();
                        if(actActivityDO1.getVolunteerMax()!=0){
                            identityType=3;
                        }else {
                            identityType=1;
                        }
                    }
                }
//                else {
//                    ComPbActivityDO comPbActivityDO = comBpActivityDAO.selectById(serviceId);
//                    if(comPbActivityDO!=null){
//                        amount=comPbActivityDO.getRewardIntegral();
//                        identityType=2;
//                    }
//                }
                break;
            case 9:
                remark.append("取消活动扣除积分");
                if (integralUserDTO.getActivityType() == 1) {
                    ComActActivityDO actActivityDO1 = comActActivityService.getById(serviceId);
                    if (actActivityDO1 != null) {
                        amount = -actActivityDO1.getCancelDeduct();
                        if (actActivityDO1.getVolunteerMax() != 0) {
                            identityType = 3;
                        } else {
                            identityType = 1;
                        }
                    }
                }
            default:
                break;
@@ -350,19 +385,19 @@
        Integer integralAvailableResident = integralUserDO.getIntegralAvailableResident();
        Integer integralFrozenResident = integralUserDO.getIntegralFrozenResident();
        integralUserDO.setIntegralSum(integralUserDO.getIntegralSum() + amount);
        integralUserDO.setIntegralAvailableSum(integralUserDO.getIntegralAvailableSum() + amount);
        integralUserDO.setIntegralSum(addIntegral(integralUserDO.getIntegralSum() + amount));
        integralUserDO.setIntegralAvailableSum(addIntegral(integralUserDO.getIntegralAvailableSum() + amount));
        integralUserDO.setUpdateAt(nowDate);
        // 根据不同身份,计算钱包金额
        if (identityType.equals(ComActIntegralUserTradeDO.identityType.jm)) {
            integralUserDO.setIntegralResident(integralUserDO.getIntegralResident() + amount);
            integralUserDO.setIntegralAvailableResident(integralUserDO.getIntegralAvailableResident() + amount);
            integralUserDO.setIntegralResident(addIntegral(integralUserDO.getIntegralResident() + amount));
            integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount));
        } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.dy)) {
            integralUserDO.setIntegralParty(integralUserDO.getIntegralParty() + amount);
            integralUserDO.setIntegralAvailableParty(integralUserDO.getIntegralAvailableParty() + amount);
            integralUserDO.setIntegralParty(addIntegral(integralUserDO.getIntegralParty() + amount));
            integralUserDO.setIntegralAvailableParty(addIntegral(integralUserDO.getIntegralAvailableParty() + amount));
        } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)) {
            integralUserDO.setIntegralVolunteer(integralUserDO.getIntegralVolunteer() + amount);
            integralUserDO.setIntegralAvailableVolunteer(integralUserDO.getIntegralAvailableVolunteer() + amount);
            integralUserDO.setIntegralVolunteer(addIntegral(integralUserDO.getIntegralVolunteer() + amount));
            integralUserDO.setIntegralAvailableVolunteer(addIntegral(integralUserDO.getIntegralAvailableVolunteer() + amount));
        }
        // 更新钱包
        comActIntegralUserService.updateById(integralUserDO);
@@ -382,6 +417,10 @@
        return R.ok();
    }
    private int addIntegral(int integral) {
        return integral > 0 ? integral : 0;
    }
    /**
     * 根据类型、用户id、社区id构建查询请求参数
     *