提交 4c514fa6 authored 作者: aiqingguo's avatar aiqingguo

违约

上级 050aa8b7
package com.clx.performance.param.mq;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @Author: aiqingguo
* @Description: 货主违约规则
* @Date: 2023-10-11 17:30:05
* @Version: 1.0
*/
@Setter
@Getter
@ToString
@NoArgsConstructor
public class BreakContractOwnerRuleAddMqParam {
private Integer ruleId; //规则id
}
package com.clx.performance.param.pc.breakcontract.carrier; package com.clx.performance.param.pc.breakcontract.carrier;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
...@@ -8,6 +7,7 @@ import lombok.Setter; ...@@ -8,6 +7,7 @@ import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.Map;
/** /**
* @Author: aiqingguo * @Author: aiqingguo
...@@ -25,8 +25,6 @@ public class BreakContractOwnerRuleAddParam { ...@@ -25,8 +25,6 @@ public class BreakContractOwnerRuleAddParam {
private String name; private String name;
@ApiModelProperty(value = "自动规则") @ApiModelProperty(value = "自动规则")
private BreakContractOwnerRuleVO.AutoRule autoRule; private Map<String, String> rule;
@ApiModelProperty(value = "手动规则")
private BreakContractOwnerRuleVO.ManualRule manualRule;
} }
...@@ -19,6 +19,9 @@ public class PageBreakContractDriverRecordParam extends PageParam { ...@@ -19,6 +19,9 @@ public class PageBreakContractDriverRecordParam extends PageParam {
@ApiModelProperty("触发类型:1系统触发 2手动触发") @ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType; private Integer triggerType;
@ApiModelProperty(value = "违约方类型:1平台 2货主 3司机", example = "1")
private Integer breakContractPartyType;
@ApiModelProperty(value = "开始时间", example = "") @ApiModelProperty(value = "开始时间", example = "")
private String beginTime; private String beginTime;
......
...@@ -19,6 +19,9 @@ public class PageBreakContractOwnerRecordParam extends PageParam { ...@@ -19,6 +19,9 @@ public class PageBreakContractOwnerRecordParam extends PageParam {
@ApiModelProperty("触发类型:1系统触发 2手动触发") @ApiModelProperty("触发类型:1系统触发 2手动触发")
private Integer triggerType; private Integer triggerType;
@ApiModelProperty(value = "违约方类型:1平台 2货主 3司机", example = "1")
private Integer breakContractPartyType;
@ApiModelProperty(value = "开始时间", example = "") @ApiModelProperty(value = "开始时间", example = "")
private String beginTime; private String beginTime;
......
...@@ -8,6 +8,7 @@ import lombok.ToString; ...@@ -8,6 +8,7 @@ import lombok.ToString;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Map;
/** /**
* @author liruixin * @author liruixin
......
...@@ -7,6 +7,7 @@ import lombok.Setter; ...@@ -7,6 +7,7 @@ import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Map;
/** /**
* @author liruixin * @author liruixin
...@@ -36,11 +37,8 @@ public class BreakContractOwnerRuleVO { ...@@ -36,11 +37,8 @@ public class BreakContractOwnerRuleVO {
@ApiModelProperty("修改时间") @ApiModelProperty("修改时间")
private String modifiedTime; private String modifiedTime;
@ApiModelProperty(value = "自动规则") @ApiModelProperty(value = "自动规则")
private AutoRule autoRule; private Map<String, String> rule;
@ApiModelProperty(value = "手动规则")
private ManualRule manualRule;
@Getter @Getter
@Setter @Setter
......
...@@ -50,6 +50,11 @@ ...@@ -50,6 +50,11 @@
<artifactId>user-sdk</artifactId> <artifactId>user-sdk</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.msl</groupId>
<artifactId>document-api</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.msl</groupId> <groupId>com.msl</groupId>
<artifactId>msl-esign-v3-sdk</artifactId> <artifactId>msl-esign-v3-sdk</artifactId>
......
package com.clx.performance.config;
import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConfigurationProperties(prefix = "break.contract")
@Getter
@Setter
public class BreakContractConfig {
private Long templateNo;
}
package com.clx.performance.config;
import com.clx.performance.constant.RabbitKeyBreakContractConstants;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.HashMap;
import java.util.Map;
/**
* @Author: aiqingguo
* @Description: 违约 MQ
* @Date: 2023-10-12 16:27:30
* @Version: 1.0
*/
@Configuration
public class RabbitBreakContractConfig {
@Bean
public DirectExchange breakContractDefaultExchange() {
return new DirectExchange(RabbitKeyBreakContractConstants.DEFAULT_EXCHANGE);
}
@Bean
public Queue breakContractDefaultDelayQueue() {
Map<String, Object> params = new HashMap<>(8);
params.put("x-message-ttl", 15 * 60 * 1000);
params.put("x-max-length", 5000000);
params.put("x-dead-letter-exchange", RabbitKeyBreakContractConstants.DEFAULT_EXCHANGE);
params.put("x-dead-letter-routing-key", RabbitKeyBreakContractConstants.DEFAULT_DEAD_ROUTING_KEY);
return new Queue(RabbitKeyBreakContractConstants.DEFAULT_DELAY_QUEUE, true, false, false, params);
}
@Bean
public Binding breakContractDefaultDelayQueueBinding() {
return BindingBuilder.bind(breakContractDefaultDelayQueue()).to(breakContractDefaultExchange()).with(RabbitKeyBreakContractConstants.DEFAULT_DELAY_ROUTING_KEY);
}
@Bean
public Queue breakContractDefaultDeadQueue() {
return new Queue(RabbitKeyBreakContractConstants.DEFAULT_DEAD_QUEUE);
}
@Bean
public Binding breakContractDefaultDeadQueueBinding() {
return BindingBuilder.bind(breakContractDefaultDeadQueue()).to(breakContractDefaultExchange()).with(RabbitKeyBreakContractConstants.DEFAULT_DEAD_ROUTING_KEY);
}
/**
* 货主规则新增
*/
@Bean
public Queue breakContractOwnerRuleAddQueue() {
return new Queue(RabbitKeyBreakContractConstants.OWNER_RULE_ADD_QUEUE);
}
@Bean
public Binding breakContractOwnerRuleAddQueueBinding() {
return BindingBuilder.bind(breakContractOwnerRuleAddQueue()).to(breakContractDefaultExchange()).with(RabbitKeyBreakContractConstants.OWNER_RULE_ADD_ROUTING_KEY);
}
}
package com.clx.performance.constant;
/**
* @Author: aiqingguo
* @Description: 违约-mq
* @Date: 2023-10-12 15:27:23
* @Version: 1.0
*/
public class RabbitKeyBreakContractConstants {
private static final String PREFIX = "clx-performance.breakContract.";
private static final String EXCHANGE = ".exchange";
private static final String QUEUE = ".queue";
private static final String QUEUE_ROUTING_KEY = ".routing.key";
private static final String DELAY_QUEUE = ".delay.queue";
private static final String DELAY_ROUTING_KEY = ".delay.routing.key";
private static final String DEAD_QUEUE = ".dead.queue";
private static final String DEAD_ROUTING_KEY = ".dead.routing.key";
private RabbitKeyBreakContractConstants() {
}
/**
* 缺省交换机
*/
public static final String DEFAULT_EXCHANGE = PREFIX +"default"+EXCHANGE;
/**
* 缺省延迟队列
*/
public static final String DEFAULT_DELAY_QUEUE = PREFIX +"default"+DELAY_QUEUE;
public static final String DEFAULT_DELAY_ROUTING_KEY = PREFIX +"default"+DELAY_ROUTING_KEY;
public static final String DEFAULT_DEAD_QUEUE = PREFIX +"default"+DEAD_QUEUE;
public static final String DEFAULT_DEAD_ROUTING_KEY = PREFIX +"default"+DEAD_ROUTING_KEY;
/**
* 新增货主违约规则
*/
public static final String OWNER_RULE_ADD_QUEUE = PREFIX +"ownerRule.add"+QUEUE;
public static final String OWNER_RULE_ADD_ROUTING_KEY = PREFIX +"ownerRule.add"+QUEUE_ROUTING_KEY;
}
...@@ -18,7 +18,8 @@ import java.util.List; ...@@ -18,7 +18,8 @@ import java.util.List;
*/ */
public interface BreakContractOwnerRuleDao extends BaseDao<BreakContractOwnerRuleMapper, BreakContractOwnerRule, Integer> { public interface BreakContractOwnerRuleDao extends BaseDao<BreakContractOwnerRuleMapper, BreakContractOwnerRule, Integer> {
boolean updateRule(BreakContractOwnerRule item); boolean updateRuleStatus(BreakContractOwnerRule item);
boolean updateFile(BreakContractOwnerRule item);
Optional<BreakContractOwnerRule> selectByName(String name); Optional<BreakContractOwnerRule> selectByName(String name);
......
...@@ -23,13 +23,21 @@ import java.util.List; ...@@ -23,13 +23,21 @@ import java.util.List;
public class BreakContractOwnerRuleDaoImpl extends BaseDaoImpl<BreakContractOwnerRuleMapper, BreakContractOwnerRule, Integer> implements BreakContractOwnerRuleDao { public class BreakContractOwnerRuleDaoImpl extends BaseDaoImpl<BreakContractOwnerRuleMapper, BreakContractOwnerRule, Integer> implements BreakContractOwnerRuleDao {
@Override @Override
public boolean updateRule(BreakContractOwnerRule item) { public boolean updateRuleStatus(BreakContractOwnerRule item) {
return update(lUdWrapper() return update(lUdWrapper()
.eq(BreakContractOwnerRule::getId, item.getId()) .eq(BreakContractOwnerRule::getId, item.getId())
.set(BreakContractOwnerRule::getStatus, item.getStatus()) .set(BreakContractOwnerRule::getStatus, item.getStatus())
); );
} }
@Override
public boolean updateFile(BreakContractOwnerRule item) {
return update(lUdWrapper()
.eq(BreakContractOwnerRule::getId, item.getId())
.set(BreakContractOwnerRule::getFile, item.getFile())
);
}
@Override @Override
public Optional<BreakContractOwnerRule> selectByName(String name) { public Optional<BreakContractOwnerRule> selectByName(String name) {
return Optional.of(name) return Optional.of(name)
......
package com.clx.performance.extranal.document;
import com.msl.document.api.vo.ContractEvidenceRecordVo;
import java.util.Map;
public interface DocumentService {
Long createContract(Long templateNo, Map<String, String> map);
ContractEvidenceRecordVo getContractInfo(Long evidenceNo);
}
package com.clx.performance.extranal.document.impl;
import com.clx.performance.extranal.document.DocumentService;
import com.msl.common.base.Optional;
import com.msl.common.enums.ResultCodeEnum;
import com.msl.common.result.Result;
import com.msl.document.api.feign.ContractEvidenceFeign;
import com.msl.document.api.feign.ContractTemplateFeign;
import com.msl.document.api.param.GenerateContractParam;
import com.msl.document.api.vo.ContractEvidenceRecordVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.Map;
@Slf4j
@Service
@AllArgsConstructor
public class DocumentServiceImpl implements DocumentService {
private final ContractTemplateFeign contractTemplateFeign;
private final ContractEvidenceFeign contractEvidenceFeign;
@Override
public Long createContract(Long templateNo, Map<String, String> map) {
GenerateContractParam param = new GenerateContractParam();
param.setTemplateNo(templateNo);
param.setParametersValueMap(map);
return Optional.ofNullable(contractTemplateFeign.generateContract(param))
.filter(Result::succeed).map(item->item.getData()).orElseThrow(ResultCodeEnum.FAIL);
}
@Override
public ContractEvidenceRecordVo getContractInfo(Long evidenceNo) {
return Optional.ofNullable(contractEvidenceFeign.getContractEvidenceDetail(evidenceNo))
.filter(Result::succeed).map(item->item.getData()).orElseThrow(ResultCodeEnum.FAIL);
}
}
package com.clx.performance.listener.breakcontract;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqDelay;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyBreakContractConstants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 违约 mq
* @Date: 2023-10-20 16:14:30
* @Version: 1.0
*/
@Slf4j
@Component
public class BreakContractDelayListener {
@Autowired
private RabbitTemplate rabbitTemplate;
@RabbitListener(queues = RabbitKeyBreakContractConstants.DEFAULT_DEAD_QUEUE)
public void process(Message message) {
try{
log.info("违约-延迟, message:{}", message);
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<MqDelay>>(){}).getData());
}catch (Exception e){
log.info("违约-延迟 失败",e);
}
}
void process(MqDelay mq){
Message message = MessageBuilder.withBody(JSON.toJSONString(mq.getData()).getBytes()).build();
rabbitTemplate.send(mq.getExchange(), mq.getRouterKey(), message);
}
}
package com.clx.performance.listener.breakcontract;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyBreakContractConstants;
import com.clx.performance.param.mq.BreakContractOwnerRuleAddMqParam;
import com.clx.performance.service.breakcontract.BreakContractMqHandlerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @Author: 艾庆国
* @Description: 违约规则新增 mq
* @Date: 2023-10-20 11:45:08
* @Version: 1.0
*/
@Slf4j
@Component
public class BreakContractOwnerRuleAddListener {
@Autowired
private BreakContractMqHandlerService breakContractMqHandlerService;
@RabbitListener(queues = RabbitKeyBreakContractConstants.OWNER_RULE_ADD_QUEUE)
public void process(Message message) {
try{
log.info("违约-货主违约规则创建, message:{}", new String(message.getBody()));
process(JSON.parseObject(new String(message.getBody()), new TypeReference<MqWrapper<BreakContractOwnerRuleAddMqParam>>(){}).getData());
}catch (Exception e){
log.info("违约-货主违约规则创建 失败",e);
}
}
private void process(BreakContractOwnerRuleAddMqParam mq){
breakContractMqHandlerService.ownerRuleAdd(mq);
}
}
...@@ -38,6 +38,10 @@ public class BreakContractOwnerRule implements HasKey<Integer> { ...@@ -38,6 +38,10 @@ public class BreakContractOwnerRule implements HasKey<Integer> {
@ApiModelProperty("规则json") @ApiModelProperty("规则json")
private String ruleJson; private String ruleJson;
@TableField("auto_rule_json")
@ApiModelProperty("自动规则json")
private String autoRuleJson;
@TableField("status") @TableField("status")
@ApiModelProperty("状态:1启用 2禁用") @ApiModelProperty("状态:1启用 2禁用")
private Integer status; private Integer status;
......
package com.clx.performance.service.breakcontract;
import com.clx.performance.param.mq.BreakContractOwnerRuleAddMqParam;
public interface BreakContractMqHandlerService {
void ownerRuleAdd(BreakContractOwnerRuleAddMqParam mq);
}
package com.clx.performance.service.breakcontract;
public interface BreakContractMqService {
void ownerRuleAdd(Integer ruleId);
}
package com.clx.performance.service.impl.breakcontract;
import com.alibaba.fastjson.JSON;
import com.clx.performance.config.BreakContractConfig;
import com.clx.performance.dao.breakcontract.BreakContractOwnerRuleDao;
import com.clx.performance.enums.PerformanceResultEnum;
import com.clx.performance.extranal.document.DocumentService;
import com.clx.performance.model.breakcontract.BreakContractOwnerRule;
import com.clx.performance.param.mq.BreakContractOwnerRuleAddMqParam;
import com.clx.performance.service.breakcontract.BreakContractMqHandlerService;
import com.msl.document.api.vo.ContractEvidenceRecordVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Map;
@Slf4j
@Service
public class BreakContractMqHandlerServiceImpl implements BreakContractMqHandlerService {
@Autowired
private BreakContractOwnerRuleDao breakContractOwnerRuleDao;
@Autowired
private DocumentService documentService;
@Autowired
private BreakContractConfig breakContractConfig;
@Transactional(rollbackFor = Exception.class)
@Override
public void ownerRuleAdd(BreakContractOwnerRuleAddMqParam mq) {
BreakContractOwnerRule rule = breakContractOwnerRuleDao.getEntityByKey(mq.getRuleId()).orElseThrow(PerformanceResultEnum.DATA_NOT_FIND);
Map<String,String> map = JSON.parseObject(rule.getRuleJson(), Map.class);
// 创建合同
Long contractNo = documentService.createContract(breakContractConfig.getTemplateNo(), map);
ContractEvidenceRecordVo contract = documentService.getContractInfo(contractNo);
// 更新违约规则文档
rule.setFile(contract.getFileUrl());
breakContractOwnerRuleDao.updateFile(rule);
}
}
package com.clx.performance.service.impl.breakcontract;
import com.alibaba.fastjson.JSON;
import com.clx.performance.common.MqDelay;
import com.clx.performance.common.MqWrapper;
import com.clx.performance.constant.RabbitKeyBreakContractConstants;
import com.clx.performance.param.mq.BreakContractOwnerRuleAddMqParam;
import com.clx.performance.service.breakcontract.BreakContractMqService;
import com.clx.performance.service.impl.IntegralMqHandlerServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @Author: aiqingguo
* @Description: 司机积分 mq
* @Date: 2023-10-10 13:21:07
* @Version: 1.0
*/
@Slf4j
@Service
public class BreakContractMqServiceImpl implements BreakContractMqService {
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private IntegralMqHandlerServiceImpl integralMqHandlerService;
@Override
public void ownerRuleAdd(Integer ruleId) {
BreakContractOwnerRuleAddMqParam mq = new BreakContractOwnerRuleAddMqParam();
mq.setRuleId(ruleId);
MqDelay<MqWrapper<BreakContractOwnerRuleAddMqParam>> delay = new MqDelay<>(RabbitKeyBreakContractConstants.DEFAULT_EXCHANGE, RabbitKeyBreakContractConstants.OWNER_RULE_ADD_ROUTING_KEY, new MqWrapper<>(mq));
Message message = MessageBuilder.withBody(JSON.toJSONString(new MqWrapper<>(delay)).getBytes()).build();
message.getMessageProperties().setExpiration("5000");
rabbitTemplate.send(RabbitKeyBreakContractConstants.DEFAULT_EXCHANGE, RabbitKeyBreakContractConstants.DEFAULT_DELAY_ROUTING_KEY, message);
}
}
...@@ -9,6 +9,7 @@ import com.clx.performance.model.breakcontract.BreakContractOwnerRule; ...@@ -9,6 +9,7 @@ import com.clx.performance.model.breakcontract.BreakContractOwnerRule;
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRuleAddParam; import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRuleAddParam;
import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRuleStatusUpdateParam; import com.clx.performance.param.pc.breakcontract.carrier.BreakContractOwnerRuleStatusUpdateParam;
import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRuleParam; import com.clx.performance.param.pc.breakcontract.carrier.PageBreakContractOwnerRuleParam;
import com.clx.performance.service.breakcontract.BreakContractMqService;
import com.clx.performance.service.breakcontract.BreakContractOwnerRuleService; import com.clx.performance.service.breakcontract.BreakContractOwnerRuleService;
import com.clx.performance.struct.breakcontract.BreakContractOwnerRuleStruct; import com.clx.performance.struct.breakcontract.BreakContractOwnerRuleStruct;
import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO; import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleFileVO;
...@@ -17,8 +18,11 @@ import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO; ...@@ -17,8 +18,11 @@ import com.clx.performance.vo.pc.breakcontract.carrier.BreakContractOwnerRuleVO;
import com.msl.common.exception.ServiceSystemException; import com.msl.common.exception.ServiceSystemException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @author liruixin * @author liruixin
...@@ -33,7 +37,10 @@ public class BreakContractOwnerRuleServiceImpl implements BreakContractOwnerRul ...@@ -33,7 +37,10 @@ public class BreakContractOwnerRuleServiceImpl implements BreakContractOwnerRul
private BreakContractOwnerRuleDao breakContractOwnerRuleDao; private BreakContractOwnerRuleDao breakContractOwnerRuleDao;
@Autowired @Autowired
private BreakContractOwnerRuleStruct breakContractOwnerRuleStruct; private BreakContractOwnerRuleStruct breakContractOwnerRuleStruct;
@Autowired
private BreakContractMqService breakContractMqService;
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void saveRule(BreakContractOwnerRuleAddParam param) { public void saveRule(BreakContractOwnerRuleAddParam param) {
...@@ -41,19 +48,31 @@ public class BreakContractOwnerRuleServiceImpl implements BreakContractOwnerRul ...@@ -41,19 +48,31 @@ public class BreakContractOwnerRuleServiceImpl implements BreakContractOwnerRul
if (rule != null) {throw new ServiceSystemException(PerformanceResultEnum.BREAK_CONTRACT_RULE_NAME_EXIST);} if (rule != null) {throw new ServiceSystemException(PerformanceResultEnum.BREAK_CONTRACT_RULE_NAME_EXIST);}
rule = new BreakContractOwnerRule(); rule = new BreakContractOwnerRule();
rule.setRuleJson(JSON.toJSONString(param));
rule.setName(param.getName()); rule.setName(param.getName());
rule.setFile("url"); rule.setRuleJson(JSON.toJSONString(param.getRule()));
BreakContractOwnerRuleVO.AutoRule autoRule = new BreakContractOwnerRuleVO.AutoRule();
autoRule.setOrderCancelRule(new BreakContractOwnerRuleVO.OrderCancelRule());
autoRule.setOrderAmountReduceRule(new BreakContractOwnerRuleVO.OrderAmountReduceRule());
autoRule.getOrderAmountReduceRule().setRatio(new BigDecimal(param.getRule().get("A-a")));
autoRule.getOrderCancelRule().setBeforeRatio(new BigDecimal(param.getRule().get("A-b")));
autoRule.getOrderCancelRule().setAfterRatio(new BigDecimal(param.getRule().get("A-c")));
autoRule.getOrderCancelRule().setAfterFigurePerHour(new BigDecimal(param.getRule().get("A-d")));
rule.setAutoRuleJson(JSON.toJSONString(autoRule));
breakContractOwnerRuleDao.saveEntity(rule); breakContractOwnerRuleDao.saveEntity(rule);
breakContractMqService.ownerRuleAdd(rule.getId());
} }
@Transactional(rollbackFor = Exception.class)
@Override @Override
public void updateStatus(BreakContractOwnerRuleStatusUpdateParam param) { public void updateStatus(BreakContractOwnerRuleStatusUpdateParam param) {
BreakContractOwnerRule rule = breakContractOwnerRuleDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.BREAK_CONTRACT_RULE_NO_FOUND); BreakContractOwnerRule rule = breakContractOwnerRuleDao.getEntityByKey(param.getId()).orElseThrow(PerformanceResultEnum.BREAK_CONTRACT_RULE_NO_FOUND);
rule.setStatus(param.getStatus()); rule.setStatus(param.getStatus());
breakContractOwnerRuleDao.updateRule(rule); breakContractOwnerRuleDao.updateRuleStatus(rule);
} }
...@@ -64,6 +83,7 @@ public class BreakContractOwnerRuleServiceImpl implements BreakContractOwnerRul ...@@ -64,6 +83,7 @@ public class BreakContractOwnerRuleServiceImpl implements BreakContractOwnerRul
BreakContractOwnerRuleVO vo = JSON.parseObject(rule.getRuleJson(), BreakContractOwnerRuleVO.class); BreakContractOwnerRuleVO vo = JSON.parseObject(rule.getRuleJson(), BreakContractOwnerRuleVO.class);
vo.setId(rule.getId()); vo.setId(rule.getId());
vo.setName(rule.getName()); vo.setName(rule.getName());
vo.setRule(JSON.parseObject(rule.getRuleJson(), Map.class));
vo.setStatus(rule.getStatus()); vo.setStatus(rule.getStatus());
return vo; return vo;
......
...@@ -31,6 +31,7 @@ public class BreakContractDriverRecordSqlProvider { ...@@ -31,6 +31,7 @@ public class BreakContractDriverRecordSqlProvider {
if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");} if (StringUtils.isNotBlank(param.getChildNo())) {WHERE("child_no = #{param.childNo}");}
if (Objects.nonNull(param.getTriggerType())) {WHERE("trigger_type = #{param.triggerType}");} if (Objects.nonNull(param.getTriggerType())) {WHERE("trigger_type = #{param.triggerType}");}
if (Objects.nonNull(param.getBreakContractPartyType())) {WHERE("break_contract_party_type = #{param.breakContractPartyType}");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");} if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");} if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
......
...@@ -27,6 +27,7 @@ public class BreakContractOwnerRecordSqlProvider { ...@@ -27,6 +27,7 @@ public class BreakContractOwnerRecordSqlProvider {
if (StringUtils.isNotBlank(param.getOrderNo())) {WHERE("order_no = #{param.orderNo}");} if (StringUtils.isNotBlank(param.getOrderNo())) {WHERE("order_no = #{param.orderNo}");}
if (Objects.nonNull(param.getTriggerType())) {WHERE("trigger_type = #{param.triggerType}");} if (Objects.nonNull(param.getTriggerType())) {WHERE("trigger_type = #{param.triggerType}");}
if (Objects.nonNull(param.getBreakContractPartyType())) {WHERE("break_contract_party_type = #{param.breakContractPartyType}");}
if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");} if (StringUtils.isNotBlank(param.getBeginTime())) {WHERE("create_time >= #{param.beginTime}");}
if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");} if (StringUtils.isNotBlank(param.getEndTime())) {WHERE("create_time <= #{param.endTime}");}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论