Commit 756f1d2f authored by 技术总监-万宁's avatar 技术总监-万宁

增加订单类型、模式paas配置

parent 2b36a2a3
package com.ssy.lingxi.common.constant.basic;
/**
* 平台规则类型
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
public enum PlatformRuleTypeEnum {
/**
* 资金归集模式 - 1
*/
FUND(1, "资金归集模式"),
/**
* 库存扣减策略 - 2
*/
INVENTORY(2, "库存扣减策略"),
/**
* 下单模式 - 3
*/
ORDER_MODE(3, "下单模式"),
/**
* 订单类型 - 4
*/
ORDER_TYPE(4, "订单类型"),
/**
* 结算方式 - 5
*/
SETTLEMENT(5, "结算方式"),
/**
* 品类与属性使用方式 - 6
*/
PRODUCT_CATEGORY(6,"品类与属性使用方式"),
/**
* 采购寻源类型 - 7
*/
PURCHASE_SOURCE(7, "采购寻源类型"),
/**
* 采购合同付款方式 - 8
*/
PURCHASE_CONTRACT(8, "采购合同付款方式"),
/**
* 营销活动类型 - 9
*/
MARKETING(9, "营销活动类型");
PlatformRuleTypeEnum(Integer code, String name) {
this.code = code;
this.name = name;
}
private Integer code;
private String name;
public Integer getCode() {
return code;
}
public String getName() {
return name;
}
}
package com.ssy.lingxi.order.model.constant;
package com.ssy.lingxi.common.constant.order;
import com.ssy.lingxi.common.constant.order.OrderTypeEnum;
import com.ssy.lingxi.order.model.vo.basic.response.DropdownItem;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* 下单模式枚举
......@@ -130,14 +125,6 @@ public enum OrderModeEnum {
}
/**
* 枚举定义列表
* @return 前端下拉菜单
*/
public static List<DropdownItem> toDropdownList() {
return Arrays.stream(OrderModeEnum.values()).sorted(Comparator.comparingInt(OrderModeEnum::getCode)).map(e -> new DropdownItem(e.getCode(), e.getName())).collect(Collectors.toList());
}
/**
* 根据下单模式枚举值,获得订单类型枚举值
* @param code 下单模式枚举值
* @return 订单类型枚举值
......
package com.ssy.lingxi.order.api.fallback;
import com.ssy.lingxi.common.response.ResponseCode;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.api.model.vo.paas.OrderTypeAndModeVO;
import com.ssy.lingxi.order.api.paas.OrderConfigFeignService;
import javax.validation.Valid;
import java.util.List;
/**
* 订单服务配置接口Fallback
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
public class OrderConfigFeignServiceFallback implements OrderConfigFeignService {
/**
* 同步更新订单类型、订单模式状态
*
* @param typeAndModes 接口参数
* @return 更新结果
*/
@Override
public Wrapper<Void> updateOrderTypeAndModeStatus(@Valid List<OrderTypeAndModeVO> typeAndModes) {
return Wrapper.fail(ResponseCode.SERVICE_ORDER_ERROR);
}
}
package com.ssy.lingxi.order.api.model.vo.paas;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 订单类型和订单模式配置
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
public class OrderTypeAndModeVO implements Serializable {
private static final long serialVersionUID = -3782998116948514623L;
/**
* 配置Id
*/
private Long id;
/**
* 平台规则类型,定义在 PlatformRuleTypeEnum中
*/
@NotNull(message = "平台规则类型枚举不能为空")
private Integer ruleType;
/**
* 枚举值
*/
@NotNull(message = "类型枚举不能为空")
private Integer code;
/**
* 状态
*/
@NotNull(message = "状态不能为空")
@Min(value = 0, message = "状态:0-停用,1-启用")
@Max(value = 1, message = "状态:0-停用,1-启用")
private Integer status;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Integer getRuleType() {
return ruleType;
}
public void setRuleType(Integer ruleType) {
this.ruleType = ruleType;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
package com.ssy.lingxi.order.api.paas;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.api.model.vo.paas.OrderTypeAndModeVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.validation.Valid;
import java.util.List;
/**
* 订单服务配置接口
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
@FeignClient(name = "order-service")
public interface OrderConfigFeignService {
/**
* 同步更新订单类型、订单模式状态
* @param typeAndModes 接口参数
* @return 更新结果
*/
@RequestMapping(value = "/order/config/base/type/status", method = RequestMethod.POST)
Wrapper<Void> updateOrderTypeAndModeStatus(@RequestBody @Valid List<OrderTypeAndModeVO> typeAndModes);
}
package com.ssy.lingxi.order.controller.paas;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.api.model.vo.paas.OrderTypeAndModeVO;
import com.ssy.lingxi.order.service.paas.IOrderConfigService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
/**
* 订单服务配置接口
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
@RestController
@RequestMapping("/order/config")
public class OrderConfigController {
@Resource
private IOrderConfigService orderConfigService;
/**
* 同步更新订单类型、订单模式状态
* @param typeAndModes 接口参数
* @return 更新结果
*/
@RequestMapping(value = "/base/type/status", method = RequestMethod.POST)
public Wrapper<Void> updateOrderTypeAndModeStatus(@RequestBody @Valid List<OrderTypeAndModeVO> typeAndModes) {
return orderConfigService.updateOrderTypeAndModeStatus(typeAndModes);
}
}
package com.ssy.lingxi.order.entity;
import javax.persistence.*;
import java.io.Serializable;
/**
* 订单模式
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
@Entity
@Table(schema = "public", name = "ord_base_order_mode", indexes = {@Index(name = "ord_base_order_mode_config_id_idx", columnList = "configId"), @Index(name = "ord_base_order_mode_code_idx", columnList = "code"), @Index(name = "ord_base_order_mode_status_idx", columnList = "status")})
public class BaseOrderModeDO implements Serializable {
private static final long serialVersionUID = 6986192805748296055L;
/**
* 主键Id
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ord_base_order_mode_seq")
@SequenceGenerator(sequenceName = "ord_base_order_mode_seq", name = "ord_base_order_mode_seq", allocationSize = 1)
private Long id;
/**
* 配置Id
*/
@Column
private Long configId;
/**
* 枚举值,定义在 OrderModeEnum 中
*/
@Column
private Integer code;
/**
* 订单类型名称
*/
@Column(columnDefinition = "varchar(30)")
private String name;
/**
* 状态
*/
@Column
private Integer status;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getConfigId() {
return configId;
}
public void setConfigId(Long configId) {
this.configId = configId;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
package com.ssy.lingxi.order.entity;
import javax.persistence.*;
import java.io.Serializable;
/**
* 订单类型
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
@Entity
@Table(schema = "public", name = "ord_base_order_type", indexes = {@Index(name = "ord_base_order_type_config_id_idx", columnList = "configId"), @Index(name = "ord_base_order_type_code_idx", columnList = "code"), @Index(name = "ord_base_order_type_status_idx", columnList = "status")})
public class BaseOrderTypeDO implements Serializable {
private static final long serialVersionUID = -6883691367175138264L;
/**
* 主键Id
*/
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ord_base_order_type_seq")
@SequenceGenerator(sequenceName = "ord_base_order_type_seq", name = "ord_base_order_type_seq", allocationSize = 1)
private Long id;
/**
* 配置Id
*/
@Column
private Long configId;
/**
* 枚举值,定义在 OrderTypeEnum 中
*/
@Column
private Integer code;
/**
* 订单类型名称
*/
@Column(columnDefinition = "varchar(30)")
private String name;
/**
* 状态
*/
@Column
private Integer status;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getConfigId() {
return configId;
}
public void setConfigId(Long configId) {
this.configId = configId;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
}
......@@ -33,6 +33,12 @@ public class OrderInvoiceDO implements Serializable {
private OrderDO order;
/**
* 发票Id
*/
@Column
private Long invoiceId;
/**
* 发票种类,定义在InvoiceKindEnum中,1-企业,2-个人
*/
@Column
......@@ -102,6 +108,14 @@ public class OrderInvoiceDO implements Serializable {
this.order = order;
}
public Long getInvoiceId() {
return invoiceId;
}
public void setInvoiceId(Long invoiceId) {
this.invoiceId = invoiceId;
}
public Integer getInvoiceKind() {
return invoiceKind;
}
......
package com.ssy.lingxi.order.handler.validator;
import com.ssy.lingxi.common.constant.order.OrderModeEnum;
import com.ssy.lingxi.order.handler.annotation.OrderModeAnnotation;
import com.ssy.lingxi.order.model.constant.OrderModeEnum;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
......
package com.ssy.lingxi.order.handler.validator;
import com.ssy.lingxi.common.constant.order.OrderModeEnum;
import com.ssy.lingxi.order.handler.annotation.SrmOrderModeAnnotation;
import com.ssy.lingxi.order.model.constant.OrderModeEnum;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
......
......@@ -5,6 +5,7 @@ import com.ssy.lingxi.order.handler.annotation.InvoiceTypeAnnotation;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import javax.validation.constraints.Size;
import java.io.Serializable;
......@@ -18,6 +19,13 @@ public class OrderInvoiceVO implements Serializable {
private static final long serialVersionUID = 7302120324692332001L;
/**
* 发票Id
*/
@NotNull(message = "发票Id要大于0")
@Positive(message = "发票Id要大于0")
private Long invoiceId;
/**
* 发票种类,1-企业,2-个人
*/
@NotNull(message = "发票种类不能为空")
......@@ -75,6 +83,14 @@ public class OrderInvoiceVO implements Serializable {
@NotNull(message = "'是否默认发票'不能为空")
private Boolean defaultInvoice;
public Long getInvoiceId() {
return invoiceId;
}
public void setInvoiceId(Long invoiceId) {
this.invoiceId = invoiceId;
}
public Integer getInvoiceKind() {
return invoiceKind;
}
......
......@@ -13,6 +13,7 @@ public class OrderConsigneeDetailVO implements Serializable {
public OrderConsigneeDetailVO() {
this.deliverDate = "";
this.consigneeId = 0L;
this.consignee = "";
this.areaName = "";
this.provinceCode = "";
......@@ -30,6 +31,11 @@ public class OrderConsigneeDetailVO implements Serializable {
private String deliverDate;
/**
* 收货人Id
*/
private Long consigneeId;
/**
* 收货人姓名
*/
private String consignee;
......@@ -82,6 +88,14 @@ public class OrderConsigneeDetailVO implements Serializable {
this.deliverDate = deliverDate;
}
public Long getConsigneeId() {
return consigneeId;
}
public void setConsigneeId(Long consigneeId) {
this.consigneeId = consigneeId;
}
public String getConsignee() {
return consignee;
}
......
......@@ -12,6 +12,11 @@ public class OrderInvoiceDetailVO implements Serializable {
private static final long serialVersionUID = -1490055680212526543L;
/**
* 发票Id
*/
private Long invoiceId;
/**
* 发票种类,1-企业,2-个人
*/
private Integer invoiceKind;
......@@ -66,6 +71,14 @@ public class OrderInvoiceDetailVO implements Serializable {
*/
private Boolean defaultInvoice;
public Long getInvoiceId() {
return invoiceId;
}
public void setInvoiceId(Long invoiceId) {
this.invoiceId = invoiceId;
}
public Integer getInvoiceKind() {
return invoiceKind;
}
......
package com.ssy.lingxi.order.repository;
import com.ssy.lingxi.order.entity.BaseOrderModeDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
/**
* 订单模式Jpa仓库
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
@Repository
public interface BaseOrderModeRepository extends JpaRepository<BaseOrderModeDO, Long>, JpaSpecificationExecutor<BaseOrderModeDO> {
}
package com.ssy.lingxi.order.repository;
import com.ssy.lingxi.order.entity.BaseOrderTypeDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 订单类型Jpa仓库
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
@Repository
public interface BaseOrderTypeRepository extends JpaRepository<BaseOrderTypeDO, Long>, JpaSpecificationExecutor<BaseOrderTypeDO> {
List<BaseOrderTypeDO> findByCodeInAndStatus(List<Integer> codes, Integer status);
}
......@@ -16,11 +16,11 @@ public interface IBaseOrderRequirementService {
/**
* 检查并生成订单其他要求,调用方要保存OrderDO
* @param order 订单
* @param requirementVO 其他要求接口参数
* @param requirements 其他要求接口参数
* @param isCreate 是否新增,true-新增,false-修改
* @return 检查结果
*/
Wrapper<Void> checkOrderRequirement(OrderDO order, OrderRequirementVO requirementVO, boolean isCreate);
Wrapper<Void> checkOrderRequirement(OrderDO order, OrderRequirementVO requirements, boolean isCreate);
/**
* 查询订单其他要求
......
package com.ssy.lingxi.order.service.paas;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.api.model.vo.paas.OrderTypeAndModeVO;
import java.util.List;
/**
* 订单服务同步配置
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
public interface IOrderConfigService {
/**
* 同步更新订单类型、订单模式状态
* @param typeAndModes 接口参数
* @return 更新结果
*/
Wrapper<Void> updateOrderTypeAndModeStatus(List<OrderTypeAndModeVO> typeAndModes);
}
......@@ -108,6 +108,7 @@ public class BaseOrderConsigneeServiceImpl implements IBaseOrderConsigneeService
}
detailVO.setDeliverDate(consigneeDO.getDeliverDate() == null ? "" : consigneeDO.getDeliverDate().format(OrderServiceContants.DEFAULT_DATE_FORMATTER));
detailVO.setConsigneeId(consigneeDO.getConsigneeId());
detailVO.setConsignee(consigneeDO.getConsignee());
detailVO.setAreaName(consigneeDO.getProvinceName().concat(consigneeDO.getCityName()).concat(consigneeDO.getDistrictName()));
detailVO.setProvinceCode(consigneeDO.getProvinceCode());
......
......@@ -64,6 +64,7 @@ public class BaseOrderInvoiceServiceImpl implements IBaseOrderInvoiceService {
}
OrderInvoiceDO invoice = new OrderInvoiceDO();
invoice.setInvoiceId(invoiceVO.getInvoiceId());
invoice.setOrder(order);
invoice.setInvoiceKind(invoiceVO.getInvoiceKind());
invoice.setInvoiceType(invoiceVO.getInvoiceType());
......@@ -94,6 +95,7 @@ public class BaseOrderInvoiceServiceImpl implements IBaseOrderInvoiceService {
}
OrderInvoiceDetailVO detailVO = new OrderInvoiceDetailVO();
detailVO.setInvoiceId(invoice.getInvoiceId());
detailVO.setInvoiceKind(invoice.getInvoiceKind());
detailVO.setInvoiceKindName(InvoiceKindEnum.getNameByCode(invoice.getInvoiceKind()));
detailVO.setInvoiceType(invoice.getInvoiceType());
......
......@@ -28,24 +28,24 @@ public class BaseOrderRequirementServiceImpl implements IBaseOrderRequirementSer
* 检查并生成订单其他要求,调用方要保存OrderDO
*
* @param order 订单
* @param requirementVO 其他要求接口参数
* @param requirements 其他要求接口参数
* @param isCreate 是否新增,true-新增,false-修改
* @return 检查结果
*/
@Override
public Wrapper<Void> checkOrderRequirement(OrderDO order, OrderRequirementVO requirementVO, boolean isCreate) {
public Wrapper<Void> checkOrderRequirement(OrderDO order, OrderRequirementVO requirements, boolean isCreate) {
if(!isCreate) {
orderRequirementRepository.deleteByOrder(order);
}
if(requirementVO == null || CollectionUtils.isEmpty(requirementVO.getDetail())) {
if(requirements == null || CollectionUtils.isEmpty(requirements.getDetail())) {
order.setRequirement(null);
return Wrapper.success();
}
OrderRequirementDO requirement = new OrderRequirementDO();
requirement.setOrder(order);
requirement.setDetail(requirementVO.getDetail());
requirement.setDetail(requirements.getDetail());
order.setRequirement(requirement);
......
package com.ssy.lingxi.order.serviceimpl.base;
import com.ssy.lingxi.common.constant.order.OrderModeEnum;
import com.ssy.lingxi.common.constant.order.OrderTypeEnum;
import com.ssy.lingxi.common.exception.BusinessException;
import com.ssy.lingxi.common.response.ResponseCode;
......@@ -9,7 +10,10 @@ import com.ssy.lingxi.order.entity.OrderProductDO;
import com.ssy.lingxi.order.model.bo.OrderProductSummaryBO;
import com.ssy.lingxi.order.model.bo.ProcessStepsBO;
import com.ssy.lingxi.order.model.bo.ProcessTaskBO;
import com.ssy.lingxi.order.model.constant.*;
import com.ssy.lingxi.order.model.constant.BuyerInnerStatusEnum;
import com.ssy.lingxi.order.model.constant.OrderOuterStatusEnum;
import com.ssy.lingxi.order.model.constant.OrderServiceContants;
import com.ssy.lingxi.order.model.constant.VendorInnerStatusEnum;
import com.ssy.lingxi.order.model.vo.basic.response.DropdownItem;
import com.ssy.lingxi.order.model.vo.basic.response.WorkFlowStepVO;
import com.ssy.lingxi.order.model.vo.buyer.response.BuyerOrderDetailVO;
......
......@@ -3,17 +3,13 @@ package com.ssy.lingxi.order.serviceimpl.base;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ssy.lingxi.common.constant.basic.EnableDisableStatus;
import com.ssy.lingxi.common.constant.order.OrderModeEnum;
import com.ssy.lingxi.common.constant.order.OrderPurchaseProcessTypeEnum;
import com.ssy.lingxi.common.constant.order.OrderTradeProcessTypeEnum;
import com.ssy.lingxi.common.constant.order.OrderTypeEnum;
import com.ssy.lingxi.common.constant.workflow.WorkflowProcessKindEnum;
import com.ssy.lingxi.order.entity.BasePurchaseProcessDO;
import com.ssy.lingxi.order.entity.BaseTradeProcessDO;
import com.ssy.lingxi.order.entity.CountryAreaDO;
import com.ssy.lingxi.order.entity.TransactionWorkflow;
import com.ssy.lingxi.order.repository.BasePurchaseProcessRepository;
import com.ssy.lingxi.order.repository.BaseTradeProcessRepository;
import com.ssy.lingxi.order.repository.CountryAreaRepository;
import com.ssy.lingxi.order.repository.TransactionWorkflowRepository;
import com.ssy.lingxi.order.entity.*;
import com.ssy.lingxi.order.repository.*;
import com.ssy.lingxi.order.service.base.IOrderDataInitService;
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.core.JdbcTemplate;
......@@ -23,6 +19,8 @@ import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
......@@ -47,6 +45,12 @@ public class OrderDataInitServiceImpl implements IOrderDataInitService {
private BasePurchaseProcessRepository basePurchaseProcessRepository;
@Resource
private BaseOrderTypeRepository baseOrderTypeRepository;
@Resource
private BaseOrderModeRepository baseOrderModeRepository;
@Resource
private TransactionWorkflowRepository transactionWorkflowRepository;
/**
......@@ -64,6 +68,12 @@ public class OrderDataInitServiceImpl implements IOrderDataInitService {
//初始化基础采购流程
initBasePurchaseProcess();
//初始化订单类型
initBaseOrderType();
//初始化订单模式
initBaseOrderMode();
//订单工作流配置
initTransactionWorkflow();
}
......@@ -421,6 +431,50 @@ public class OrderDataInitServiceImpl implements IOrderDataInitService {
}
/**
* 初始化订单类型
*/
private void initBaseOrderType() {
if(countTable("ord_base_order_type") > 0) {
return;
}
alterSequence("ord_base_order_type_seq");
List<BaseOrderTypeDO> baseOrderTypes = Arrays.stream(OrderTypeEnum.values()).sorted(Comparator.comparingInt(OrderTypeEnum::getCode)).map(e -> {
BaseOrderTypeDO baseOrderType = new BaseOrderTypeDO();
baseOrderType.setConfigId(0L);
baseOrderType.setCode(e.getCode());
baseOrderType.setName(e.getName());
baseOrderType.setStatus(EnableDisableStatus.ENABLE.getCode());
return baseOrderType;
}).collect(Collectors.toList());
baseOrderTypeRepository.saveAll(baseOrderTypes);
}
/**
* 初始化订单模式
*/
private void initBaseOrderMode() {
if(countTable("ord_base_order_mode") > 0) {
return;
}
alterSequence("ord_base_order_mode_seq");
List<BaseOrderModeDO> baseOrderModes = Arrays.stream(OrderModeEnum.values()).sorted(Comparator.comparingInt(OrderModeEnum::getCode)).map(e -> {
BaseOrderModeDO baseOrderMode = new BaseOrderModeDO();
baseOrderMode.setConfigId(0L);
baseOrderMode.setCode(e.getCode());
baseOrderMode.setName(e.getName());
baseOrderMode.setStatus(EnableDisableStatus.ENABLE.getCode());
return baseOrderMode;
}).collect(Collectors.toList());
baseOrderModeRepository.saveAll(baseOrderModes);
}
/**
* 初始化订单工作流配置
*/
private void initTransactionWorkflow() {
......
package com.ssy.lingxi.order.serviceimpl.paas;
import com.ssy.lingxi.common.constant.basic.PlatformRuleTypeEnum;
import com.ssy.lingxi.common.exception.BusinessException;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.api.model.vo.paas.OrderTypeAndModeVO;
import com.ssy.lingxi.order.entity.BaseOrderModeDO;
import com.ssy.lingxi.order.entity.BaseOrderTypeDO;
import com.ssy.lingxi.order.repository.BaseOrderModeRepository;
import com.ssy.lingxi.order.repository.BaseOrderTypeRepository;
import com.ssy.lingxi.order.service.paas.IOrderConfigService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
/**
* 订单服务同步配置实现类
* @author 万宁
* @version 2.0.0
* @date 2021-08-04
*/
@Service
public class OrderConfigServiceImpl implements IOrderConfigService {
@Resource
private BaseOrderTypeRepository baseOrderTypeRepository;
@Resource
private BaseOrderModeRepository baseOrderModeRepository;
/**
* 同步更新订单类型、订单模式状态
*
* @param typeAndModes 接口参数
* @return 更新结果
*/
@Transactional(rollbackFor = BusinessException.class)
@Override
public Wrapper<Void> updateOrderTypeAndModeStatus(List<OrderTypeAndModeVO> typeAndModes) {
List<BaseOrderTypeDO> baseOrderTypes = baseOrderTypeRepository.findAll();
baseOrderTypes.forEach(baseOrderType -> typeAndModes.stream().filter(typeAndMode -> typeAndMode.getRuleType().equals(PlatformRuleTypeEnum.ORDER_TYPE.getCode()) && typeAndMode.getCode().equals(baseOrderType.getCode())).findFirst().ifPresent(typeAndMode -> {
baseOrderType.setConfigId(typeAndMode.getId());
baseOrderType.setStatus(typeAndMode.getStatus());
}));
baseOrderTypeRepository.saveAll(baseOrderTypes);
List<BaseOrderModeDO> baseOrderModes = baseOrderModeRepository.findAll();
baseOrderModes.forEach(baseOrderMode -> typeAndModes.stream().filter(typeAndMode -> typeAndMode.getRuleType().equals(PlatformRuleTypeEnum.ORDER_MODE.getCode()) && typeAndMode.getCode().equals(baseOrderMode.getCode())).findFirst().ifPresent(typeAndMode -> {
baseOrderMode.setConfigId(typeAndMode.getId());
baseOrderMode.setStatus(typeAndMode.getStatus());
}));
baseOrderModeRepository.saveAll(baseOrderModes);
return Wrapper.success();
}
}
package com.ssy.lingxi.order.serviceimpl.web;
import com.ssy.lingxi.common.constant.order.OrderModeEnum;
import com.ssy.lingxi.common.constant.order.OrderTypeEnum;
import com.ssy.lingxi.common.exception.BusinessException;
import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
......
package com.ssy.lingxi.order.serviceimpl.web;
import com.ssy.lingxi.common.constant.order.OrderModeEnum;
import com.ssy.lingxi.common.constant.order.OrderPayTypeEnum;
import com.ssy.lingxi.common.constant.order.OrderTypeEnum;
import com.ssy.lingxi.common.exception.BusinessException;
......
......@@ -28,6 +28,7 @@ dependencies {
implementation project(':platform-template-service:platform-template-service-api')
implementation project(':pay-service:pay-service-api')
implementation project(':sms-service:sms-service-api')
implementation project(':order-service:order-service-api')
implementation project(':merchant-member-service:merchant-member-service-api')
implementation project(':common')
compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis', version: '2.3.0.RELEASE'
......
......@@ -11,6 +11,9 @@ project(':platform-template-service:platform-template-service-api').projectDir =
include 'pay-service:pay-service-api'
project(':pay-service:pay-service-api').projectDir = "../pay-service/pay-service-api" as File
include 'order-service:order-service-api'
project(':order-service:order-service-api').projectDir = "../order-service/order-service-api" as File
include 'warehouse-service:warehouse-service-api'
project(':warehouse-service:warehouse-service-api').projectDir = "../warehouse-service/warehouse-service-api" as File
......
......@@ -17,7 +17,7 @@ public class RuleConfiguration {
public RuleConfiguration() {
}
public RuleConfiguration(Integer isPitchOn, Integer platformType, String platformWayName, String platformTypeName, Long code) {
public RuleConfiguration(Integer isPitchOn, Integer platformType, String platformWayName, String platformTypeName, Integer code) {
this.platformType = platformType;
this.platformWayName = platformWayName;
this.isPitchOn = isPitchOn;
......@@ -47,9 +47,9 @@ public class RuleConfiguration {
private Integer isPitchOn;
/**
*下单类型code
*类型枚举
*/
private Long code;
private Integer code;
/**
* 平台模式类型: 1.资金归集模式 2.库存扣减策略 3.下单模式 4.订单类型 5.结算方式 6.品类与属性使用方式 7.采购寻源类型 8.采购合同付款方式
......
package com.ssy.lingxi.system.service.impl;
import com.ssy.lingxi.common.constant.CommonConstant;
import com.ssy.lingxi.common.constant.basic.PlatformRuleTypeEnum;
import com.ssy.lingxi.common.response.ResponseCode;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.order.api.model.vo.paas.OrderTypeAndModeVO;
import com.ssy.lingxi.order.api.paas.OrderConfigFeignService;
import com.ssy.lingxi.platform.manage.api.feign.RuleConfigurationControllerFeign;
import com.ssy.lingxi.platform.manage.api.vo.response.RuleConfigurationResponse;
import com.ssy.lingxi.system.dao.RuleConfigurationRepository;
......@@ -27,11 +30,14 @@ import java.util.stream.Collectors;
*/
@Service
public class RuleConfigurationServiceImpl implements RuleConfigurationService {
@Resource
private RuleConfigurationRepository ruleConfigurationRepository;
@Resource
RuleConfigurationRepository ruleConfigurationRepository;
private RuleConfigurationControllerFeign ruleConfigurationControllerFeign;
@Resource
RuleConfigurationControllerFeign ruleConfigurationControllerFeign;
private OrderConfigFeignService orderConfigFeignService;
/**
* 查询平台规则配置
......@@ -80,8 +86,21 @@ public class RuleConfigurationServiceImpl implements RuleConfigurationService {
return Wrapper.fail(wrapper.getCode(), wrapper.getMessage());
}
ruleConfigurationRepository.saveAll(request.getRuleConfigurations());
List<OrderTypeAndModeVO> typeAndModes = request.getRuleConfigurations().stream().filter(rule -> rule.getPlatformType().equals(PlatformRuleTypeEnum.ORDER_MODE.getCode()) || rule.getPlatformType().equals(PlatformRuleTypeEnum.ORDER_TYPE.getCode())).map(rule -> {
OrderTypeAndModeVO modeVO = new OrderTypeAndModeVO();
modeVO.setId(rule.getId());
modeVO.setCode(rule.getCode());
modeVO.setRuleType(rule.getPlatformType());
modeVO.setStatus(rule.getIsPitchOn());
return modeVO;
}).collect(Collectors.toList());
Wrapper<Void> orderResult = orderConfigFeignService.updateOrderTypeAndModeStatus(typeAndModes);
if(orderResult.getCode() != ResponseCode.SUCCESS.getCode()) {
return Wrapper.fail(orderResult.getCode(), orderResult.getMessage());
}
ruleConfigurationRepository.saveAll(request.getRuleConfigurations());
return Wrapper.success();
}
......@@ -97,7 +116,7 @@ public class RuleConfigurationServiceImpl implements RuleConfigurationService {
ruleConfiguration.setPlatformType(temp.getPlatformType());
ruleConfiguration.setPlatformTypeName(temp.getPlatformTypeName());
ruleConfiguration.setPlatformWayName(temp.getPlatformWayName());
ruleConfiguration.setId(temp.getCode());
ruleConfiguration.setId(Long.valueOf(temp.getCode()));
return ruleConfiguration;
}).collect(Collectors.toList());
return Wrapper.success(collect);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment