Browse Source

订单、标签调整

v1.0
Yen 2 years ago
parent
commit
3a2440544e
  1. 4
      src/main/java/com/qs/serve/common/framework/annotations/TagField.java
  2. 20
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  3. 19
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java
  4. 3
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java
  5. 68
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java
  6. 5
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java
  7. 4
      src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java
  8. 15
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java
  9. 145
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  10. 2
      src/main/java/com/qs/serve/modules/tag/controller/TagCategoryController.java
  11. 27
      src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java
  12. 2
      src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java
  13. 6
      src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java
  14. 13
      src/main/java/com/qs/serve/modules/tag/entity/TagData.java
  15. 6
      src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java
  16. 5
      src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java
  17. 34
      src/main/java/com/qs/serve/modules/tag/entity/so/TagDataSo.java
  18. 6
      src/main/java/com/qs/serve/modules/tag/entity/vo/TagCategoryTreeVo.java
  19. 19
      src/main/java/com/qs/serve/modules/tag/entity/vo/TagDataVo.java
  20. 5
      src/main/java/com/qs/serve/modules/tag/mapper/TagDataMapper.java
  21. 4
      src/main/java/com/qs/serve/modules/tag/service/TagDataService.java
  22. 7
      src/main/java/com/qs/serve/modules/tag/service/impl/TagDataServiceImpl.java
  23. 71
      src/main/resources/mapper/tag/TagDataMapper.xml

4
src/main/java/com/qs/serve/common/framework/annotations/TagField.java

@ -0,0 +1,4 @@
package com.qs.serve.common.framework.annotations;
public @interface TagField {
}

20
src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java

