Browse Source

添加购物车,添加订单,添加下单规则

mssql
Yen 3 years ago
parent
commit
3c084657fa
  1. 3
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java
  2. 101
      src/main/java/com/qs/serve/modules/bms/controller/BmsSkuRegionController.java
  3. 105
      src/main/java/com/qs/serve/modules/bms/controller/BmsSkuSupplierController.java
  4. 4
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java
  5. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierBandController.java
  6. 5
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java
  7. 2
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierUserController.java
  8. 12
      src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java
  9. 51
      src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java
  10. 4
      src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierApi.java
  11. 32
      src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierBandApi.java
  12. 78
      src/main/java/com/qs/serve/modules/bms/entity/BmsSkuRegion.java
  13. 79
      src/main/java/com/qs/serve/modules/bms/entity/BmsSkuSupplier.java
  14. 8
      src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java
  15. 2
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionBatchBo.java
  16. 26
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSkuSupplierBo.java
  17. 26
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSkuSupplierBo2.java
  18. 2
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java
  19. 4
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java
  20. 26
      src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSkuSupplierVo.java
  21. 2
      src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierTreeVo.java
  22. 14
      src/main/java/com/qs/serve/modules/bms/mapper/BmsSkuRegionMapper.java
  23. 22
      src/main/java/com/qs/serve/modules/bms/mapper/BmsSkuSupplierMapper.java
  24. 14
      src/main/java/com/qs/serve/modules/bms/service/BmsSkuRegionService.java
  25. 19
      src/main/java/com/qs/serve/modules/bms/service/BmsSkuSupplierService.java
  26. 7
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java
  27. 8
      src/main/java/com/qs/serve/modules/bms/service/BmsSupplierUserService.java
  28. 22
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSkuRegionServiceImpl.java
  29. 14
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSkuSupplierService.java
  30. 29
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSkuSupplierServiceImpl.java
  31. 17
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java
  32. 27
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierUserServiceImpl.java
  33. 3
      src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java
  34. 24
      src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java
  35. 9
      src/main/java/com/qs/serve/modules/goods/service/GoodsSkuSpecValueService.java
  36. 5
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuSpecValueServiceImpl.java
  37. 1
      src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java
  38. 103
      src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java
  39. 103
      src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java
  40. 101
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java
  41. 130
      src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java
  42. 144
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java
  43. 117
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java
  44. 105
      src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java
  45. 46
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsConfirmOrderBo.java
  46. 42
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsShoppingCartSaveBo.java
  47. 27
      src/main/java/com/qs/serve/modules/oms/entity/bo/OmsShoppingCartUpdateBo.java
  48. 46
      src/main/java/com/qs/serve/modules/oms/entity/dto/OmsCalcAmount.java
  49. 28
      src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderVo.java
  50. 14
      src/main/java/com/qs/serve/modules/oms/mapper/OmsOrderItemMapper.java
  51. 14
      src/main/java/com/qs/serve/modules/oms/mapper/OmsOrderMapper.java
  52. 14
      src/main/java/com/qs/serve/modules/oms/mapper/OmsShoppingCartMapper.java
  53. 14
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderItemService.java
  54. 23
      src/main/java/com/qs/serve/modules/oms/service/OmsOrderService.java
  55. 18
      src/main/java/com/qs/serve/modules/oms/service/OmsShoppingCartService.java
  56. 22
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderItemServiceImpl.java
  57. 39
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  58. 33
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java
  59. 2
      src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java
  60. 6
      src/main/java/com/qs/serve/modules/wx/service/WxUserService.java
  61. 32
      src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java
  62. 62
      src/main/resources/mapper/bms/BmsSkuSupplierMapper.xml

3
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java

@ -7,9 +7,8 @@ import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*;
import com.qs.serve.modules.bms.entity.vo.BmsRegionBatchBo;
import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo;
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo;
import com.qs.serve.modules.sys.entity.dto.SysDeptTreeNode;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;

101
src/main/java/com/qs/serve/modules/bms/controller/BmsSkuRegionController.java

@ -0,0 +1,101 @@
package com.qs.serve.modules.bms.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bms.entity.BmsSkuRegion;
import com.qs.serve.modules.bms.service.BmsSkuRegionService;
import javax.validation.Valid;
import java.util.List;
/**
* 基础档案 sku销售区域
* @author YenHex
* @since 2022-10-17
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bms/skuRegion")
public class BmsSkuRegionController {
private BmsSkuRegionService bmsSkuRegionService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('bms:skuRegion:query')")
public R<PageVo<BmsSkuRegion>> getPage(BmsSkuRegion param){
PageUtil.startPage();
LambdaQueryWrapper<BmsSkuRegion> skuRegionWrapper = new LambdaQueryWrapper<>(param);
List<BmsSkuRegion> list = bmsSkuRegionService.list(skuRegionWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "sku销售区域", biz = BizType.QUERY)
@PreAuthorize("hasRole('bms:skuRegion:query')")
public R<BmsSkuRegion> getById(@PathVariable("id") String id){
BmsSkuRegion bmsSkuRegion = bmsSkuRegionService.getById(id);
return R.ok(bmsSkuRegion);
}
/**
* 根据ID更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BASE, title = "sku销售区域", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:skuRegion:update')")
public R<?> updateById(@RequestBody @Valid BmsSkuRegion param){
boolean result = bmsSkuRegionService.updateById(param);
return R.isTrue(result);
}
/**
* 新增sku销售区域
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "sku销售区域", biz = BizType.INSERT)
@PreAuthorize("hasRole('bms:skuRegion:insert')")
public R<?> save(@RequestBody @Valid BmsSkuRegion param){
boolean result = bmsSkuRegionService.save(param);
return R.isTrue(result);
}
/**
* 删除sku销售区域
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "sku销售区域", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:skuRegion:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = bmsSkuRegionService.removeById(id);
return R.isTrue(result);
}
}

105
src/main/java/com/qs/serve/modules/bms/controller/BmsSkuSupplierController.java

@ -0,0 +1,105 @@
package com.qs.serve.modules.bms.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.bms.entity.bo.BmsSkuSupplierBo;
import com.qs.serve.modules.bms.entity.bo.BmsSkuSupplierBo2;
import com.qs.serve.modules.bms.entity.vo.BmsSkuSupplierVo;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.service.GoodsSkuService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.bms.entity.BmsSkuSupplier;
import com.qs.serve.modules.bms.service.BmsSkuSupplierService;
import javax.validation.Valid;
import java.util.List;
/**
* 基础档案 sku供应商关联
* @author YenHex
* @since 2022-10-17
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("bms/skuSupplier")
public class BmsSkuSupplierController {
private BmsSkuSupplierService bmsSkuSupplierService;
private GoodsSkuService goodsSkuService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('bms:skuSupplier:query')")
public R<PageVo<BmsSkuSupplierVo>> getPage(BmsSkuSupplier param){
PageUtil.startPage();
List<BmsSkuSupplierVo> list = bmsSkuSupplierService.selectList(param);
return R.byPageHelperList(list);
}
/**
* 供应商可购指定商品(购买设置等级优先级最高)
* @param param
* @return
*/
@PostMapping("/update4Sku")
@SysLog(module = SystemModule.BASE, title = "sku供应商关联", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:skuSupplier:update')")
public R<?> updateById(@RequestBody @Valid BmsSkuSupplierBo param){
LambdaQueryWrapper<BmsSkuSupplier> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSkuSupplier::getSupplierId,param.getSupplierId());
lqw.eq(BmsSkuSupplier::getSkuId,param.getSkuId());
BmsSkuSupplier skuSupplier = bmsSkuSupplierService.getOne(lqw,false);
if(skuSupplier==null){
GoodsSku goodsSku = goodsSkuService.getById(param.getSkuId());
skuSupplier = CopierUtil.copy(param,new BmsSkuSupplier());
skuSupplier.setSpuId(goodsSku.getSpuId());
bmsSkuSupplierService.save(skuSupplier);
}else {
skuSupplier.setBanStatus(param.getBanStatus());
bmsSkuSupplierService.updateById(skuSupplier);
}
return R.ok();
}
/**
* 供应商可购指定商品(购买设置等级比区域设置高)
* @param param
* @return
*/
@PostMapping("/update4Spu")
@SysLog(module = SystemModule.BASE, title = "sku供应商关联", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:skuSupplier:update')")
public R<?> updateById(@RequestBody @Valid BmsSkuSupplierBo2 param){
LambdaQueryWrapper<BmsSkuSupplier> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSkuSupplier::getSupplierId,param.getSupplierId());
lqw.eq(BmsSkuSupplier::getSpuId,param.getSpuId());
lqw.eq(BmsSkuSupplier::getSkuId,0);
BmsSkuSupplier skuSupplier = bmsSkuSupplierService.getOne(lqw,false);
if(skuSupplier==null){
skuSupplier = CopierUtil.copy(param,new BmsSkuSupplier());
skuSupplier.setSkuId(0L);
bmsSkuSupplierService.save(skuSupplier);
}else {
skuSupplier.setBanStatus(param.getBanStatus());
bmsSkuSupplierService.updateById(skuSupplier);
}
return R.ok();
}
}

