package com.xzx.gc.order.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import com.rabbitmq.client.LongString; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.OrderEnum; import com.xzx.gc.entity.*; import com.xzx.gc.order.mapper.PartnerConfigMapper; import com.xzx.gc.util.DoubleUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import tk.mybatis.mapper.entity.Example; import javax.servlet.http.Part; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Service @Transactional public class PartnerConfigService { @Autowired private PartnerConfigMapper partnerConfigMapper; @Autowired private ConfigService configService; /** * 获取配置值 * @param partnerId 合伙人id * @param code 配置码 * @param getDefault 未获取到合伙人的配置是否获取配置表的配置 * @return 值 */ public String findValueByPartnerAndCode(String partnerId,String code,boolean getDefault){ if(StrUtil.isBlank(partnerId)){ ConfigInfo byCode = configService.findByCode(code); return byCode.getConfigValue(); } PartnerConfig partnerConfig=new PartnerConfig(); partnerConfig.setDelFlag(Convert.toByte(0)); partnerConfig.setConfigCode(code); partnerConfig.setPartnerId(Convert.toLong(partnerId)); PartnerConfig partnerConfig1 = partnerConfigMapper.selectOne(partnerConfig); if(partnerConfig1!=null){ return partnerConfig1.getConfigValue(); } if(getDefault){ ConfigInfo byCode = configService.findByCode(code); if(byCode!=null) { return byCode.getConfigValue(); } } return null; } /** * 获取配置组的所有值 * @param partnerId 合伙人id * @param group 配置组 * @param getDefault 未获取到合伙人的配置是否获取配置表的配置 * @return 值 */ public List findValueByPartnerAndGroup(String partnerId, String group, boolean getDefault){ if(StrUtil.isBlank(partnerId)){ List byCode = configService.findByGroup(group); List list=new ArrayList<>(); getDefaultConfig(byCode, list); return list; } PartnerConfig partnerConfig=new PartnerConfig(); partnerConfig.setDelFlag(Convert.toByte(0)); partnerConfig.setConfigGroup(group); partnerConfig.setPartnerId(Convert.toLong(partnerId)); List partnerConfig1 = partnerConfigMapper.select(partnerConfig); if(CollUtil.isNotEmpty(partnerConfig1)){ return partnerConfig1; } if(getDefault){ List byCode = configService.findByGroup(group); List list=new ArrayList<>(); getDefaultConfig(byCode, list); return list; } return null; } /** * 转换 * @param byCode * @param list */ private void getDefaultConfig(List byCode, List list) { for (ConfigInfo configInfo : byCode) { PartnerConfig partnerConfig2=new PartnerConfig(); partnerConfig2.setConfigCode(configInfo.getConfigTypeCode()); partnerConfig2.setConfigValue(configInfo.getConfigValue()); list.add(partnerConfig2); } } private String checkConfigValue(String type,String partnerId){ PartnerConfig config = new PartnerConfig(); config.setConfigCode(type); config.setPartnerId(Long.parseLong(partnerId)); String num = partnerConfigMapper.selectConfigByCode(config); return num; } private int updateConfigValue(Long id,String code, String value, String partnerId, String groupType){ PartnerConfig config = new PartnerConfig(); config.setId(id); config.setConfigCode(code); config.setConfigValue(value); config.setConfigGroup(groupType); config.setPartnerId(Long.parseLong(partnerId)); config.setUpdateTime(new Date()); int num = partnerConfigMapper.updateByPrimaryKeySelective(config); return num; } private int insertConfigValue(String code, String value, String partnerId, String groupType){ PartnerConfig config = new PartnerConfig(); config.setConfigCode(code); config.setConfigValue(value); config.setConfigGroup(groupType); config.setPartnerId(Long.parseLong(partnerId)); config.setDelFlag((byte)0); config.setCreateTime(new Date()); int num = partnerConfigMapper.insertUseGeneratedKeys(config); return num; } }