@ -11,11 +11,13 @@ import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
import com.qs.serve.modules.goods.service.GoodsCategoryRuleService;
import com.qs.serve.modules.oms.entity.OmsOrder; import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.OmsOrderItem; import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.bo.OmsCancelOrder; import com.qs.serve.modules.oms.entity.bo.OmsCancelOrder;
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo; import com.qs.serve.modules.oms.entity.bo.OmsOrderBo;
import com.qs.serve.modules.oms.entity.bo.OmsOrderPcBo; import com.qs.serve.modules.oms.entity.bo.OmsOrderModifyParam;
import com.qs.serve.modules.oms.entity.bo.OmsOrderSkuBo;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.service.OmsOrderService; import com.qs.serve.modules.oms.service.OmsOrderService;
@ -43,6 +45,7 @@ public class OmsOrderApi {
private OmsOrderItemService omsOrderItemService; private OmsOrderItemService omsOrderItemService;
private BmsSupplierAddressService bmsSupplierAddressService; private BmsSupplierAddressService bmsSupplierAddressService;
private SysUserService sysUserService; private SysUserService sysUserService;
private GoodsCategoryRuleService goodsCategoryRuleService;
/** /**
* 确认订单 * 确认订单
@ -64,13 +67,24 @@ public class OmsOrderApi {
return R.ok(omsOrderService.createOrder(omsOrderBo)); return R.ok(omsOrderService.createOrder(omsOrderBo));
} }
/**
* 修改草稿的订单
* @param param
* @return
*/
@PostMapping("/modifyOrder")
public R<OmsOrder> modifyOrder(@RequestBody @Valid OmsOrderModifyParam param){
omsOrderService.modifyOrder(param);
return R.ok();
}
/** /**
* 创建订单(PC) * 创建订单(PC)
* @param omsOrderBo * @param omsOrderBo
* @return * @return
*/ */
@PostMapping("/createOrderOnPC") @PostMapping("/createOrderOnPC")
public R<OmsOrder> createOrder(@RequestBody @Valid OmsOrderPcBo omsOrderBo){ public R<OmsOrder> createOrder(@RequestBody @Valid OmsOrderSkuBo omsOrderBo){
return R.ok(omsOrderService.createOrderPc(omsOrderBo)); return R.ok(omsOrderService.createOrderPc(omsOrderBo));
} }
@ -138,6 +152,7 @@ public class OmsOrderApi {
public R<OmsOrder> getById(@PathVariable("id") String id){ public R<OmsOrder> getById(@PathVariable("id") String id){
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); BmsSupplier supplier = AuthContextUtils.getCurrentSupplier();
OmsOrder omsOrder = omsOrderService.getById(id); OmsOrder omsOrder = omsOrderService.getById(id);
omsOrder.setBrandRuleInfo(goodsCategoryRuleService.getById(omsOrder.getBrandRuleId()));
if(omsOrder.getSupplierId().toString().equals(supplier.getId())){ if(omsOrder.getSupplierId().toString().equals(supplier.getId())){
LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>(); LambdaQueryWrapper<OmsOrderItem> lqw = new LambdaQueryWrapper<>();
lqw.eq(OmsOrderItem::getOrderId,id); lqw.eq(OmsOrderItem::getOrderId,id);
@ -145,6 +160,7 @@ public class OmsOrderApi {
omsOrder.setOrderItems(list); omsOrder.setOrderItems(list);
return R.ok(omsOrder); return R.ok(omsOrder);
} }
return R.error(); return R.error();
} }

19
src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java

@ -30,6 +30,8 @@ public class OmsOrder implements Serializable {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
private String latitudeFrom;
/** 订单号 */ /** 订单号 */
@NotBlank(message = "订单号不能为空") @NotBlank(message = "订单号不能为空")
@Length(max = 20,message = "订单号长度不能超过20字") @Length(max = 20,message = "订单号长度不能超过20字")
@ -71,20 +73,9 @@ public class OmsOrder implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime checkTime; private LocalDateTime checkTime;
/** 成本中心id */
private Long costCenterId;
/** 成本中心编码 */
@Length(max = 20,message = "成本中心编码长度不能超过20字")
private String costCenterCode;
/** 成本中心名称 */
@Length(max = 20,message = "成本中心名称长度不能超过20字")
private String costCenterName;
/** 品牌ID */ /** 品牌ID */
@NotNull(message = "品牌ID不能为空") @NotNull(message = "品牌ID不能为空")
private Long brandId; private Long brandRuleId;
/** 制单人id */ /** 制单人id */
@Length(max = 32,message = "制单人id长度不能超过32字") @Length(max = 32,message = "制单人id长度不能超过32字")
@ -157,6 +148,8 @@ public class OmsOrder implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private Object checkUserInfo; private Object checkUserInfo;
/** 订单明细项 */
@TableField(exist = false)
private Object brandRuleInfo;
} }

3
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java

@ -21,6 +21,9 @@ public class OmsOrderBo {
/** 数量(立即购买或非普通订单) */ /** 数量(立即购买或非普通订单) */
private Integer quantity; private Integer quantity;
/** 品牌规则ID */
private Long brandRuleId;
/** 购物车ID(购物车方式下单) */ /** 购物车ID(购物车方式下单) */
private List<Long> shoppingCartIds; private List<Long> shoppingCartIds;

68
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java

@ -0,0 +1,68 @@
package com.qs.serve.modules.oms.entity.bo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/8
*/
@Data
public class OmsOrderModifyParam {
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 订单类型:0->普通订单;1->赠品;2->试吃品 */
private Integer orderType;
/** 供应商收货地址id */
private Long supplierAddrId;
/** 品牌规则ID */
private Long brandRuleId;
/** 制单人id */
private String userId;
/** 发票类型:0->普通发票;1->增值税发票; */
private Integer billType;
/** 是否加急 */
private Integer urgentFlag;
/** 备注 */
private String remark;
/** 供应商ID */
private Long supplierId;
/**
* 明细
*/
private List<OmsOrderItemModifyBo> orderItems;
@Data
public static class OmsOrderItemModifyBo{
/** SpuId(PC) */
private Long spuId;
/** SkuId(H5) */
private Long skuId;
/** 数量 */
private Integer quantity;
}
}

5
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderPcBo.java → src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java

@ -10,7 +10,7 @@ import java.util.List;
* @since 2022/10/14 * @since 2022/10/14
*/ */
@Data @Data
public class OmsOrderPcBo { public class OmsOrderSkuBo {
/** 订单类型:0->普通订单; */ /** 订单类型:0->普通订单; */
@NotNull @NotNull
@ -22,6 +22,9 @@ public class OmsOrderPcBo {
/** todo 促销活动id列表 */ /** todo 促销活动id列表 */
private List<Long> promotionIds; private List<Long> promotionIds;
/** 品牌规则ID */
private Long brandRuleId;
/** 创建订单参数(确认订单时可不传) */ /** 创建订单参数(确认订单时可不传) */
private CreateOrderParam createOrderParam; private CreateOrderParam createOrderParam;

4
src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java

@ -9,6 +9,7 @@ import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount;
import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.List;
@ -23,6 +24,9 @@ public class OmsConfirmOrderResult {
private Integer orderType; private Integer orderType;
/** 品牌规则ID */
private Long brandRuleId;
/** 购物车列表 */ /** 购物车列表 */
private List<OmsShoppingCart> shoppingCarts; private List<OmsShoppingCart> shoppingCarts;

15
src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java

@ -3,11 +3,11 @@ package com.qs.serve.modules.oms.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.oms.entity.OmsOrder; import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo; import com.qs.serve.modules.oms.entity.bo.OmsOrderBo;
import com.qs.serve.modules.oms.entity.bo.OmsOrderPcBo; import com.qs.serve.modules.oms.entity.bo.OmsOrderModifyParam;
import com.qs.serve.modules.oms.entity.bo.OmsOrderSkuBo;
import com.qs.serve.modules.oms.entity.bo.OmsSpuAssesInfoBo; import com.qs.serve.modules.oms.entity.bo.OmsSpuAssesInfoBo;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult;
import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List; import java.util.List;
/** /**
@ -29,7 +29,7 @@ public interface OmsOrderService extends IService<OmsOrder> {
* @param confirmOrder * @param confirmOrder
* @return * @return
*/ */
OmsConfirmOrderResult confirmOrderPc(OmsOrderPcBo confirmOrder); OmsConfirmOrderResult confirmOrderPc(OmsOrderSkuBo confirmOrder);
/** /**
* 创建订单 H5 * 创建订单 H5
@ -38,6 +38,13 @@ public interface OmsOrderService extends IService<OmsOrder> {
*/ */
OmsOrder createOrder(OmsOrderBo omsOrderBo); OmsOrder createOrder(OmsOrderBo omsOrderBo);
/**
* 修改草稿的订单
* @param param
* @return
*/
void modifyOrder(OmsOrderModifyParam param);
/** /**
@ -45,7 +52,7 @@ public interface OmsOrderService extends IService<OmsOrder> {
* @param omsOrderBo * @param omsOrderBo
* @return * @return
*/ */
OmsOrder createOrderPc(OmsOrderPcBo omsOrderBo); OmsOrder createOrderPc(OmsOrderSkuBo omsOrderBo);
/** /**
* 获取spu预估信息 * 获取spu预估信息

145
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -2,10 +2,10 @@ package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.util.*; import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.entity.GoodsSpu;
@ -14,11 +14,7 @@ import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.oms.entity.OmsOrderItem; import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.entity.OmsShoppingCart; import com.qs.serve.modules.oms.entity.OmsShoppingCart;
import com.qs.serve.modules.oms.entity.bo.CreateOrderParam; import com.qs.serve.modules.oms.entity.bo.*;
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo;
import com.qs.serve.modules.oms.entity.bo.OmsOrderBo.*;
import com.qs.serve.modules.oms.entity.bo.OmsOrderPcBo;
import com.qs.serve.modules.oms.entity.bo.OmsSpuAssesInfoBo;
import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam; import com.qs.serve.modules.oms.entity.dto.ErpOfferOrderParam;
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount;
import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey; import com.qs.serve.modules.oms.entity.dto.OmsSpuToSkuKey;
@ -61,6 +57,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
private OmsShoppingCartService omsShoppingCartService; private OmsShoppingCartService omsShoppingCartService;
private GoodsSkuService goodsSkuService; private GoodsSkuService goodsSkuService;
private GoodsSpuService goodsSpuService; private GoodsSpuService goodsSpuService;
private BmsSupplierMapper bmsSupplierMapper;
private BmsSupplierAddressService bmsSupplierAddressService; private BmsSupplierAddressService bmsSupplierAddressService;
private SysUserService sysUserService; private SysUserService sysUserService;
private SysDeptService sysDeptService; private SysDeptService sysDeptService;
@ -119,21 +116,19 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
} }
@Override @Override
public OmsConfirmOrderResult confirmOrderPc(OmsOrderPcBo confirmOrder) { public OmsConfirmOrderResult confirmOrderPc(OmsOrderSkuBo confirmOrder) {
BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); BmsSupplier supplier = AuthContextUtils.getCurrentSupplier();
//构建Sku //构建Sku
List<Long> spuIds = confirmOrder.getSpuParamList().stream() List<Long> spuIds = confirmOrder.getSpuParamList().stream()
.map(OmsOrderPcBo.SpuParam::getSpuId).collect(Collectors.toList()); .map(OmsOrderSkuBo.SpuParam::getSpuId).collect(Collectors.toList());
List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds); List<GoodsSpu> spuList = goodsSpuService.listByIds(spuIds);
//通过当前函数获取当前账套对于的skuID
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("",spuIds);
//构建临时购物车列表 //构建临时购物车列表
List<OmsShoppingCart> shoppingCartList = new ArrayList<>(); List<OmsShoppingCart> shoppingCartList = new ArrayList<>();
for (GoodsSpu goodsSpu : spuList) { for (GoodsSpu goodsSpu : spuList) {
int qty = 1; int qty = 1;
for (OmsOrderPcBo.SpuParam spuParam : confirmOrder.getSpuParamList()) { for (OmsOrderSkuBo.SpuParam spuParam : confirmOrder.getSpuParamList()) {
if(spuParam.getSpuId().equals(goodsSpu.getId())){ if(spuParam.getSpuId().equals(goodsSpu.getId())){
qty = spuParam.getQty(); qty = spuParam.getQty();
} }
@ -142,25 +137,10 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
shoppingCart.setSpuId(goodsSpu.getId()); shoppingCart.setSpuId(goodsSpu.getId());
shoppingCart.setSpuCode(goodsSpu.getSpuCode()); shoppingCart.setSpuCode(goodsSpu.getSpuCode());
shoppingCart.setQuantity(qty); shoppingCart.setQuantity(qty);
//设置订单的sku信息
GoodsSku goodsSku = null;
for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) {
if(goodsSpu.getId().equals(toSkuKey.getSpuId())){
goodsSku = goodsSkuService.getById(toSkuKey.getSkuId());
break;
}
}
if(goodsSku==null){
shoppingCart.setSkuId(0L); shoppingCart.setSkuId(0L);
shoppingCart.setSkuCode(""); shoppingCart.setSkuCode("");
shoppingCart.setSpecInfo(goodsSpu.getName()); shoppingCart.setSpecInfo(goodsSpu.getName());
shoppingCart.setAddPrice(BigDecimal.ZERO); shoppingCart.setAddPrice(BigDecimal.ZERO);
}else {
shoppingCart.setSkuId(goodsSku.getId());
shoppingCart.setSkuCode(goodsSku.getSkuCode());
shoppingCart.setSpecInfo(goodsSku.getSpecInfos());
shoppingCart.setAddPrice(goodsSku.getSalesPrice());
}
shoppingCartList.add(shoppingCart); shoppingCartList.add(shoppingCart);
} }
@ -183,9 +163,86 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
confirmOrderResult.setAmountInfo(calcAmount); confirmOrderResult.setAmountInfo(calcAmount);
confirmOrderResult.setShoppingCarts(shoppingCartList); confirmOrderResult.setShoppingCarts(shoppingCartList);
confirmOrderResult.setOrderType(confirmOrder.getOrderType()); confirmOrderResult.setOrderType(confirmOrder.getOrderType());
confirmOrderResult.setBrandRuleId(confirmOrder.getBrandRuleId());
return confirmOrderResult; return confirmOrderResult;
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void modifyOrder(OmsOrderModifyParam param) {
OmsOrder order = super.getById(param.getUserId());
if(order.getStatus().equals(0)){
Assert.throwEx("非草稿状态订单无法修改");
}
order.setId(param.getId());
order.setOrderType(param.getOrderType());
order.setSupplierAddrId(param.getSupplierAddrId());
order.setBrandRuleId(param.getBrandRuleId());
if(param.getSupplierId()!=null && !param.getSupplierId().equals(order.getSupplierId())){
BmsSupplier supplier = bmsSupplierMapper.selectById(param.getSupplierId());
order.setSupplierId(param.getSupplierId());
order.setSupplierName(supplier.getSupplierName());
order.setSupplierCode(supplier.getSupplierCode());
}
if(StringUtils.hasText(param.getUserId())){
SysUser sysUser = sysUserService.getById(param.getUserId());
order.setUserId(param.getUserId());
order.setUserPhone(sysUser.getMobile());
order.setUserCode(sysUser.getCode());
}
order.setBillType(param.getBillType());
order.setUrgentFlag(param.getUrgentFlag());
order.setRemark(param.getRemark());
//构建新的item
List<OmsOrderItem> newOrderItemList = new ArrayList<>();
List<OmsOrderModifyParam.OmsOrderItemModifyBo> orderModifyItems = param.getOrderItems();
for (OmsOrderModifyParam.OmsOrderItemModifyBo modifyItem : orderModifyItems) {
GoodsSku goodsSku = null;
GoodsSpu goodsSpu = null;
if(order.getLatitudeFrom().equals("sku")){
//H5下单
goodsSku = goodsSkuService.getById(modifyItem.getSkuId());
goodsSpu = goodsSpuService.getById(goodsSku.getSpuId());
}else {
//PC下单
goodsSpu = goodsSpuService.getById(modifyItem.getSpuId());
}
OmsOrderItem orderItem = new OmsOrderItem();
orderItem.setOrderId(order.getId());
orderItem.setOrderSn(order.getOrderSn());
orderItem.setSpuId(goodsSpu.getId());
orderItem.setSpuCode(goodsSpu.getSpuCode());
orderItem.setSpuTitle(goodsSpu.getName());
if(goodsSku==null){
orderItem.setSkuId(goodsSku.getId());
orderItem.setSkuCode(goodsSku.getSkuCode());
orderItem.setSpecValues(goodsSku.getSpecInfos());
orderItem.setSkuUnit(null);
orderItem.setSkuImg(null);
orderItem.setSalesPrice(goodsSku.getSalesPrice());
orderItem.setCusPrice(goodsSku.getSalesPrice());
orderItem.setMarketPrice(goodsSku.getMarketPrice());
}else {
orderItem.setSpecValues(goodsSpu.getName());
orderItem.setSalesPrice(BigDecimal.ZERO);
orderItem.setCusPrice(BigDecimal.ZERO);
orderItem.setMarketPrice(BigDecimal.ZERO);
}
orderItem.setQuantity(modifyItem.getQuantity());
newOrderItemList.add(orderItem);
}
this.updateById(order);
//移除已有的ITEM
LambdaQueryWrapper<OmsOrderItem> rmItemLqw = new LambdaQueryWrapper<>();
rmItemLqw.eq(OmsOrderItem::getOrderId,param.getId());
omsOrderItemService.remove(rmItemLqw);
//重新保存item
omsOrderItemService.saveBatch(newOrderItemList);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public OmsOrder createOrder(OmsOrderBo omsOrderBo) { public OmsOrder createOrder(OmsOrderBo omsOrderBo) {
@ -198,7 +255,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public OmsOrder createOrderPc(OmsOrderPcBo omsOrderBo) { public OmsOrder createOrderPc(OmsOrderSkuBo omsOrderBo) {
OmsConfirmOrderResult confirmOrder = this.confirmOrderPc(omsOrderBo); OmsConfirmOrderResult confirmOrder = this.confirmOrderPc(omsOrderBo);
confirmOrder.setLatitudeFrom("SPU"); confirmOrder.setLatitudeFrom("SPU");
CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam();
@ -215,12 +272,14 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
} }
List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts(); List<OmsShoppingCart> shoppingCarts = confirmOrder.getShoppingCarts();
OmsOrder order = new OmsOrder(); OmsOrder order = new OmsOrder();
order.setLatitudeFrom(confirmOrder.getLatitudeFrom().toLowerCase(Locale.ROOT));
order.setOrderSn("SN"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); order.setOrderSn("SN"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder));
order.setOrderType(confirmOrder.getOrderType()); order.setOrderType(confirmOrder.getOrderType());
order.setSupplierId(Long.parseLong(supplier.getId())); order.setSupplierId(Long.parseLong(supplier.getId()));
order.setSupplierCode(supplier.getCode()); order.setSupplierCode(supplier.getCode());
order.setSupplierName(supplier.getName()); order.setSupplierName(supplier.getName());
order.setSupplierAddrId(address.getId()); order.setSupplierAddrId(address.getId());
order.setBrandRuleId(confirmOrder.getBrandRuleId());
order.setUserId(user.getId()); order.setUserId(user.getId());
order.setUserName(user.getName()); order.setUserName(user.getName());
order.setUserCode(user.getCode()); order.setUserCode(user.getCode());
@ -324,6 +383,38 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
iteLqw.eq(OmsOrderItem::getOrderId,id); iteLqw.eq(OmsOrderItem::getOrderId,id);
List<OmsOrderItem> list = omsOrderItemService.list(iteLqw); List<OmsOrderItem> list = omsOrderItemService.list(iteLqw);
List<Long> spuIds = list.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
//TODO 通过当前函数获取当前账套对于的skuID
List<OmsSpuToSkuKey> spuToSkuKeys = this.getSpuToSkuInfo("",spuIds);
for (OmsOrderItem orderItem : list) {
if( orderItem.getSkuId()!=null && !orderItem.getSkuId().equals(0L) ){
continue;
}
//设置订单的sku信息
GoodsSku goodsSku = null;
for (OmsSpuToSkuKey toSkuKey : spuToSkuKeys) {
if(orderItem.getSpuId().equals(toSkuKey.getSpuId())){
goodsSku = goodsSkuService.getById(toSkuKey.getSkuId());
break;
}
}
if(goodsSku==null){
Assert.throwEx("未能匹配当前账号的产品信息:"+orderItem.getSpuCode());
}else {
orderItem.setSkuId(goodsSku.getId());
orderItem.setSkuCode(goodsSku.getSkuCode());
orderItem.setSpecValues(goodsSku.getSpecInfos());
orderItem.setSalesPrice(goodsSku.getSalesPrice());
orderItem.setSalesPrice(goodsSku.getSalesPrice());
orderItem.setMarketPrice(goodsSku.getSalesPrice());
}
}
//更新设置sku后的信息
omsOrderItemService.updateBatchById(list);
List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>(); List<ErpOfferOrderParam.InventoryItem> inventoryItemList = new ArrayList<>();
for (OmsOrderItem orderItem : list) { for (OmsOrderItem orderItem : list) {
ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem();

2
src/main/java/com/qs/serve/modules/tag/controller/TagCategoryController.java

@ -56,6 +56,8 @@ public class TagCategoryController {
treeVo.setParentId(cate.getPid()); treeVo.setParentId(cate.getPid());
treeVo.setSort(0); treeVo.setSort(0);
treeVo.setCategoryName(cate.getCategoryName()); treeVo.setCategoryName(cate.getCategoryName());
treeVo.setColorVal(cate.getColorVal());
treeVo.setBgColorVal(cate.getBgColorVal());
treeVo.setRemark(cate.getRemark()); treeVo.setRemark(cate.getRemark());
return treeVo; return treeVo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());

27
src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java

@ -24,7 +24,9 @@ import com.qs.serve.modules.tag.entity.TagData;
import com.qs.serve.modules.tag.entity.TagInfo; import com.qs.serve.modules.tag.entity.TagInfo;
import com.qs.serve.modules.tag.entity.bo.TagInfoBindBo; import com.qs.serve.modules.tag.entity.bo.TagInfoBindBo;
import com.qs.serve.modules.tag.entity.bo.TagInfoBo; import com.qs.serve.modules.tag.entity.bo.TagInfoBo;
import com.qs.serve.modules.tag.entity.so.TagDataSo;
import com.qs.serve.modules.tag.entity.so.TagInfoSo; import com.qs.serve.modules.tag.entity.so.TagInfoSo;
import com.qs.serve.modules.tag.entity.vo.TagDataVo;
import com.qs.serve.modules.tag.service.TagDataService; import com.qs.serve.modules.tag.service.TagDataService;
import com.qs.serve.modules.tag.service.TagInfoService; import com.qs.serve.modules.tag.service.TagInfoService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -35,6 +37,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -55,6 +58,30 @@ public class TagDataController {
private BmsChannelService bmsChannelService; private BmsChannelService bmsChannelService;
private SysUserService sysUserService; private SysUserService sysUserService;
/**
* 批量获取标签
* @param param
* @return
*/
@PostMapping("batchQuery")
public R<?> queryBatch(@RequestBody TagDataSo.TagBatchSo param){
List<TagDataVo> tagDataVoList = new ArrayList<>();
for (TagDataSo dataSo : param.getParams()) {
if(dataSo.getIds().size()==0){
continue;
}
TagData query = new TagData();
query.setTargetType(dataSo.getType());
query.setQueryTagIds(dataSo.getIds());
List<TagData> tagDataList = tagDataService.selectList(query);
TagDataVo vo = new TagDataVo();
vo.setFieldName(dataSo.getFieldName());
vo.setType(dataSo.getType());
vo.setInfoList(tagDataList);
tagDataVoList.add(vo);
}
return R.ok(tagDataVoList);
}
/** /**
* 新增 * 新增

2
src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java

@ -94,6 +94,8 @@ public class TagInfoController {
TagCategory tagCategory = tagCategoryService.getById(param.getTagCategoryId()); TagCategory tagCategory = tagCategoryService.getById(param.getTagCategoryId());
entity.setTagCategoryId(param.getTagCategoryId()); entity.setTagCategoryId(param.getTagCategoryId());
entity.setTagCategoryName(tagCategory.getCategoryName()); entity.setTagCategoryName(tagCategory.getCategoryName());
entity.setColorVal(param.getColorVal());
entity.setBgColorVal(param.getBgColorVal());
entity.setRemark(param.getRemark()); entity.setRemark(param.getRemark());
boolean result = tagInfoService.updateById(entity); boolean result = tagInfoService.updateById(entity);
return R.isTrue(result); return R.isTrue(result);

6
src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java

@ -43,6 +43,12 @@ public class TagCategory implements Serializable {
@Length(max = 255,message = "长度不能超过255字") @Length(max = 255,message = "长度不能超过255字")
private String pathIds; private String pathIds;
/** 颜色 */
private String colorVal;
/** 背景颜色 */
private String bgColorVal;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;

13
src/main/java/com/qs/serve/modules/tag/entity/TagData.java

@ -15,7 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import java.util.List;
/** /**
* 标签数据 实体类 * 标签数据 实体类
* @author YenHex * @author YenHex
@ -58,6 +58,7 @@ public class TagData implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 创建时间 */ /** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ -88,6 +89,16 @@ public class TagData implements Serializable {
@JsonProperty @JsonProperty
private Boolean delFlag; private Boolean delFlag;
/** 颜色 */
@TableField(exist = false)
private String colorVal;
/** 背景颜色 */
@TableField(exist = false)
private String bgColorVal;
@TableField(exist = false)
private List<String> queryTagIds;
public static TagData toNewObject(TagData source){ public static TagData toNewObject(TagData source){
TagData data = new TagData(); TagData data = new TagData();

6
src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java

@ -43,6 +43,12 @@ public class TagInfo implements Serializable {
/** 标签类目id */ /** 标签类目id */
private String tagCategoryId; private String tagCategoryId;
/** 颜色 */
private String colorVal;
/** 背景颜色 */
private String bgColorVal;
/** 标签类目名称 */ /** 标签类目名称 */
@Length(max = 255,message = "标签类目名称长度不能超过255字") @Length(max = 255,message = "标签类目名称长度不能超过255字")
@TableField(condition = SqlCondition.LIKE) @TableField(condition = SqlCondition.LIKE)

5
src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java

@ -39,6 +39,11 @@ public class TagInfoBo implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;
/** 颜色 */
private String colorVal;
/** 背景颜色 */
private String bgColorVal;
} }

34
src/main/java/com/qs/serve/modules/tag/entity/so/TagDataSo.java

@ -0,0 +1,34 @@
package com.qs.serve.modules.tag.entity.so;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/8
*/
@Data
public class TagDataSo {
/**
* 仅用于查询数据标签查询不需要传入
*/
private String fieldName;
/**
* customer
* point
* channel
* salesman
*/
private String type;
private List<String> ids;
@Data
public static class TagBatchSo{
List<TagDataSo> params;
}
}

6
src/main/java/com/qs/serve/modules/tag/entity/vo/TagCategoryTreeVo.java

@ -10,6 +10,12 @@ import lombok.Data;
@Data @Data
public class TagCategoryTreeVo extends TreeNode { public class TagCategoryTreeVo extends TreeNode {
/** 颜色 */
private String colorVal;
/** 背景颜色 */
private String bgColorVal;
private String categoryName; private String categoryName;
private String remark; private String remark;

19
src/main/java/com/qs/serve/modules/tag/entity/vo/TagDataVo.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.tag.entity.vo;
import lombok.Data;
import java.util.List;
/**
* @author YenHex
* @since 2023/10/8
*/
@Data
public class TagDataVo {
private String fieldName;
private String type;
private List<?> infoList;
}

5
src/main/java/com/qs/serve/modules/tag/mapper/TagDataMapper.java

@ -2,6 +2,9 @@ package com.qs.serve.modules.tag.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tag.entity.TagData; import com.qs.serve.modules.tag.entity.TagData;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 标签数据 Mapper * 标签数据 Mapper
@ -10,5 +13,7 @@ import com.qs.serve.modules.tag.entity.TagData;
*/ */
public interface TagDataMapper extends BaseMapper<TagData> { public interface TagDataMapper extends BaseMapper<TagData> {
List<TagData> selectList(@Param("query") TagData param);
} }

4
src/main/java/com/qs/serve/modules/tag/service/TagDataService.java

@ -2,7 +2,7 @@ package com.qs.serve.modules.tag.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.tag.entity.TagData; import com.qs.serve.modules.tag.entity.TagData;
import java.util.List;
/** /**
* 标签数据 服务接口 * 标签数据 服务接口
* @author YenHex * @author YenHex
@ -10,5 +10,7 @@ import com.qs.serve.modules.tag.entity.TagData;
*/ */
public interface TagDataService extends IService<TagData> { public interface TagDataService extends IService<TagData> {
List<TagData> selectList(TagData param);
} }

7
src/main/java/com/qs/serve/modules/tag/service/impl/TagDataServiceImpl.java

@ -8,6 +8,8 @@ import com.qs.serve.modules.tag.entity.TagData;
import com.qs.serve.modules.tag.service.TagDataService; import com.qs.serve.modules.tag.service.TagDataService;
import com.qs.serve.modules.tag.mapper.TagDataMapper; import com.qs.serve.modules.tag.mapper.TagDataMapper;
import java.util.List;
/** /**
* 标签数据 服务实现类 * 标签数据 服务实现类
* @author YenHex * @author YenHex
@ -18,5 +20,10 @@ import com.qs.serve.modules.tag.mapper.TagDataMapper;
@AllArgsConstructor @AllArgsConstructor
public class TagDataServiceImpl extends ServiceImpl<TagDataMapper,TagData> implements TagDataService { public class TagDataServiceImpl extends ServiceImpl<TagDataMapper,TagData> implements TagDataService {
@Override
public List<TagData> selectList(TagData param) {
return baseMapper.selectList(param);
}
} }

71
src/main/resources/mapper/tag/TagDataMapper.xml

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.tag.mapper.TagDataMapper">
<resultMap id="tagDataMap" type="com.qs.serve.modules.tag.entity.TagData" >
<result property="id" column="id"/>
<result property="tagName" column="tag_name"/>
<result property="tagId" column="tag_id"/>
<result property="targetType" column="target_type"/>
<result property="targetId" column="target_id"/>
<result property="targetCode" column="target_code"/>
<result property="targetName" column="target_name"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="tenantId" column="tenant_id"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<sql id="tagDataSql">
tag_data.`id`,
tag_data.`tag_name`,
tag_data.`tag_id`,
tag_data.`target_type`,
tag_data.`target_id`,
tag_data.`target_code`,
tag_data.`target_name`,
tag_data.`remark`,
tag_data.`create_time`,
tag_data.`update_time`,
tag_data.`create_by`,
tag_data.`update_by`,
tag_data.`tenant_id`,
tag_data.`del_flag` </sql>
<select id="selectList" parameterType="com.qs.serve.modules.tag.entity.TagData" resultMap="tagDataMap">
SELECT
tag_info.color_val,
tag_info.bg_color_val,
<include refid="tagDataSql"/>
FROM `tag_data` `tag_data`
left join tag_info on tag_data.tag_id = tag_info.id
<where>
<if test="query.id != null"> and `tag_data`.`id` = #{query.id}</if>
<if test="query.tagName != null and query.tagName != ''"> and `tag_data`.`tag_name` = #{query.tagName}</if>
<if test="query.tagId != null"> and `tag_data`.`tag_id` = #{query.tagId}</if>
<if test="query.targetType != null and query.targetType != ''"> and `tag_data`.`target_type` = #{query.targetType}</if>
<if test="query.targetId != null and query.targetId != ''"> and `tag_data`.`target_id` = #{query.targetId}</if>
<if test="query.targetCode != null and query.targetCode != ''"> and `tag_data`.`target_code` = #{query.targetCode}</if>
<if test="query.targetName != null and query.targetName != ''"> and `tag_data`.`target_name` = #{query.targetName}</if>
<if test="query.remark != null and query.remark != ''"> and `tag_data`.`remark` = #{query.remark}</if>
<if test="query.createTime != null"> and `tag_data`.`create_time` = #{query.createTime}</if>
<if test="query.updateTime != null"> and `tag_data`.`update_time` = #{query.updateTime}</if>
<if test="query.createBy != null and query.createBy != ''"> and `tag_data`.`create_by` = #{query.createBy}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `tag_data`.`update_by` = #{query.updateBy}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `tag_data`.`tenant_id` = #{query.tenantId}</if>
<if test="query.delFlag != null"> and `tag_data`.`del_flag` = #{query.delFlag}</if>
<if test="query.queryTagIds!=null and query.queryTagIds.size > 0">
and `tag_data`.`target_id` in
<foreach collection="query.queryTagIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save