4
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierAddressController.java

@ -104,11 +104,11 @@ public class BmsSupplierAddressController {
* @param id 地址ID
* @return
*/
@PostMapping("/setDefault")
@PostMapping("/setDefault/{id}")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.INSERT)
@PreAuthorize("hasRole('bms:supplierAddress:insert')")
@Transactional(rollbackFor = Exception.class)
public R<?> setDefault(@RequestBody @Valid Long id){
public R<?> setDefault(@PathVariable("id") Long id){
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(id);
List<BmsSupplierAddress> list = bmsSupplierAddressService.listBySupplierId(supplierAddress.getSupplierId());
//设置其它

2
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierBandController.java

@ -94,7 +94,7 @@ public class BmsSupplierBandController {
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:supplierBand:delete')")
public R<?> deleteById(@PathVariable("id") String id){
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = bmsSupplierBandService.removeById(id);
return R.isTrue(result);
}

5
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java

@ -9,9 +9,8 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.TreeUtil;
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;

2
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierUserController.java

@ -94,7 +94,7 @@ public class BmsSupplierUserController {
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "供应商分配", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:supplierUser:delete')")
public R<?> deleteById(@PathVariable("id") String id){
public R<?> deleteById(@PathVariable("id") Long id){
boolean result = bmsSupplierUserService.removeById(id);
return R.isTrue(result);
}

12
src/main/java/com/qs/serve/modules/bms/controller/api/BmsRegionApi.java

@ -1,25 +1,13 @@
package com.qs.serve.modules.bms.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.IdUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.ValidateTools;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.vo.BmsRegionBatchBo;
import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo;
import com.qs.serve.modules.bms.service.BmsRegionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**

51
src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java

@ -9,6 +9,7 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.bms.service.BmsSupplierAddressService;
import com.qs.serve.modules.bms.service.BmsSupplierUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -30,6 +31,7 @@ import java.util.List;
public class BmsSupplierAddressApi {
private BmsSupplierAddressService bmsSupplierAddressService;
private BmsSupplierUserService bmsSupplierUserService;
/**
* 翻页查询
@ -37,22 +39,37 @@ public class BmsSupplierAddressApi {
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('bms:supplierAddress:query')")
public R<PageVo<BmsSupplierAddress>> getPage(BmsSupplierAddress param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("未授权");
}
PageUtil.startPage();
LambdaQueryWrapper<BmsSupplierAddress> supplierAddressWrapper = new LambdaQueryWrapper<>(param);
List<BmsSupplierAddress> list = bmsSupplierAddressService.list(supplierAddressWrapper);
return R.byPageHelperList(list);
}
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BmsSupplierAddress>> getList(BmsSupplierAddress param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("未授权");
}
LambdaQueryWrapper<BmsSupplierAddress> supplierAddressWrapper = new LambdaQueryWrapper<>(param);
List<BmsSupplierAddress> list = bmsSupplierAddressService.list(supplierAddressWrapper);
return R.ok(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.QUERY)
@PreAuthorize("hasRole('bms:supplierAddress:query')")
public R<BmsSupplierAddress> getById(@PathVariable("id") String id){
BmsSupplierAddress bmsSupplierAddress = bmsSupplierAddressService.getById(id);
return R.ok(bmsSupplierAddress);
@ -66,14 +83,10 @@ public class BmsSupplierAddressApi {
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:supplierAddress:update')")
public R<?> updateById(@RequestBody @Valid BmsSupplierAddress param){
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(param.getSupplierId());
if(supplierAddress==null){
param.setDefaultFlag(1);
}else {
param.setDefaultFlag(0);
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(param.getId());
if(bmsSupplierUserService.checkWxUserSupplier(supplierAddress.getSupplierId())){
return R.error("未授权");
}
boolean result = bmsSupplierAddressService.updateById(param);
return R.isTrue(result);
@ -85,9 +98,10 @@ public class BmsSupplierAddressApi {
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.INSERT)
@PreAuthorize("hasRole('bms:supplierAddress:insert')")
public R<?> save(@RequestBody @Valid BmsSupplierAddress param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("未授权");
}
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(param.getSupplierId());
if(supplierAddress==null){
param.setDefaultFlag(1);
@ -104,11 +118,12 @@ public class BmsSupplierAddressApi {
* @return
*/
@PostMapping("/setDefault")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.INSERT)
@PreAuthorize("hasRole('bms:supplierAddress:insert')")
@Transactional(rollbackFor = Exception.class)
public R<?> setDefault(@RequestBody @Valid Long id){
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(id);
if(bmsSupplierUserService.checkWxUserSupplier(supplierAddress.getSupplierId())){
return R.error("未授权");
}
List<BmsSupplierAddress> list = bmsSupplierAddressService.listBySupplierId(supplierAddress.getSupplierId());
//设置其它
for (BmsSupplierAddress address : list) {
@ -129,9 +144,11 @@ public class BmsSupplierAddressApi {
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:supplierAddress:delete')")
public R<?> deleteById(@PathVariable("id") String id){
public R<?> deleteById(@PathVariable("id") Long id){
BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(id);
if(bmsSupplierUserService.checkWxUserSupplier(supplierAddress.getSupplierId())){
return R.error("未授权");
}
boolean result = bmsSupplierAddressService.removeById(id);
return R.isTrue(result);
}

4
src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierApi.java

@ -1,6 +1,5 @@
package com.qs.serve.modules.bms.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
@ -10,8 +9,6 @@ import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.TreeUtil;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.wx.entity.WxUser;
@ -21,7 +18,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

32
src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierBandApi.java

@ -9,6 +9,7 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.bms.entity.BmsSupplierBand;
import com.qs.serve.modules.bms.service.BmsSupplierBandService;
import com.qs.serve.modules.bms.service.BmsSupplierUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
@ -29,6 +30,7 @@ import java.util.List;
public class BmsSupplierBandApi {
private BmsSupplierBandService bmsSupplierBandService;
private BmsSupplierUserService bmsSupplierUserService;
/**
* 翻页查询
@ -38,12 +40,31 @@ public class BmsSupplierBandApi {
@GetMapping("/page")
@PreAuthorize("hasRole('bms:supplierBand:query')")
public R<PageVo<BmsSupplierBand>> getPage(BmsSupplierBand param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("未授权");
}
PageUtil.startPage();
LambdaQueryWrapper<BmsSupplierBand> supplierBandWrapper = new LambdaQueryWrapper<>(param);
List<BmsSupplierBand> list = bmsSupplierBandService.list(supplierBandWrapper);
return R.byPageHelperList(list);
}
/**
* 列表查询
* @param param
* @return
*/
@GetMapping("/list")
@PreAuthorize("hasRole('bms:supplierBand:query')")
public R<List<BmsSupplierBand>> getList(BmsSupplierBand param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("未授权");
}
LambdaQueryWrapper<BmsSupplierBand> supplierBandWrapper = new LambdaQueryWrapper<>(param);
List<BmsSupplierBand> list = bmsSupplierBandService.list(supplierBandWrapper);
return R.ok(list);
}
/**
* 根据ID查询
* @param id
@ -68,6 +89,10 @@ public class BmsSupplierBandApi {
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.UPDATE)
@PreAuthorize("hasRole('bms:supplierBand:update')")
public R<?> updateById(@RequestBody @Valid BmsSupplierBand param){
BmsSupplierBand bmsSupplierBand = bmsSupplierBandService.getById(param.getId());
if(bmsSupplierUserService.checkWxUserSupplier(bmsSupplierBand.getSupplierId())){
return R.error("未授权");
}
boolean result = bmsSupplierBandService.updateById(param);
return R.isTrue(result);
}
@ -81,6 +106,9 @@ public class BmsSupplierBandApi {
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.INSERT)
@PreAuthorize("hasRole('bms:supplierBand:insert')")
public R<?> save(@RequestBody @Valid BmsSupplierBand param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("未授权");
}
boolean result = bmsSupplierBandService.save(param);
return R.isTrue(result);
}
@ -94,6 +122,10 @@ public class BmsSupplierBandApi {
@SysLog(module = SystemModule.BASE, title = "供应商地址", biz = BizType.DELETE)
@PreAuthorize("hasRole('bms:supplierBand:delete')")
public R<?> deleteById(@PathVariable("id") String id){
BmsSupplierBand bmsSupplierBand = bmsSupplierBandService.getById(id);
if(bmsSupplierUserService.checkWxUserSupplier(bmsSupplierBand.getSupplierId())){
return R.error("未授权");
}
boolean result = bmsSupplierBandService.removeById(id);
return R.isTrue(result);
}

78
src/main/java/com/qs/serve/modules/bms/entity/BmsSkuRegion.java

@ -0,0 +1,78 @@
package com.qs.serve.modules.bms.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* sku销售区域 实体类
* @author YenHex
* @since 2022-10-17
*/
@Data
@TableName("bms_sku_region")
public class BmsSkuRegion implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 商品Id */
@NotNull(message = "商品Id不能为空")
private Long spuId;
/** skuId */
@NotNull(message = "skuId不能为空")
private Long skuId;
/** 区域ID */
@NotNull(message = "区域ID不能为空")
private Long regionId;
/** 类型:0->正常;1->禁售 */
private Integer typeFlag;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

79
src/main/java/com/qs/serve/modules/bms/entity/BmsSkuSupplier.java

@ -0,0 +1,79 @@
package com.qs.serve.modules.bms.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* sku供应商关联 实体类
* @author YenHex
* @since 2022-10-17
*/
@Data
@TableName("bms_sku_supplier")
public class BmsSkuSupplier implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 商品id */
@NotNull(message = "商品id不能为空")
private Long spuId;
/** skuId */
@NotNull(message = "skuId不能为空")
private Long skuId;
/** 供应商id */
@NotNull(message = "供应商id不能为空")
private Long supplierId;
/** 禁售状态 */
@NotNull(message = "禁售状态不能为空")
private Integer banStatus;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

8
src/main/java/com/qs/serve/modules/bms/entity/BmsSupplierAddress.java

@ -61,6 +61,14 @@ public class BmsSupplierAddress implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 收货联系方式 */
@NotBlank(message = "收货联系方式不能为空")
private String phone;
/** 收货人 */
@NotBlank(message = "收货人不能为空")
private String receiver;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

2
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsRegionBatchBo.java → src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionBatchBo.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bms.entity.vo;
package com.qs.serve.modules.bms.entity.bo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

26
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSkuSupplierBo.java

@ -0,0 +1,26 @@
package com.qs.serve.modules.bms.entity.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author YenHex
* @since 2022/10/17
*/
@Data
public class BmsSkuSupplierBo {
/** skuId */
@NotNull(message = "skuId不能为空")
private Long skuId;
/** 供应商id */
@NotNull(message = "供应商id不能为空")
private Long supplierId;
/** 禁售状态 0可售 1禁售 */
@NotNull(message = "禁售状态不能为空")
private Integer banStatus;
}

26
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSkuSupplierBo2.java

@ -0,0 +1,26 @@
package com.qs.serve.modules.bms.entity.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @author YenHex
* @since 2022/10/17
*/
@Data
public class BmsSkuSupplierBo2 {
/** 商品Id */
@NotNull(message = "skuId不能为空")
private Long spuId;
/** 供应商id */
@NotNull(message = "供应商id不能为空")
private Long supplierId;
/** 禁售状态 0可售 1禁售 */
@NotNull(message = "禁售状态不能为空")
private Integer banStatus;
}

2
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBatchBo.java → src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBatchBo.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bms.entity.vo;
package com.qs.serve.modules.bms.entity.bo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

4
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierBo.java → src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java

@ -1,4 +1,4 @@
package com.qs.serve.modules.bms.entity.vo;
package com.qs.serve.modules.bms.entity.bo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@ -15,7 +15,7 @@ import javax.validation.constraints.NotBlank;
public class BmsSupplierBo {
/** id */
private Long id;
private String id;
/** 区域ID */
private Long regionId;

26
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSkuSupplierVo.java

@ -0,0 +1,26 @@
package com.qs.serve.modules.bms.entity.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.qs.serve.modules.bms.entity.BmsSkuSupplier;
import lombok.Data;
/**
* @author YenHex
* @since 2022/10/17
*/
@Data
public class BmsSkuSupplierVo extends BmsSkuSupplier {
/** 规格编码*/
private String skuCode;
/** 商品编码 */
private String spuCode;
/** 规格值 */
private String specInfos;
/** 商品标题 */
private String spuTitle;
}

2
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsSupplierTreeVo.java

@ -3,6 +3,7 @@ package com.qs.serve.modules.bms.entity.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.qs.serve.common.model.dto.TreeNode;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
@ -11,6 +12,7 @@ import javax.validation.constraints.NotBlank;
* @author YenHex
* @since 2022/10/12
*/
@Data
public class BmsSupplierTreeVo extends TreeNode {
/** id */

14
src/main/java/com/qs/serve/modules/bms/mapper/BmsSkuRegionMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsSkuRegion;
/**
* sku销售区域 Mapper
* @author YenHex
* @date 2022-10-17
*/
public interface BmsSkuRegionMapper extends BaseMapper<BmsSkuRegion> {
}

22
src/main/java/com/qs/serve/modules/bms/mapper/BmsSkuSupplierMapper.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.bms.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bms.entity.BmsSkuSupplier;
import com.qs.serve.modules.bms.entity.vo.BmsSkuSupplierVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* sku供应商关联 Mapper
* @author YenHex
* @date 2022-10-17
*/
public interface BmsSkuSupplierMapper extends BaseMapper<BmsSkuSupplier> {
@InterceptorIgnore(tenantLine = "1")
List<BmsSkuSupplierVo> selectList2(@Param("query") BmsSkuSupplier skuSupplier);
}

14
src/main/java/com/qs/serve/modules/bms/service/BmsSkuRegionService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsSkuRegion;
/**
* sku销售区域 服务接口
* @author YenHex
* @date 2022-10-17
*/
public interface BmsSkuRegionService extends IService<BmsSkuRegion> {
}

19
src/main/java/com/qs/serve/modules/bms/service/BmsSkuSupplierService.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsSkuSupplier;
import com.qs.serve.modules.bms.entity.vo.BmsSkuSupplierVo;
import java.util.List;
/**
* sku供应商关联 服务接口
* @author YenHex
* @date 2022-10-17
*/
public interface BmsSkuSupplierService extends IService<BmsSkuSupplier> {
List<BmsSkuSupplierVo> selectList(BmsSkuSupplier skuSupplier);
}

7
src/main/java/com/qs/serve/modules/bms/service/BmsSupplierService.java

@ -2,12 +2,9 @@ package com.qs.serve.modules.bms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestBody;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo;
import javax.validation.Valid;
import java.util.List;
/**

8
src/main/java/com/qs/serve/modules/bms/service/BmsSupplierUserService.java

@ -13,7 +13,13 @@ import java.util.List;
*/
public interface BmsSupplierUserService extends IService<BmsSupplierUser> {
//BmsSupplier list
/**
* 检查当前微信人员是否有操作供应商权限
* @param supplierId
* @return
*/
boolean checkWxUserSupplier(Long supplierId);
boolean checkWxUserSupplier(Long supplierId,String userId);
}

22
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSkuRegionServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.bms.entity.BmsSkuRegion;
import com.qs.serve.modules.bms.service.BmsSkuRegionService;
import com.qs.serve.modules.bms.mapper.BmsSkuRegionMapper;
/**
* sku销售区域 服务实现类
* @author YenHex
* @since 2022-10-17
*/
@Slf4j
@Service
@AllArgsConstructor
public class BmsSkuRegionServiceImpl extends ServiceImpl<BmsSkuRegionMapper,BmsSkuRegion> implements BmsSkuRegionService {
}

14
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSkuSupplierService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.bms.entity.BmsSkuSupplier;
/**
* sku供应商关联 服务接口
* @author YenHex
* @date 2022-10-17
*/
public interface BmsSkuSupplierService extends IService<BmsSkuSupplier> {
}

29
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSkuSupplierServiceImpl.java

@ -0,0 +1,29 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.modules.bms.entity.vo.BmsSkuSupplierVo;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.bms.entity.BmsSkuSupplier;
import com.qs.serve.modules.bms.service.BmsSkuSupplierService;
import com.qs.serve.modules.bms.mapper.BmsSkuSupplierMapper;
import java.util.List;
/**
* sku供应商关联 服务实现类
* @author YenHex
* @since 2022-10-17
*/
@Slf4j
@Service
@AllArgsConstructor
public class BmsSkuSupplierServiceImpl extends ServiceImpl<BmsSkuSupplierMapper,BmsSkuSupplier> implements BmsSkuSupplierService {
@Override
public List<BmsSkuSupplierVo> selectList(BmsSkuSupplier skuSupplier) {
return baseMapper.selectList2(skuSupplier);
}
}

17
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java

@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.vo.BmsSupplierBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBatchBo;
import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo;
import com.qs.serve.modules.bms.service.BmsRegionService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -36,8 +36,13 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
@Override
public void edit(BmsSupplierBo param) {
BmsSupplier supplier = CopierUtil.copy(param,new BmsSupplier());
BmsSupplier parentNode = this.getById(param.getPid());
supplier.setParentCode(parentNode.getCode());
if(param.getPid()==null||param.getPid().equals(0L)){
supplier.setPid("0");
supplier.setParentCode("0");
}else {
BmsSupplier parentNode = this.getById(param.getPid());
supplier.setParentCode(parentNode.getCode());
}
if(param.getRegionId()!=null){
this.initRegion(supplier,param.getRegionId());
}
@ -67,9 +72,9 @@ public class BmsSupplierServiceImpl extends ServiceImpl<BmsSupplierMapper,BmsSup
for (BmsSupplierBatchBo.BmsSupplierDto param : batchBo.getSupplierList()) {
BmsSupplier dbSupplier = this.getByCode(param.getCode());
BmsSupplier parentNode = this.getByCode(param.getParentCode());
BmsSupplier supplier = CopierUtil.copy(param,dbSupplier);
BmsSupplier supplier = CopierUtil.copy(param,dbSupplier==null?new BmsSupplier():dbSupplier);
if(parentNode!=null){
supplier.setPid(parentNode.getPid());
supplier.setPid(parentNode.getId());
}else {
supplier.setPid("-1");
}

27
src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierUserServiceImpl.java

@ -1,6 +1,9 @@
package com.qs.serve.modules.bms.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -18,5 +21,29 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierUserMapper;
@AllArgsConstructor
public class BmsSupplierUserServiceImpl extends ServiceImpl<BmsSupplierUserMapper,BmsSupplierUser> implements BmsSupplierUserService {
private WxUserService wxUserService;
@Override
public boolean checkWxUserSupplier(Long supplierId) {
return checkWxUserSupplier(supplierId,null);
}
@Override
public boolean checkWxUserSupplier(Long supplierId, String userId) {
if(supplierId!=null){
WxUser wxUser = wxUserService.getCurrentWxUser(true);
if(wxUser!=null){
LambdaQueryWrapper<BmsSupplierUser> lqw = new LambdaQueryWrapper<>();
lqw.eq(BmsSupplierUser::getUserId,wxUser.getSysUserId());
lqw.eq(BmsSupplierUser::getSupplierId,supplierId);
boolean exist = this.count(lqw) > 0L;
if(userId!=null){
return exist&&wxUser.getSysUserId().equals(userId);
}
return exist;
}
}
return false;
}
}

3
src/main/java/com/qs/serve/modules/goods/entity/GoodsSku.java

@ -51,6 +51,9 @@ public class GoodsSku implements Serializable {
/** 成本价 */
private BigDecimal costPrice;
/** 规格值 */
private String specInfos;
/** 库存 */
@NotNull(message = "库存不能为空")
private Integer stock;

24
src/main/java/com/qs/serve/modules/goods/mapper/GoodsSkuSpecValueMapper.java

@ -17,7 +17,7 @@ import java.util.List;
public interface GoodsSkuSpecValueMapper extends BaseMapper<GoodsSkuSpecValue> {
/**
* 查询sku的规格值
* 查询spu的规格值
* @param spuId
* @return
*/
@ -38,5 +38,27 @@ public interface GoodsSkuSpecValueMapper extends BaseMapper<GoodsSkuSpecValue> {
" ORDER BY `goods_sku_spec_value`.`sort` DESC")
List<GoodsSkuSpecValueVo> listSpecValueBySpuId(@Param("spuId") Long spuId);
/**
* 查询sku的规格值
* @param skuId
* @return
*/
@InterceptorIgnore(tenantLine = "1")
@Select("SELECT " +
" `goods_sku_spec_value`.`sku_id` as `skuId`," +
" `goods_spec_value`.`spec_id` as `specId`," +
" `goods_spec`.`name` as `spec_name` as `specName`," +
" `goods_sku_spec_value`.`spec_value_id` as `specValueId`," +
" `goods_spec_value`.`name` as `specValue`," +
" `goods_sku_spec_value`.`sort` as `specValueSort`" +
" FROM `goods_sku_spec_value` " +
" LEFT JOIN `goods_spec_value` " +
" ON `goods_sku_spec_value`.spec_value_id = `goods_spec_value`.`id` " +
" LEFT JOIN `goods_spec` " +
" ON `goods_spec_value`.`spec_id` = `goods_spec`.`id` " +
" WHERE `goods_sku_spec_value`.`sku_id` = #{skuId}" +
" ORDER BY `goods_sku_spec_value`.`sort` DESC")
List<GoodsSkuSpecValueVo> listSpecValueBySkuId(@Param("skuId") Long skuId);
}

9
src/main/java/com/qs/serve/modules/goods/service/GoodsSkuSpecValueService.java

@ -14,12 +14,19 @@ import java.util.List;
public interface GoodsSkuSpecValueService extends IService<GoodsSkuSpecValue> {
/**
* 查询sku的规格值
* 查询spu的规格值
* @param spuId
* @return
*/
List<GoodsSkuSpecValueVo> listSpecValueBySpuId(Long spuId);
/**
* 查询sku的规格值
* @param skuId
* @return
*/
List<GoodsSkuSpecValueVo> listSpecValueBySkuId(Long skuId);
GoodsSkuSpecValue getByIds(Long skuId,Long specValueId);
/**

5
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSkuSpecValueServiceImpl.java

@ -27,6 +27,11 @@ public class GoodsSkuSpecValueServiceImpl extends ServiceImpl<GoodsSkuSpecValueM
return baseMapper.listSpecValueBySpuId(spuId);
}
@Override
public List<GoodsSkuSpecValueVo> listSpecValueBySkuId(Long skuId) {
return baseMapper.listSpecValueBySkuId(skuId);
}
@Override
public GoodsSkuSpecValue getByIds(Long skuId, Long specValueId) {
LambdaQueryWrapper<GoodsSkuSpecValue> lqw = new LambdaQueryWrapper<>();

1
src/main/java/com/qs/serve/modules/goods/service/impl/GoodsSpuServiceImpl.java

@ -154,6 +154,7 @@ public class GoodsSpuServiceImpl extends ServiceImpl<GoodsSpuMapper,GoodsSpu> im
goodsSku.setSkuCode(tasteProduct.getInvCode());
goodsSku.setSpuId(spu.getId());
goodsSku.setPicUrl(tasteProduct.getInvPicUrl());
goodsSku.setSpecInfos(tasteProduct.getTasteValue()+";"+tasteProduct.getPackValue());
//设置sku单位
if(StringUtils.hasText(tasteProduct.getUnit())){
GoodsUnit goodsUnit = goodsUnitService.getByName(tasteProduct.getUnit());

103
src/main/java/com/qs/serve/modules/oms/controller/OmsOrderController.java

@ -0,0 +1,103 @@
package com.qs.serve.modules.oms.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.service.OmsOrderService;
import javax.validation.Valid;
import java.util.List;
/**
* 订单模块 订单
* @author YenHex
* @since 2022-10-14
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("oms/order")
public class OmsOrderController {
private OmsOrderService omsOrderService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('oms:order:query')")
public R<PageVo<OmsOrder>> getPage(OmsOrder param){
PageUtil.startPage();
LambdaQueryWrapper<OmsOrder> orderWrapper = new LambdaQueryWrapper<>(param);
List<OmsOrder> list = omsOrderService.list(orderWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.QUERY)
@PreAuthorize("hasRole('oms:order:query')")
public R<OmsOrder> getById(@PathVariable("id") String id){
OmsOrder omsOrder = omsOrderService.getById(id);
return R.ok(omsOrder);
}
/**
* 根据ID更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.UPDATE)
@PreAuthorize("hasRole('oms:order:update')")
public R<?> updateById(@RequestBody @Valid OmsOrder param){
boolean result = omsOrderService.updateById(param);
return R.isTrue(result);
}
/**
* 新增订单
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.INSERT)
@PreAuthorize("hasRole('oms:order:insert')")
public R<?> save(@RequestBody @Valid OmsOrder param){
boolean result = omsOrderService.save(param);
return R.isTrue(result);
}
/**
* 删除订单
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE)
@PreAuthorize("hasRole('oms:order:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = omsOrderService.removeById(id);
return R.isTrue(result);
}
}

103
src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java

@ -0,0 +1,103 @@
package com.qs.serve.modules.oms.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.service.OmsOrderItemService;
import javax.validation.Valid;
import java.util.List;
/**
* 订单模块 订单明细
* @author YenHex
* @since 2022-10-14
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("oms/orderItem")
public class OmsOrderItemController {
private OmsOrderItemService omsOrderItemService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
@PreAuthorize("hasRole('oms:orderItem:query')")
public R<PageVo<OmsOrderItem>> getPage(OmsOrderItem param){
PageUtil.startPage();
LambdaQueryWrapper<OmsOrderItem> orderItemWrapper = new LambdaQueryWrapper<>(param);
List<OmsOrderItem> list = omsOrderItemService.list(orderItemWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "订单明细", biz = BizType.QUERY)
@PreAuthorize("hasRole('oms:orderItem:query')")
public R<OmsOrderItem> getById(@PathVariable("id") String id){
OmsOrderItem omsOrderItem = omsOrderItemService.getById(id);
return R.ok(omsOrderItem);
}
/**
* 根据ID更新
* @param param
* @return
*/
@PostMapping("/updateById")
@SysLog(module = SystemModule.BASE, title = "订单明细", biz = BizType.UPDATE)
@PreAuthorize("hasRole('oms:orderItem:update')")
public R<?> updateById(@RequestBody @Valid OmsOrderItem param){
boolean result = omsOrderItemService.updateById(param);
return R.isTrue(result);
}
/**
* 新增订单明细
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "订单明细", biz = BizType.INSERT)
@PreAuthorize("hasRole('oms:orderItem:insert')")
public R<?> save(@RequestBody @Valid OmsOrderItem param){
boolean result = omsOrderItemService.save(param);
return R.isTrue(result);
}
/**
* 删除订单明细
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "订单明细", biz = BizType.DELETE)
@PreAuthorize("hasRole('oms:orderItem:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = omsOrderItemService.removeById(id);
return R.isTrue(result);
}
}

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

@ -0,0 +1,101 @@
package com.qs.serve.modules.oms.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.entity.bo.OmsConfirmOrderBo;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderVo;
import com.qs.serve.modules.oms.service.OmsOrderService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* API订单模块 订单
* @author YenHex
* @since 2022-10-14
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("/api/order")
public class OmsOrderApi {
private OmsOrderService omsOrderService;
/**
* 创建确认订单
* @param confirmOrder
* @return
*/
@PostMapping("/generateConfirmOrder")
public R<OmsConfirmOrderVo> generateConfirmOrder(@RequestBody @Valid OmsConfirmOrderBo confirmOrder){
return R.ok(omsOrderService.generateConfirmOrder(confirmOrder));
}
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<OmsOrder>> getPage(OmsOrder param){
PageUtil.startPage();
LambdaQueryWrapper<OmsOrder> orderWrapper = new LambdaQueryWrapper<>(param);
List<OmsOrder> list = omsOrderService.list(orderWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID查询
* @param id
* @return
*/
@GetMapping("/getById/{id}")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.QUERY)
@PreAuthorize("hasRole('oms:order:query')")
public R<OmsOrder> getById(@PathVariable("id") String id){
OmsOrder omsOrder = omsOrderService.getById(id);
return R.ok(omsOrder);
}
/**
* 新增订单
* @param param
* @return
*/
@PostMapping("/save")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.INSERT)
@PreAuthorize("hasRole('oms:order:insert')")
public R<?> save(@RequestBody @Valid OmsOrder param){
boolean result = omsOrderService.save(param);
return R.isTrue(result);
}
/**
* 删除订单
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
@SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE)
@PreAuthorize("hasRole('oms:order:delete')")
public R<?> deleteById(@PathVariable("id") String id){
boolean result = omsOrderService.removeById(id);
return R.isTrue(result);
}
}

130
src/main/java/com/qs/serve/modules/oms/controller/api/OmsShoppingCartApi.java

@ -0,0 +1,130 @@
package com.qs.serve.modules.oms.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog;
import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.bms.service.BmsSupplierUserService;
import com.qs.serve.modules.goods.entity.GoodsSku;
import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue;
import com.qs.serve.modules.goods.entity.GoodsSpu;
import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo;
import com.qs.serve.modules.goods.service.GoodsSkuService;
import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService;
import com.qs.serve.modules.goods.service.GoodsSpuService;
import com.qs.serve.modules.oms.entity.OmsShoppingCart;
import com.qs.serve.modules.oms.entity.bo.OmsShoppingCartSaveBo;
import com.qs.serve.modules.oms.entity.bo.OmsShoppingCartUpdateBo;
import com.qs.serve.modules.oms.service.OmsShoppingCartService;
import com.qs.serve.modules.wx.entity.WxUser;
import com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.stream.Collectors;
/**
* API订单模块 购物车
* @author YenHex
* @since 2022-10-14
*/
@Slf4j
@AllArgsConstructor
@RestController
@RequestMapping("api/shoppingCart")
public class OmsShoppingCartApi {
private OmsShoppingCartService omsShoppingCartService;
private GoodsSkuSpecValueService goodsSkuSpecValueService;
private BmsSupplierUserService bmsSupplierUserService;
private GoodsSpuService goodsSpuService;
private GoodsSkuService goodsSkuService;
private WxUserService wxUserService;
/**
* 翻页查询
* @param param
* @return
*/
@GetMapping("/page")
public R<PageVo<OmsShoppingCart>> getPage(OmsShoppingCart param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("请选择有效的客户");
}
WxUser wxUser = wxUserService.getCurrentWxUser(true);
if(wxUser==null){
return R.byEmptyList();
}
LambdaQueryWrapper<OmsShoppingCart> shoppingCartWrapper = new LambdaQueryWrapper<>(param);
shoppingCartWrapper.eq(OmsShoppingCart::getUserId,wxUser.getSysUserId());
PageUtil.startPage();
List<OmsShoppingCart> list = omsShoppingCartService.list(shoppingCartWrapper);
return R.byPageHelperList(list);
}
/**
* 根据ID更新
* @param param
* @return
*/
@PostMapping("/updateById")
public R<?> updateById(@RequestBody @Valid OmsShoppingCartUpdateBo param){
OmsShoppingCart shoppingCart = omsShoppingCartService.getById(param.getCartId());
if(bmsSupplierUserService.checkWxUserSupplier(shoppingCart.getSupplierId(),shoppingCart.getUserId())){
return R.error("未授权");
}
shoppingCart.setQuantity(param.getQuantity());
omsShoppingCartService.updateById(shoppingCart);
return R.ok();
}
/**
* 新增购物车
* @param param
* @return
*/
@PostMapping("/save")
public R<?> save(@RequestBody @Valid OmsShoppingCartSaveBo param){
if(bmsSupplierUserService.checkWxUserSupplier(param.getSupplierId())){
return R.error("未授权");
}
OmsShoppingCart shoppingCart = CopierUtil.copy(param,new OmsShoppingCart());
WxUser wxUser = wxUserService.getCurrentWxUser(true);
shoppingCart.setUserId(wxUser.getSysUserId());
GoodsSpu goodsSpu = goodsSpuService.getById(shoppingCart.getSpuId());
shoppingCart.setSpuName(goodsSpu.getName());
GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId());
shoppingCart.setPicUrl(goodsSku.getPicUrl());
List<GoodsSkuSpecValueVo> skuSpecValues = goodsSkuSpecValueService.listSpecValueBySkuId(goodsSku.getId());
String specInfo = skuSpecValues.stream().map(GoodsSkuSpecValueVo::getSpecValue).collect(Collectors.joining(";"));
shoppingCart.setSpecInfo(specInfo);
omsShoppingCartService.save(shoppingCart);
return R.ok();
}
/**
* 删除购物车
* @param id
* @return
*/
@DeleteMapping("/deleteById/{id}")
public R<?> deleteById(@PathVariable("id") String id){
OmsShoppingCart shoppingCart = omsShoppingCartService.getById(id);
if(bmsSupplierUserService.checkWxUserSupplier(shoppingCart.getSupplierId(),shoppingCart.getUserId())){
return R.error("未授权");
}
omsShoppingCartService.removeById(id);
return R.error();
}
}

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

@ -0,0 +1,144 @@
package com.qs.serve.modules.oms.entity;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 订单 实体类
* @author YenHex
* @since 2022-10-14
*/
@Data
@TableName("oms_order")
public class OmsOrder implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 订单号 */
@NotBlank(message = "订单号不能为空")
@Length(max = 20,message = "订单号长度不能超过20字")
private String orderSn;
/** 供应商ID */
@NotNull(message = "供应商ID不能为空")
private Long supplierId;
/** 供应商编码 */
@NotBlank(message = "供应商编码不能为空")
@Length(max = 20,message = "供应商编码长度不能超过20字")
private String supplierCode;
/** 供应商名称 */
@NotBlank(message = "供应商名称不能为空")
@Length(max = 30,message = "供应商名称长度不能超过30字")
private String supplierName;
/** 供应商收货地址id */
@NotNull(message = "供应商收货地址id不能为空")
private Long supplierAddrId;
/** 审核状态 */
@NotNull(message = "审核状态不能为空")
private Integer checkState;
/** 审核人 */
@Length(max = 32,message = "审核人长度不能超过32字")
private String checkUserId;
/** 审核时间 */
@Length(max = 0,message = "审核时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@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;
/** 制单人id */
@Length(max = 32,message = "制单人id长度不能超过32字")
private String userId;
/** 制单人名称 */
@Length(max = 20,message = "制单人名称长度不能超过20字")
private String userName;
/** 制单人ERP编码 */
@Length(max = 32,message = "制单人ERP编码长度不能超过32字")
private String userCode;
/** 制单人手机号 */
@Length(max = 255,message = "制单人手机号长度不能超过255字")
private String userPhone;
/** 发票类型:0->普通发票;1->增值税发票; */
private Integer billType;
/** 是否加急 */
private Integer urgentFlag;
/** 订单状态 */
private Integer status;
/** 备注 */
@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")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 租户id */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 删除标识 */
@JsonIgnore
@JsonProperty
private Boolean delFlag;
}

117
src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java

@ -0,0 +1,117 @@
package com.qs.serve.modules.oms.entity;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 订单明细 实体类
* @author YenHex
* @since 2022-10-14
*/
@Data
@TableName("oms_order_item")
public class OmsOrderItem implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 订单id */
private Long orderId;
/** 订单sn */
@Length(max = 32,message = "订单sn长度不能超过32字")
private String orderSn;
/** 商品id */
private Long spuId;
/** 商品编码 */
@Length(max = 20,message = "商品编码长度不能超过20字")
private String spuCode;
/** 商品名称 */
@Length(max = 30,message = "商品名称长度不能超过30字")
private String spuTitle;
/** skuId */
private Long skuId;
/** sku编码 */
@Length(max = 20,message = "sku编码长度不能超过20字")
private String skuCode;
/** sku单位 */
@Length(max = 20,message = "sku单位长度不能超过20字")
private String skuUnit;
/** sku图片 */
@Length(max = 255,message = "sku图片长度不能超过255字")
private String skuImg;
/** 规格值 */
@Length(max = 255,message = "规格值长度不能超过255字")
private String specValues;
/** 数量 */
private Integer quantity;
/** 销售价 */
private BigDecimal salesPrice;
/** 客户价 */
private BigDecimal cusPrice;
/** 市场价 */
private BigDecimal marketPrice;
/** 备注 */
@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")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
}

105
src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java

@ -0,0 +1,105 @@
package com.qs.serve.modules.oms.entity;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 购物车 实体类
* @author YenHex
* @since 2022-10-14
*/
@Data
@TableName("oms_shopping_cart")
public class OmsShoppingCart implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 下单人 */
@NotBlank(message = "下单人不能为空")
@Length(max = 32,message = "下单人长度不能超过32字")
private String userId;
/** 商品SPU */
@NotBlank(message = "商品SPU不能为空")
@Length(max = 32,message = "商品SPU长度不能超过32字")
private Long spuId;
/** 商品SKU */
@NotBlank(message = "商品SKU不能为空")
@Length(max = 32,message = "商品SKU长度不能超过32字")
private Long skuId;
/** 供应商ID */
private Long supplierId;
/** 数量 */
@NotNull(message = "数量不能为空")
private Integer quantity;
/** 加入时的spu名字 */
@Length(max = 200,message = "加入时的spu名字长度不能超过200字")
private String spuName;
/** 加入时价格 */
private BigDecimal addPrice;
/** 加入时的规格信息 */
@Length(max = 200,message = "加入时的规格信息长度不能超过200字")
private String specInfo;
/** 图片 */
@Length(max = 500,message = "图片长度不能超过500字")
private String picUrl;
/** 备注 */
@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")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
}

46
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsConfirmOrderBo.java

@ -0,0 +1,46 @@
package com.qs.serve.modules.oms.entity.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
* @author YenHex
* @since 2022/10/14
*/
@Data
public class OmsConfirmOrderBo {
/**
* 供应商id
*/
@NotNull
private Long supplierId;
/**
* 订单类型0->普通订单
*/
@NotNull
private Integer orderType;
/**
* 立即购买或非普通订单
*/
private Long skuId;
/**
* 数量立即购买或非普通订单
*/
private Integer quantity;
/**
* 购物车ID(购物车方式下单)
*/
private List<Long> shoppingCartIds;
/**
* todo 促销活动id列表
*/
private List<Long> promotionIds;
}

42
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsShoppingCartSaveBo.java

@ -0,0 +1,42 @@
package com.qs.serve.modules.oms.entity.bo;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* @author YenHex
* @since 2022/10/14
*/
@Data
public class OmsShoppingCartSaveBo {
/** 供应商ID */
@NotNull(message = "供应商不能为空")
private Long supplierId;
/** 商品SPU */
@NotBlank(message = "商品SPU不能为空")
@Length(max = 32,message = "商品SPU长度不能超过32字")
private Long spuId;
/** 商品SKU */
@NotBlank(message = "商品SKU不能为空")
@Length(max = 32,message = "商品SKU长度不能超过32字")
private Long skuId;
/** 数量 */
@NotNull(message = "数量不能为空")
private Integer quantity;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 加入时价格 */
private BigDecimal addPrice;
}

27
src/main/java/com/qs/serve/modules/oms/entity/bo/OmsShoppingCartUpdateBo.java

@ -0,0 +1,27 @@
package com.qs.serve.modules.oms.entity.bo;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
/**
* @author YenHex
* @since 2022/10/14
*/
@Data
public class OmsShoppingCartUpdateBo {
/**
* 购物车id
*/
@NotNull
private Long cartId;
/**
* 数量
*/
@Min(value = 1,message = "数量不能为空")
private Integer quantity;
}

46
src/main/java/com/qs/serve/modules/oms/entity/dto/OmsCalcAmount.java

@ -0,0 +1,46 @@
package com.qs.serve.modules.oms.entity.dto;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
/**
* 金额相关封装
* @author YenHex
* @since 2022-10-14
*/
@Getter
@Setter
public class OmsCalcAmount {
public OmsCalcAmount(){
totalAmount = new BigDecimal(0);
promotionAmount = new BigDecimal(0);
payAmount = new BigDecimal(0);
couponAmount = new BigDecimal(0);
//freightAmount = new BigDecimal(0);
//freightInsAmount = new BigDecimal(0);
//integralAmount = new BigDecimal(0);
}
/** 订单商品总金额(未减折扣) */
private BigDecimal totalAmount;
/**总优惠券(指sku总优惠)*/
private BigDecimal couponAmount;
/** 总促销优化金额(指活动促销价、满减、阶梯价) */
private BigDecimal promotionAmount;
/** 应付金额 */
private BigDecimal payAmount;
//总运费
//private BigDecimal freightAmount;
//总运费险费用
//private BigDecimal freightInsAmount;
//总积分优惠
//private BigDecimal integralAmount;
}

28
src/main/java/com/qs/serve/modules/oms/entity/vo/OmsConfirmOrderVo.java

@ -0,0 +1,28 @@
package com.qs.serve.modules.oms.entity.vo;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierAddress;
import com.qs.serve.modules.oms.entity.OmsShoppingCart;
import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
* @author YenHex
* @since 2022/10/14
*/
@Data
public class OmsConfirmOrderVo {
/** 购物车列表 */
private List<?> shoppingCarts;
/** 默认地址 */
private Object defaultAddress;
/** 合计信息 */
private OmsCalcAmount amountInfo;
}

14
src/main/java/com/qs/serve/modules/oms/mapper/OmsOrderItemMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.oms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
/**
* 订单明细 Mapper
* @author YenHex
* @date 2022-10-14
*/
public interface OmsOrderItemMapper extends BaseMapper<OmsOrderItem> {
}

14
src/main/java/com/qs/serve/modules/oms/mapper/OmsOrderMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.oms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.oms.entity.OmsOrder;
/**
* 订单 Mapper
* @author YenHex
* @date 2022-10-14
*/
public interface OmsOrderMapper extends BaseMapper<OmsOrder> {
}

14
src/main/java/com/qs/serve/modules/oms/mapper/OmsShoppingCartMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.oms.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.oms.entity.OmsShoppingCart;
/**
* 购物车 Mapper
* @author YenHex
* @date 2022-10-14
*/
public interface OmsShoppingCartMapper extends BaseMapper<OmsShoppingCart> {
}

14
src/main/java/com/qs/serve/modules/oms/service/OmsOrderItemService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.oms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
/**
* 订单明细 服务接口
* @author YenHex
* @date 2022-10-14
*/
public interface OmsOrderItemService extends IService<OmsOrderItem> {
}

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

@ -0,0 +1,23 @@
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.OmsConfirmOrderBo;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderVo;
/**
* 订单 服务接口
* @author YenHex
* @date 2022-10-14
*/
public interface OmsOrderService extends IService<OmsOrder> {
/**
* 创建确认订单
* @param confirmOrder
* @return
*/
OmsConfirmOrderVo generateConfirmOrder(OmsConfirmOrderBo confirmOrder);
}

18
src/main/java/com/qs/serve/modules/oms/service/OmsShoppingCartService.java

@ -0,0 +1,18 @@
package com.qs.serve.modules.oms.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.oms.entity.OmsShoppingCart;
import java.util.List;
/**
* 购物车 服务接口
* @author YenHex
* @date 2022-10-14
*/
public interface OmsShoppingCartService extends IService<OmsShoppingCart> {
List<OmsShoppingCart> listByIds(List<Long> ids,Long supplierId);
}

22
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderItemServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.oms.entity.OmsOrderItem;
import com.qs.serve.modules.oms.service.OmsOrderItemService;
import com.qs.serve.modules.oms.mapper.OmsOrderItemMapper;
/**
* 订单明细 服务实现类
* @author YenHex
* @since 2022-10-14
*/
@Slf4j
@Service
@AllArgsConstructor
public class OmsOrderItemServiceImpl extends ServiceImpl<OmsOrderItemMapper,OmsOrderItem> implements OmsOrderItemService {
}

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

@ -0,0 +1,39 @@
package com.qs.serve.modules.oms.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.modules.oms.entity.OmsShoppingCart;
import com.qs.serve.modules.oms.entity.bo.OmsConfirmOrderBo;
import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderVo;
import com.qs.serve.modules.oms.service.OmsShoppingCartService;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.oms.entity.OmsOrder;
import com.qs.serve.modules.oms.service.OmsOrderService;
import com.qs.serve.modules.oms.mapper.OmsOrderMapper;
import java.util.List;
/**
* 订单 服务实现类
* @author YenHex
* @since 2022-10-14
*/
@Slf4j
@Service
@AllArgsConstructor
public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> implements OmsOrderService {
private OmsShoppingCartService omsShoppingCartService;
@Override
public OmsConfirmOrderVo generateConfirmOrder(OmsConfirmOrderBo confirmOrder) {
List<OmsShoppingCart> shoppingCarts = omsShoppingCartService.listByIds(confirmOrder.getShoppingCartIds(),confirmOrder.getSupplierId());
//检验库存
//计算供应商折扣
//计算是否有活动优惠
return null;
}
}

33
src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java

@ -0,0 +1,33 @@
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 lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.oms.entity.OmsShoppingCart;
import com.qs.serve.modules.oms.service.OmsShoppingCartService;
import com.qs.serve.modules.oms.mapper.OmsShoppingCartMapper;
import java.util.List;
/**
* 购物车 服务实现类
* @author YenHex
* @since 2022-10-14
*/
@Slf4j
@Service
@AllArgsConstructor
public class OmsShoppingCartServiceImpl extends ServiceImpl<OmsShoppingCartMapper,OmsShoppingCart> implements OmsShoppingCartService {
@Override
public List<OmsShoppingCart> listByIds(List<Long> ids, Long supplierId) {
LambdaQueryWrapper<OmsShoppingCart> lqw = new LambdaQueryWrapper<>();
lqw.in(OmsShoppingCart::getId,ids);
lqw.eq(OmsShoppingCart::getSupplierId,supplierId);
return this.list(lqw);
}
}

2
src/main/java/com/qs/serve/modules/wx/api/WxSvcUserApi.java

@ -43,7 +43,7 @@ public class WxSvcUserApi {
*/
@GetMapping("/info")
public R<?> info(){
WxUser wxUser = wxUserService.getCurrentWxUser();
WxUser wxUser = wxUserService.getCurrentWxUser(false,true);
return R.ok(wxUser);
}

6
src/main/java/com/qs/serve/modules/wx/service/WxUserService.java

@ -13,11 +13,15 @@ import java.util.List;
*/
public interface WxUserService extends IService<WxUser> {
WxUser getCurrentWxUser();
WxUser getCurrentWxUser(boolean filterZero);
/**
* 获取当前微信用户
* @param filterZero
* @param updateSub
* @return
*/
WxUser getCurrentWxUser();
WxUser getCurrentWxUser(boolean filterZero,boolean updateSub);
void syncSubscribe();

32
src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.qs.serve.common.framework.security.model.LoginUser;
import com.qs.serve.common.framework.security.model.LoginUserType;
import com.qs.serve.common.model.consts.GySysConst;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.HttpCode;
import com.qs.serve.common.util.Assert;
import com.qs.serve.common.util.AuthContextUtils;
@ -87,6 +88,16 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUser> impleme
@Override
public WxUser getCurrentWxUser() {
return this.getCurrentWxUser(false);
}
@Override
public WxUser getCurrentWxUser(boolean filterZero) {
return this.getCurrentWxUser(filterZero,false);
}
@Override
public WxUser getCurrentWxUser(boolean filterZero, boolean updateSub) {
LoginUser loginUser = AuthContextUtils.getLoginUser();
if(loginUser.getTypeFlag().equals(LoginUserType.APP_USER)){
WxUser wxUser = getById(loginUser.getUserId());
@ -97,14 +108,19 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUser> impleme
return wxUser;
}
String appId = AuthContextUtils.getAppId();
try {
WxMpService wxMpService = wxMpConfig.wxMpService().switchoverTo(appId);
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(wxUser.getOpenId(), GySysConst.LANG_ZH_CN);
wxUser.setSubscribe(wxMpUser.getSubscribe()?1:0);
wxUser.setSubscribeScene(wxMpUser.getSubscribeScene());
wxUser.setTagidList(JsonUtil.objectToJson(wxMpUser.getTagIds()));
} catch (WxErrorException e) {
e.printStackTrace();
if(updateSub){
try {
WxMpService wxMpService = wxMpConfig.wxMpService().switchoverTo(appId);
WxMpUser wxMpUser = wxMpService.getUserService().userInfo(wxUser.getOpenId(), GySysConst.LANG_ZH_CN);
wxUser.setSubscribe(wxMpUser.getSubscribe()?1:0);
wxUser.setSubscribeScene(wxMpUser.getSubscribeScene());
wxUser.setTagidList(JsonUtil.objectToJson(wxMpUser.getTagIds()));
} catch (WxErrorException e) {
e.printStackTrace();
}
}
if(filterZero && (wxUser.getSysUserId()==null||wxUser.getSysUserId().equals("0"))){
return null;
}
return wxUser;
}

62
src/main/resources/mapper/bms/BmsSkuSupplierMapper.xml

@ -0,0 +1,62 @@
<?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.bms.mapper.BmsSkuSupplierMapper">
<resultMap id="bmsSkuSupplierMap" type="com.qs.serve.modules.bms.entity.BmsSkuSupplier" >
<result property="id" column="id"/>
<result property="spuId" column="spu_id"/>
<result property="skuId" column="sku_id"/>
<result property="supplierId" column="supplier_id"/>
<result property="banStatus" column="ban_status"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="tenantId" column="tenant_id"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<sql id="bmsSkuSupplierSql">
bms_sku_supplier.`id`,
bms_sku_supplier.`spu_id`,
bms_sku_supplier.`sku_id`,
bms_sku_supplier.`supplier_id`,
bms_sku_supplier.`ban_status`,
bms_sku_supplier.`create_time`,
bms_sku_supplier.`create_by`,
bms_sku_supplier.`update_time`,
bms_sku_supplier.`update_by`,
bms_sku_supplier.`tenant_id`,
bms_sku_supplier.`del_flag` </sql>
<select id="selectList2" parameterType="com.qs.serve.modules.bms.entity.BmsSkuSupplier" resultMap="bmsSkuSupplierMap">
SELECT
`goods_sku`.spec_infos AS specInfos,
`goods_sku`.`sku_code` AS skuCode,
`goods_spu`.`name` AS spuTitle,
`goods_spu`.spu_code AS spuCode,
`bms_supplier`.`name` AS supplierName,
`bms_supplier`.`code` AS supplierCode,
<include refid="bmsSkuSupplierSql"/>
FROM `bms_sku_supplier` `bms_sku_supplier`
LEFT JOIN `goods_sku` `goods_sku` ON `bms_sku_supplier`.sku_id = `goods_sku`.`id`
LEFT JOIN `goods_spu` `goods_spu` ON `bms_sku_supplier`.spu_id = `goods_spu`.id
LEFT JOIN `bms_supplier` `bms_supplier` ON `bms_sku_supplier`.supplier_id = `bms_supplier`.`id`;
<where>
<if test="query.id != null"> and `bms_sku_supplier`.`id` = #{query.id}</if>
<if test="query.spuId != null"> and `bms_sku_supplier`.`spu_id` = #{query.spuId}</if>
<if test="query.skuId != null"> and `bms_sku_supplier`.`sku_id` = #{query.skuId}</if>
<if test="query.supplierId != null"> and `bms_sku_supplier`.`supplier_id` = #{query.supplierId}</if>
<if test="query.banStatus != null"> and `bms_sku_supplier`.`ban_status` = #{query.banStatus}</if>
<if test="query.createTime != null"> and `bms_sku_supplier`.`create_time` = #{query.createTime}</if>
<if test="query.createBy != null and query.createBy != ''"> and `bms_sku_supplier`.`create_by` = #{query.createBy}</if>
<if test="query.updateTime != null"> and `bms_sku_supplier`.`update_time` = #{query.updateTime}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `bms_sku_supplier`.`update_by` = #{query.updateBy}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `bms_sku_supplier`.`tenant_id` = #{query.tenantId}</if>
<if test="query.delFlag != null"> and `bms_sku_supplier`.`del_flag` = #{query.delFlag}</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save