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;
|
}
|
}
|