diff --git a/src/main/java/com/qs/serve/common/framework/annotations/TagField.java b/src/main/java/com/qs/serve/common/framework/annotations/TagField.java new file mode 100644 index 00000000..53d4fecd --- /dev/null +++ b/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 { +} diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java index e02f445b..5d62d860 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java +++ b/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.BmsSupplierAddress; 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.OmsOrderItem; 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.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.service.OmsOrderItemService; import com.qs.serve.modules.oms.service.OmsOrderService; @@ -43,6 +45,7 @@ public class OmsOrderApi { private OmsOrderItemService omsOrderItemService; private BmsSupplierAddressService bmsSupplierAddressService; private SysUserService sysUserService; + private GoodsCategoryRuleService goodsCategoryRuleService; /** * 确认订单 @@ -64,13 +67,24 @@ public class OmsOrderApi { return R.ok(omsOrderService.createOrder(omsOrderBo)); } + /** + * 修改草稿的订单 + * @param param + * @return + */ + @PostMapping("/modifyOrder") + public R modifyOrder(@RequestBody @Valid OmsOrderModifyParam param){ + omsOrderService.modifyOrder(param); + return R.ok(); + } + /** * 创建订单(PC) * @param omsOrderBo * @return */ @PostMapping("/createOrderOnPC") - public R createOrder(@RequestBody @Valid OmsOrderPcBo omsOrderBo){ + public R createOrder(@RequestBody @Valid OmsOrderSkuBo omsOrderBo){ return R.ok(omsOrderService.createOrderPc(omsOrderBo)); } @@ -138,6 +152,7 @@ public class OmsOrderApi { public R getById(@PathVariable("id") String id){ BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); OmsOrder omsOrder = omsOrderService.getById(id); + omsOrder.setBrandRuleInfo(goodsCategoryRuleService.getById(omsOrder.getBrandRuleId())); if(omsOrder.getSupplierId().toString().equals(supplier.getId())){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(OmsOrderItem::getOrderId,id); @@ -145,6 +160,7 @@ public class OmsOrderApi { omsOrder.setOrderItems(list); return R.ok(omsOrder); } + return R.error(); } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java index df9d881a..c79bfbfd 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java @@ -30,6 +30,8 @@ public class OmsOrder implements Serializable { @TableId(type = IdType.AUTO) private Long id; + private String latitudeFrom; + /** 订单号 */ @NotBlank(message = "订单号不能为空") @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") private LocalDateTime checkTime; - /** 成本中心id */ - private Long costCenterId; - - /** 成本中心编码 */ - @Length(max = 20,message = "成本中心编码长度不能超过20字") - private String costCenterCode; - - /** 成本中心名称 */ - @Length(max = 20,message = "成本中心名称长度不能超过20字") - private String costCenterName; - /** 品牌ID */ @NotNull(message = "品牌ID不能为空") - private Long brandId; + private Long brandRuleId; /** 制单人id */ @Length(max = 32,message = "制单人id长度不能超过32字") @@ -157,6 +148,8 @@ public class OmsOrder implements Serializable { @TableField(exist = false) private Object checkUserInfo; - + /** 订单明细项 */ + @TableField(exist = false) + private Object brandRuleInfo; } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java index 8fa32cc6..ee55618b 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java @@ -21,6 +21,9 @@ public class OmsOrderBo { /** 数量(立即购买或非普通订单) */ private Integer quantity; + /** 品牌规则ID */ + private Long brandRuleId; + /** 购物车ID(购物车方式下单) */ private List shoppingCartIds; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderModifyParam.java new file mode 100644 index 00000000..7eb2b311 --- /dev/null +++ b/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 orderItems; + + + @Data + public static class OmsOrderItemModifyBo{ + + /** SpuId(PC) */ + private Long spuId; + + /** SkuId(H5) */ + private Long skuId; + + /** 数量 */ + private Integer quantity; + + } + +} diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderPcBo.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java similarity index 89% rename from src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderPcBo.java rename to src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java index 84f1e1bd..593dacc7 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderPcBo.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderSkuBo.java @@ -10,7 +10,7 @@ import java.util.List; * @since 2022/10/14 */ @Data -public class OmsOrderPcBo { +public class OmsOrderSkuBo { /** 订单类型:0->普通订单; */ @NotNull @@ -22,6 +22,9 @@ public class OmsOrderPcBo { /** todo 促销活动id列表 */ private List promotionIds; + /** 品牌规则ID */ + private Long brandRuleId; + /** 创建订单参数(确认订单时可不传) */ private CreateOrderParam createOrderParam; diff --git a/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java b/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java index 62bd4f19..356f264a 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderResult.java +++ b/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 lombok.Data; +import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.util.List; @@ -23,6 +24,9 @@ public class OmsConfirmOrderResult { private Integer orderType; + /** 品牌规则ID */ + private Long brandRuleId; + /** 购物车列表 */ private List shoppingCarts; diff --git a/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java b/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java index 3b641e91..0fb58e44 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java +++ b/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.qs.serve.modules.oms.entity.OmsOrder; 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.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.entity.vo.OmsSpuAssesInfo; -import org.springframework.web.bind.annotation.PathVariable; import java.util.List; /** @@ -29,7 +29,7 @@ public interface OmsOrderService extends IService { * @param confirmOrder * @return */ - OmsConfirmOrderResult confirmOrderPc(OmsOrderPcBo confirmOrder); + OmsConfirmOrderResult confirmOrderPc(OmsOrderSkuBo confirmOrder); /** * 创建订单 H5 @@ -38,6 +38,13 @@ public interface OmsOrderService extends IService { */ OmsOrder createOrder(OmsOrderBo omsOrderBo); + /** + * 修改草稿的订单 + * @param param + * @return + */ + void modifyOrder(OmsOrderModifyParam param); + /** @@ -45,7 +52,7 @@ public interface OmsOrderService extends IService { * @param omsOrderBo * @return */ - OmsOrder createOrderPc(OmsOrderPcBo omsOrderBo); + OmsOrder createOrderPc(OmsOrderSkuBo omsOrderBo); /** * 获取spu预估信息 diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java index d02c9a60..7f28eb69 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java +++ b/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.extension.service.impl.ServiceImpl; -import com.qs.serve.common.model.dto.R; import com.qs.serve.common.util.*; import com.qs.serve.modules.bms.entity.BmsSupplier; 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.goods.entity.GoodsSku; 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.oms.entity.OmsOrderItem; 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.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.bo.*; 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.OmsSpuToSkuKey; @@ -61,6 +57,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im private OmsShoppingCartService omsShoppingCartService; private GoodsSkuService goodsSkuService; private GoodsSpuService goodsSpuService; + private BmsSupplierMapper bmsSupplierMapper; private BmsSupplierAddressService bmsSupplierAddressService; private SysUserService sysUserService; private SysDeptService sysDeptService; @@ -119,21 +116,19 @@ public class OmsOrderServiceImpl extends ServiceImpl im } @Override - public OmsConfirmOrderResult confirmOrderPc(OmsOrderPcBo confirmOrder) { + public OmsConfirmOrderResult confirmOrderPc(OmsOrderSkuBo confirmOrder) { BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); //构建Sku List spuIds = confirmOrder.getSpuParamList().stream() - .map(OmsOrderPcBo.SpuParam::getSpuId).collect(Collectors.toList()); + .map(OmsOrderSkuBo.SpuParam::getSpuId).collect(Collectors.toList()); List spuList = goodsSpuService.listByIds(spuIds); - //通过当前函数获取当前账套对于的skuID - List spuToSkuKeys = this.getSpuToSkuInfo("",spuIds); //构建临时购物车列表 List shoppingCartList = new ArrayList<>(); for (GoodsSpu goodsSpu : spuList) { int qty = 1; - for (OmsOrderPcBo.SpuParam spuParam : confirmOrder.getSpuParamList()) { + for (OmsOrderSkuBo.SpuParam spuParam : confirmOrder.getSpuParamList()) { if(spuParam.getSpuId().equals(goodsSpu.getId())){ qty = spuParam.getQty(); } @@ -142,25 +137,10 @@ public class OmsOrderServiceImpl extends ServiceImpl im shoppingCart.setSpuId(goodsSpu.getId()); shoppingCart.setSpuCode(goodsSpu.getSpuCode()); 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.setSkuCode(""); - shoppingCart.setSpecInfo(goodsSpu.getName()); - shoppingCart.setAddPrice(BigDecimal.ZERO); - }else { - shoppingCart.setSkuId(goodsSku.getId()); - shoppingCart.setSkuCode(goodsSku.getSkuCode()); - shoppingCart.setSpecInfo(goodsSku.getSpecInfos()); - shoppingCart.setAddPrice(goodsSku.getSalesPrice()); - } + shoppingCart.setSkuId(0L); + shoppingCart.setSkuCode(""); + shoppingCart.setSpecInfo(goodsSpu.getName()); + shoppingCart.setAddPrice(BigDecimal.ZERO); shoppingCartList.add(shoppingCart); } @@ -183,9 +163,86 @@ public class OmsOrderServiceImpl extends ServiceImpl im confirmOrderResult.setAmountInfo(calcAmount); confirmOrderResult.setShoppingCarts(shoppingCartList); confirmOrderResult.setOrderType(confirmOrder.getOrderType()); + confirmOrderResult.setBrandRuleId(confirmOrder.getBrandRuleId()); 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 newOrderItemList = new ArrayList<>(); + List 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 rmItemLqw = new LambdaQueryWrapper<>(); + rmItemLqw.eq(OmsOrderItem::getOrderId,param.getId()); + omsOrderItemService.remove(rmItemLqw); + //重新保存item + omsOrderItemService.saveBatch(newOrderItemList); + } + @Override @Transactional(rollbackFor = Exception.class) public OmsOrder createOrder(OmsOrderBo omsOrderBo) { @@ -198,7 +255,7 @@ public class OmsOrderServiceImpl extends ServiceImpl im @Override @Transactional(rollbackFor = Exception.class) - public OmsOrder createOrderPc(OmsOrderPcBo omsOrderBo) { + public OmsOrder createOrderPc(OmsOrderSkuBo omsOrderBo) { OmsConfirmOrderResult confirmOrder = this.confirmOrderPc(omsOrderBo); confirmOrder.setLatitudeFrom("SPU"); CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); @@ -215,12 +272,14 @@ public class OmsOrderServiceImpl extends ServiceImpl im } List shoppingCarts = confirmOrder.getShoppingCarts(); OmsOrder order = new OmsOrder(); + order.setLatitudeFrom(confirmOrder.getLatitudeFrom().toLowerCase(Locale.ROOT)); order.setOrderSn("SN"+CodeGenUtil.generate(CodeGenUtil.SourceKey.OmsOrder)); order.setOrderType(confirmOrder.getOrderType()); order.setSupplierId(Long.parseLong(supplier.getId())); order.setSupplierCode(supplier.getCode()); order.setSupplierName(supplier.getName()); order.setSupplierAddrId(address.getId()); + order.setBrandRuleId(confirmOrder.getBrandRuleId()); order.setUserId(user.getId()); order.setUserName(user.getName()); order.setUserCode(user.getCode()); @@ -324,6 +383,38 @@ public class OmsOrderServiceImpl extends ServiceImpl im iteLqw.eq(OmsOrderItem::getOrderId,id); List list = omsOrderItemService.list(iteLqw); + + List spuIds = list.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); + + //TODO 通过当前函数获取当前账套对于的skuID + List 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 inventoryItemList = new ArrayList<>(); for (OmsOrderItem orderItem : list) { ErpOfferOrderParam.InventoryItem inventoryItem = new ErpOfferOrderParam.InventoryItem(); diff --git a/src/main/java/com/qs/serve/modules/tag/controller/TagCategoryController.java b/src/main/java/com/qs/serve/modules/tag/controller/TagCategoryController.java index 188922a4..0c996947 100644 --- a/src/main/java/com/qs/serve/modules/tag/controller/TagCategoryController.java +++ b/src/main/java/com/qs/serve/modules/tag/controller/TagCategoryController.java @@ -56,6 +56,8 @@ public class TagCategoryController { treeVo.setParentId(cate.getPid()); treeVo.setSort(0); treeVo.setCategoryName(cate.getCategoryName()); + treeVo.setColorVal(cate.getColorVal()); + treeVo.setBgColorVal(cate.getBgColorVal()); treeVo.setRemark(cate.getRemark()); return treeVo; }).collect(Collectors.toList()); diff --git a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java b/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java index 0cea5b65..e53b41a5 100644 --- a/src/main/java/com/qs/serve/modules/tag/controller/TagDataController.java +++ b/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.bo.TagInfoBindBo; 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.vo.TagDataVo; import com.qs.serve.modules.tag.service.TagDataService; import com.qs.serve.modules.tag.service.TagInfoService; import lombok.AllArgsConstructor; @@ -35,6 +37,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -55,6 +58,30 @@ public class TagDataController { private BmsChannelService bmsChannelService; private SysUserService sysUserService; + /** + * 批量获取标签 + * @param param + * @return + */ + @PostMapping("batchQuery") + public R queryBatch(@RequestBody TagDataSo.TagBatchSo param){ + List 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 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); + } /** * 新增 diff --git a/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java b/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java index fc17e1a3..f3dc3608 100644 --- a/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java +++ b/src/main/java/com/qs/serve/modules/tag/controller/TagInfoController.java @@ -94,6 +94,8 @@ public class TagInfoController { TagCategory tagCategory = tagCategoryService.getById(param.getTagCategoryId()); entity.setTagCategoryId(param.getTagCategoryId()); entity.setTagCategoryName(tagCategory.getCategoryName()); + entity.setColorVal(param.getColorVal()); + entity.setBgColorVal(param.getBgColorVal()); entity.setRemark(param.getRemark()); boolean result = tagInfoService.updateById(entity); return R.isTrue(result); diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java b/src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java index 9b75cb01..70a36f5e 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagCategory.java +++ b/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字") private String pathIds; + /** 颜色 */ + private String colorVal; + + /** 背景颜色 */ + private String bgColorVal; + /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagData.java b/src/main/java/com/qs/serve/modules/tag/entity/TagData.java index 77f0e751..e507c7c1 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagData.java +++ b/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.NotBlank; - +import java.util.List; /** * 标签数据 实体类 * @author YenHex @@ -58,6 +58,7 @@ public class TagData implements Serializable { @Length(max = 255,message = "备注长度不能超过255字") private String remark; + /** 创建时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @@ -88,6 +89,16 @@ public class TagData implements Serializable { @JsonProperty private Boolean delFlag; + /** 颜色 */ + @TableField(exist = false) + private String colorVal; + + /** 背景颜色 */ + @TableField(exist = false) + private String bgColorVal; + + @TableField(exist = false) + private List queryTagIds; public static TagData toNewObject(TagData source){ TagData data = new TagData(); diff --git a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java b/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java index 1f6974f5..94fd8c8f 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java +++ b/src/main/java/com/qs/serve/modules/tag/entity/TagInfo.java @@ -43,6 +43,12 @@ public class TagInfo implements Serializable { /** 标签类目id */ private String tagCategoryId; + /** 颜色 */ + private String colorVal; + + /** 背景颜色 */ + private String bgColorVal; + /** 标签类目名称 */ @Length(max = 255,message = "标签类目名称长度不能超过255字") @TableField(condition = SqlCondition.LIKE) diff --git a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java b/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java index fba5acad..13b3024d 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/bo/TagInfoBo.java +++ b/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字") private String remark; + /** 颜色 */ + private String colorVal; + + /** 背景颜色 */ + private String bgColorVal; } diff --git a/src/main/java/com/qs/serve/modules/tag/entity/so/TagDataSo.java b/src/main/java/com/qs/serve/modules/tag/entity/so/TagDataSo.java new file mode 100644 index 00000000..2771cfb4 --- /dev/null +++ b/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 ids; + + @Data + public static class TagBatchSo{ + + List params; + } + +} diff --git a/src/main/java/com/qs/serve/modules/tag/entity/vo/TagCategoryTreeVo.java b/src/main/java/com/qs/serve/modules/tag/entity/vo/TagCategoryTreeVo.java index 4fa77b6e..bceebbd2 100644 --- a/src/main/java/com/qs/serve/modules/tag/entity/vo/TagCategoryTreeVo.java +++ b/src/main/java/com/qs/serve/modules/tag/entity/vo/TagCategoryTreeVo.java @@ -10,6 +10,12 @@ import lombok.Data; @Data public class TagCategoryTreeVo extends TreeNode { + /** 颜色 */ + private String colorVal; + + /** 背景颜色 */ + private String bgColorVal; + private String categoryName; private String remark; diff --git a/src/main/java/com/qs/serve/modules/tag/entity/vo/TagDataVo.java b/src/main/java/com/qs/serve/modules/tag/entity/vo/TagDataVo.java new file mode 100644 index 00000000..468558f2 --- /dev/null +++ b/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; + +} diff --git a/src/main/java/com/qs/serve/modules/tag/mapper/TagDataMapper.java b/src/main/java/com/qs/serve/modules/tag/mapper/TagDataMapper.java index 95617361..e9df518d 100644 --- a/src/main/java/com/qs/serve/modules/tag/mapper/TagDataMapper.java +++ b/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.qs.serve.modules.tag.entity.TagData; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 标签数据 Mapper @@ -10,5 +13,7 @@ import com.qs.serve.modules.tag.entity.TagData; */ public interface TagDataMapper extends BaseMapper { + List selectList(@Param("query") TagData param); + } diff --git a/src/main/java/com/qs/serve/modules/tag/service/TagDataService.java b/src/main/java/com/qs/serve/modules/tag/service/TagDataService.java index 0ef30fae..7b2acf0f 100644 --- a/src/main/java/com/qs/serve/modules/tag/service/TagDataService.java +++ b/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.qs.serve.modules.tag.entity.TagData; - +import java.util.List; /** * 标签数据 服务接口 * @author YenHex @@ -10,5 +10,7 @@ import com.qs.serve.modules.tag.entity.TagData; */ public interface TagDataService extends IService { + List selectList(TagData param); + } diff --git a/src/main/java/com/qs/serve/modules/tag/service/impl/TagDataServiceImpl.java b/src/main/java/com/qs/serve/modules/tag/service/impl/TagDataServiceImpl.java index 2c93612b..2bff2b2c 100644 --- a/src/main/java/com/qs/serve/modules/tag/service/impl/TagDataServiceImpl.java +++ b/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.mapper.TagDataMapper; +import java.util.List; + /** * 标签数据 服务实现类 * @author YenHex @@ -18,5 +20,10 @@ import com.qs.serve.modules.tag.mapper.TagDataMapper; @AllArgsConstructor public class TagDataServiceImpl extends ServiceImpl implements TagDataService { + @Override + public List selectList(TagData param) { + return baseMapper.selectList(param); + } + } diff --git a/src/main/resources/mapper/tag/TagDataMapper.xml b/src/main/resources/mapper/tag/TagDataMapper.xml new file mode 100644 index 00000000..28b527b7 --- /dev/null +++ b/src/main/resources/mapper/tag/TagDataMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + 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` + + + +