| 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<PartnerConfig> findValueByPartnerAndGroup(String partnerId, String group, boolean getDefault){  | 
|   | 
|         if(StrUtil.isBlank(partnerId)){  | 
|             List<ConfigInfo> byCode = configService.findByGroup(group);  | 
|             List<PartnerConfig> 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<PartnerConfig> partnerConfig1 = partnerConfigMapper.select(partnerConfig);  | 
|   | 
|         if(CollUtil.isNotEmpty(partnerConfig1)){  | 
|             return partnerConfig1;  | 
|         }  | 
|   | 
|         if(getDefault){  | 
|             List<ConfigInfo> byCode = configService.findByGroup(group);  | 
|             List<PartnerConfig> list=new ArrayList<>();  | 
|             getDefaultConfig(byCode, list);  | 
|             return list;  | 
|         }  | 
|         return null;  | 
|     }  | 
|   | 
|     /**  | 
|      * 转换  | 
|      * @param byCode  | 
|      * @param list  | 
|      */  | 
|     private void getDefaultConfig(List<ConfigInfo> byCode, List<PartnerConfig> 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;  | 
|     }  | 
| }  |