doum
2 天以前 d8689abdb2378bdd1c97317ca881173eca26283c
server/dmmall_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -1,8 +1,13 @@
package com.doumee.service.system.impl;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.dao.system.SystemDictMapper;
import com.doumee.dao.system.dto.PlatformConfigDTO;
import com.doumee.dao.system.model.SystemDict;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -15,11 +20,14 @@
import com.doumee.service.system.SystemDictDataService;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -33,6 +41,8 @@
    @Autowired
    private SystemDictDataMapper systemDictDataMapper;
    @Autowired
    private SystemDictMapper systemDictMapper;
    @Override
    public Integer create(SystemDictData systemDictData) {
@@ -112,4 +122,173 @@
                .in(SystemDictData::getLabel,codes);
        return systemDictDataMapper.selectList(wrapper);
    }
    @Override
    public PlatformConfigDTO getPlatformConfigDTO(){
        PlatformConfigDTO platformConfigDTO = new PlatformConfigDTO();
        platformConfigDTO.setRegIntegralReward(new BigDecimal(0));
        platformConfigDTO.setRegCouponRewardStatus(0);
        platformConfigDTO.setRegCouponRewardList(new ArrayList<>());
        platformConfigDTO.setRegIntegralRewardStatus(0);
        platformConfigDTO.setShareIntegralReward(new BigDecimal(0));
        platformConfigDTO.setShareCouponRewardList(new ArrayList<>());
        platformConfigDTO.setShareIntegralRewardStatus(0);
        platformConfigDTO.setShareCouponRewardStatus(0);
        platformConfigDTO.setReturnMemberIntegral(new BigDecimal(0));
        platformConfigDTO.setReturnShopIntegral(new BigDecimal(0));
        platformConfigDTO.setReturnMemberIntegralStatus(0);
        platformConfigDTO.setReturnShopIntegralStatus(0);
        platformConfigDTO.setMinIntegralPriceLimit(new BigDecimal(0));
        platformConfigDTO.setDeductIntegralLimit(0);
        platformConfigDTO.setIntegralRuleInfo("");
        platformConfigDTO.setIntegralInvalidType(0);
        platformConfigDTO.setIntegralInvalidCircle(0);
        platformConfigDTO.setTotalRate(new BigDecimal(0));
 /*       SystemDict  dict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda()
                .eq(SystemDict::getCode,Constants.ORDER_SET).last("limit 1"));
        if(dict == null){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"数据字典配置数据有误,请联系系统管理员处理!");
        }
*/
        List<SystemDictData> systemDictDataList = systemDictDataMapper.selectJoinList(SystemDictData.class,new MPJLambdaWrapper<SystemDictData>()
                .selectAll(SystemDictData.class)
                .leftJoin(SystemDict.class,SystemDict::getId,SystemDictData::getDictId)
                .in(SystemDict::getCode,Constants.ORDER_SET,Constants.INTEGRAL_SET)
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)){
            for (SystemDictData systemDictData:systemDictDataList) {
                if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD)){
                    platformConfigDTO.setRegIntegralReward(getDecimalValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_STATUS)){
                    platformConfigDTO.setRegCouponRewardStatus(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_LIST)){
                    platformConfigDTO.setRegCouponRewardList(getListValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD_STATUS)){
                    platformConfigDTO.setRegIntegralRewardStatus(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD)){
                    platformConfigDTO.setShareIntegralReward(getDecimalValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_LIST)){
                    platformConfigDTO.setShareCouponRewardList(getListValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD_STATUS)){
                    platformConfigDTO.setShareIntegralRewardStatus(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_STATUS)){
                    platformConfigDTO.setShareCouponRewardStatus(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL)){
                    platformConfigDTO.setReturnMemberIntegral(getDecimalValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL)){
                    platformConfigDTO.setReturnShopIntegral(getDecimalValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS)){
                    platformConfigDTO.setReturnMemberIntegralStatus(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL_STATUS)){
                    platformConfigDTO.setReturnShopIntegralStatus(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.ORDERSET_TOTAL_RATE)) {
                    platformConfigDTO.setTotalRate(getDecimalValByStr(systemDictData.getCode()));
                }
                else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDTYPE)) {
                    platformConfigDTO.setIntegralInvalidType(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDCIRCLE)) {
                    platformConfigDTO.setIntegralInvalidCircle(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALRULEINFO)) {
                    platformConfigDTO.setIntegralRuleInfo(systemDictData.getCode());
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_DEDUCTINTEGRALLIMIT)) {
                    platformConfigDTO.setDeductIntegralLimit(getIntegerValByStr(systemDictData.getCode()));
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_MININTEGRALPRICELIMIT)) {
                    platformConfigDTO.setMinIntegralPriceLimit(getDecimalValByStr(systemDictData.getCode()));
                }
            }
        }
        return platformConfigDTO;
    }
    private Integer getIntegerValByStr(String code) {
        try {
            return Integer.parseInt(code);
        }catch (Exception e){
        }
        return  0;
    }
    private BigDecimal getDecimalValByStr(String code) {
        try {
            return new BigDecimal(code);
        }catch (Exception e){
        }
        return  new BigDecimal(0);
    }
    private List<JSONObject> getListValByStr(String code) {
        try {
            return JSONObject.parseObject(code,new TypeReference<List<JSONObject>>(){});
        }catch (Exception e){
        }
        return  new ArrayList();
    }
    @Override
    @Transactional(rollbackFor = {Exception.class, BusinessException.class})
    public void updPlatformConfig(PlatformConfigDTO platformConfigDTO) {
 /*       SystemDict dict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda()
                .eq(SystemDict::getCode, Constants.ORDER_SET).last("limit 1"));
        if (dict == null) {
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "数据字典配置数据有误,请联系系统管理员处理!");
        }*/
        List<SystemDictData> systemDictDataList = systemDictDataMapper.selectJoinList(SystemDictData.class,new MPJLambdaWrapper<SystemDictData>()
                .selectAll(SystemDictData.class)
                .leftJoin(SystemDict.class,SystemDict::getId,SystemDictData::getDictId)
                .in(SystemDict::getCode,Constants.ORDER_SET,Constants.INTEGRAL_SET)
        );
        if (com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictDataList)) {
            for (SystemDictData systemDictData : systemDictDataList) {
                if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD_STATUS)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getRegIntegralRewardStatus()) + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD_STATUS)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getShareIntegralRewardStatus()) + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_STATUS)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getRegCouponRewardStatus()) + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_STATUS)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getShareCouponRewardStatus()) + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_INTEGRAL_REWARD)) {
                    systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getRegIntegralReward()).doubleValue() + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_INTEGRAL_REWARD)) {
                    systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getShareIntegralReward()).doubleValue() + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_REG_COUPON_REWARD_LIST)) {
                    systemDictData.setCode(JSONObject.toJSONString(platformConfigDTO.getRegCouponRewardList() == null ? new ArrayList() : platformConfigDTO.getRegCouponRewardList()));
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_SHARE_COUPON_REWARD_LIST)) {
                    systemDictData.setCode(JSONObject.toJSONString(platformConfigDTO.getShareCouponRewardList() == null ? new ArrayList() : platformConfigDTO.getShareCouponRewardList()));
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL_STATUS)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getReturnMemberIntegralStatus()) + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL_STATUS)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getReturnShopIntegralStatus()) + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_MEMBER_INTEGRAL)) {
                    systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getReturnMemberIntegral()).doubleValue() + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_RETURN_SHOP_INTEGRAL)) {
                    systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getReturnShopIntegral()).doubleValue() + "");
                } else if (systemDictData.getLabel().equals(Constants.ORDERSET_TOTAL_RATE)) {
                    systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getTotalRate()).doubleValue() + "");
                }
                else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDTYPE)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getIntegralInvalidType()) + "");
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALINVALIDCIRCLE)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getIntegralInvalidCircle()) + "");
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_INTEGRALRULEINFO)) {
                    systemDictData.setCode(platformConfigDTO.getIntegralRuleInfo());
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_DEDUCTINTEGRALLIMIT)) {
                    systemDictData.setCode(Constants.formatIntegerNum(platformConfigDTO.getDeductIntegralLimit()) + "");
                }else if(systemDictData.getLabel().equals(Constants.INTERALSET_MININTEGRALPRICELIMIT)) {
                    systemDictData.setCode(Constants.formatBigdecimal(platformConfigDTO.getReturnShopIntegral()).doubleValue() + "");
                }
                systemDictDataMapper.update(new UpdateWrapper<SystemDictData>().lambda()
                        .set(SystemDictData::getCode, systemDictData.getCode())
                        .eq(SystemDictData::getId, systemDictData.getId()));
            }
        }
    }
}