diff --git a/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java b/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java index a6cbfd55..02fa689e 100644 --- a/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java +++ b/src/main/java/com/qs/serve/modules/biz/entity/BizVisit.java @@ -22,7 +22,7 @@ import javax.validation.constraints.NotBlank; * @since 2022-10-26 */ @Data -@TableName("biz_visit") +@TableName(value = "biz_visit",autoResultMap = true) public class BizVisit implements Serializable { private static final long serialVersionUID = 1L; diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index c558ea8d..d196915b 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java @@ -146,7 +146,8 @@ public class BmsSupplierController { addIds = supplierIds; } if(CollectionUtil.isNotEmpty(addIds)){ - SysUser user = sysUserService.getById(param.getUserId()); BmsSupplier bmsSupplier = new BmsSupplier(); + SysUser user = sysUserService.getById(param.getUserId()); + BmsSupplier bmsSupplier = new BmsSupplier(); LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>(); lqw2.in(BmsSupplier::getId,addIds); bmsSupplier.setUserCode(user.getCode()); @@ -168,13 +169,12 @@ public class BmsSupplierController { bmsSupplierMapper.removeRelateUserInfo(param.getSupplierId()); }else { SysUser user = sysUserService.getById(param.getUserId()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); BmsSupplier bmsSupplier = new BmsSupplier(); bmsSupplier.setId(param.getSupplierId().toString()); bmsSupplier.setUserCode(user.getCode()); bmsSupplier.setUserId(user.getId()); bmsSupplier.setUserName(user.getName()); - bmsSupplierService.update(bmsSupplier,lqw); + bmsSupplierService.updateById(bmsSupplier); } return R.ok(); } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java index dd8fb44f..7849677a 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/api/BmsSupplierAddressApi.java @@ -81,6 +81,7 @@ public class BmsSupplierAddressApi { BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getById(param.getId()); BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); if(supplierAddress.getSupplierId().toString().equals(supplier.getId())){ + param.setDefaultFlag(null); boolean result = bmsSupplierAddressService.updateById(param); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionBatchBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionBatchBo.java index e8dfc385..697fff40 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionBatchBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsRegionBatchBo.java @@ -18,7 +18,6 @@ public class BmsRegionBatchBo { @Data public static class BmsRegionBo{ /** id */ - @NotNull(message = "id不能为空") private String id; /** 名称 */ diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java index 553bc934..ca638f5c 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsBrandController.java @@ -94,7 +94,7 @@ public class GoodsBrandController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.GOODS, title = "品牌", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:brand:delete')") - public R deleteById(@PathVariable("id") String id){ + public R deleteById(@PathVariable("id") Long id){ boolean result = goodsBrandService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java index 6d206bd3..0f87bcdc 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsCategoryController.java @@ -130,7 +130,7 @@ public class GoodsCategoryController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.GOODS, title = "分类", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:category:delete')") - public R deleteById(@PathVariable("id") String id){ + public R deleteById(@PathVariable("id") Long id){ boolean result = goodsCategoryService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java index 34c2a861..58bc34b6 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSeriesController.java @@ -94,7 +94,7 @@ public class GoodsSeriesController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.GOODS, title = "系列", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:series:delete')") - public R deleteById(@PathVariable("id") String id){ + public R deleteById(@PathVariable("id") Long id){ boolean result = goodsSeriesService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java index 16fe3f54..a2cccf5a 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java @@ -41,7 +41,7 @@ public class GoodsSkuController { * @param param * @return */ - @GetMapping("/page") + //@GetMapping("/page") @PreAuthorize("hasRole('goods:sku:query')") public R> getPage(GoodsSku param){ PageUtil.startPage(); @@ -54,7 +54,7 @@ public class GoodsSkuController { * @param param * @return */ - @GetMapping("/page") + @GetMapping("/list") @PreAuthorize("hasRole('goods:sku:query')") public R> getList(GoodsSku param){ List list = goodsSkuService.selectSkuVo(param); @@ -95,7 +95,7 @@ public class GoodsSkuController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.GOODS, title = "sku", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:sku:delete')") - public R deleteById(@PathVariable("id") String id){ + public R deleteById(@PathVariable("id") Long id){ boolean result = goodsSkuService.removeById(id); if(result){ //删除商品规格值 diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpecValueController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpecValueController.java index f85aa19b..9ef00c91 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpecValueController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpecValueController.java @@ -128,7 +128,7 @@ public class GoodsSpecValueController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.GOODS, title = "规格值", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:specValue:delete')") - public R deleteById(@PathVariable("id") String id){ + public R deleteById(@PathVariable("id") Long id){ //含有正在使用的商品无法删除 LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(GoodsSkuSpecValue::getSpecValueId,id); diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index b5c3920f..2ea6aaa0 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -92,7 +92,7 @@ public class GoodsSpuController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.GOODS, title = "spu", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:spu:delete')") - public R deleteById(@PathVariable("id") String id){ + public R deleteById(@PathVariable("id") Long id){ //todo 拦截删除商品 boolean result = goodsSpuService.removeById(id); if(result){ @@ -122,8 +122,7 @@ public class GoodsSpuController { @PreAuthorize("hasRole('goods:spu:insert')") public R saveBatchTasteSpu(@RequestBody GoodsSpuBatchTasteBo param){ ValidateTools.valid(param.getTasteProducts()); - goodsSpuService.saveBatchTasteSpu(param); - return R.ok(); + return R.ok(goodsSpuService.saveBatchTasteSpu(param)); } } diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java index a476b7bb..4ce5d9a6 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsUnitController.java @@ -94,7 +94,7 @@ public class GoodsUnitController { @DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.GOODS, title = "单位", biz = BizType.DELETE) @PreAuthorize("hasRole('goods:unit:delete')") - public R deleteById(@PathVariable("id") String id){ + public R deleteById(@PathVariable("id") Long id){ boolean result = goodsUnitService.removeById(id); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodSkuVo.java b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodSkuVo.java index 3f6d1e60..adac3f99 100644 --- a/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodSkuVo.java +++ b/src/main/java/com/qs/serve/modules/goods/entity/vo/GoodSkuVo.java @@ -12,6 +12,8 @@ public class GoodSkuVo extends GoodsSku { private String name; + private String spuCode; + private Long spuId; /** 是否上架(1是 0否) */ diff --git a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java index c3918d99..4cafae52 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderItemController.java @@ -32,17 +32,17 @@ public class OmsOrderItemController { private OmsOrderItemService omsOrderItemService; /** - * 翻页查询 - * @param param + * 查询订单项 + * @param orderId * @return */ - @GetMapping("/page") + @GetMapping("/listByOrderId/{orderId}") @PreAuthorize("hasRole('oms:orderItem:query')") - public R> getPage(OmsOrderItem param){ - PageUtil.startPage(); - LambdaQueryWrapper orderItemWrapper = new LambdaQueryWrapper<>(param); - List list = omsOrderItemService.list(orderItemWrapper); - return R.byPageHelperList(list); + public R> listByOrderId(@PathVariable("orderId")Long orderId){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(OmsOrderItem::getOrderId,orderId); + List list = omsOrderItemService.list(lqw); + return R.ok(list); } /** @@ -58,46 +58,5 @@ public class OmsOrderItemController { 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); - } - } 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 d98a8c90..907a8863 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 @@ -10,12 +10,13 @@ import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.PageUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.oms.entity.OmsOrder; -import com.qs.serve.modules.oms.entity.bo.OmsConfirmOrderBo; +import com.qs.serve.modules.oms.entity.OmsOrderItem; +import com.qs.serve.modules.oms.entity.bo.OmsOrderBo; 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; 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; @@ -33,15 +34,26 @@ import java.util.List; public class OmsOrderApi { private OmsOrderService omsOrderService; + private OmsOrderItemService omsOrderItemService; /** - * 创建确认订单 + * 确认订单 * @param confirmOrder * @return */ @PostMapping("/generateConfirmOrder") - public R generateConfirmOrder(@RequestBody @Valid OmsConfirmOrderBo confirmOrder){ - return R.ok(omsOrderService.generateConfirmOrder(confirmOrder)); + public R confirmOrder(@RequestBody @Valid OmsOrderBo confirmOrder){ + return R.ok(omsOrderService.confirmOrder(confirmOrder)); + } + + /** + * 创建订单 + * @param createOrderBo + * @return + */ + @PostMapping("/createOrder") + public R createOrder(@RequestBody @Valid OmsOrderBo omsOrderBo){ + return R.ok(omsOrderService.createOrder(omsOrderBo)); } /** @@ -70,6 +82,10 @@ public class OmsOrderApi { BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); OmsOrder omsOrder = omsOrderService.getById(id); if(omsOrder.getSupplierId().toString().equals(supplier.getId())){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(OmsOrderItem::getOrderId,id); + List list = omsOrderItemService.list(lqw); + omsOrder.setOrderItems(list); return R.ok(omsOrder); } return R.error(); @@ -80,7 +96,7 @@ public class OmsOrderApi { * @param id * @return */ - @DeleteMapping("/deleteById/{id}") + //@DeleteMapping("/deleteById/{id}") @SysLog(module = SystemModule.BASE, title = "订单", biz = BizType.DELETE) public R deleteById(@PathVariable("id") String id){ BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); 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 037352bf..2b1f7b5d 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 @@ -2,6 +2,7 @@ package com.qs.serve.modules.oms.entity; import java.time.LocalDateTime; import java.io.Serializable; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; @@ -140,5 +141,9 @@ public class OmsOrder implements Serializable { @JsonProperty private Boolean delFlag; + /** 订单明细项 */ + @TableField(exist = false) + private List orderItems; + } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java index 773f8bb4..1b387b46 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsShoppingCart.java @@ -113,5 +113,10 @@ public class OmsShoppingCart implements Serializable { @TableField(exist = false) private String errMessage; + /** 异常信息 */ + @JsonIgnore + @TableField(exist = false) + private BigDecimal itemSaleAmount; + } diff --git a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsConfirmOrderBo.java b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsConfirmOrderBo.java deleted file mode 100644 index 3137996c..00000000 --- a/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsConfirmOrderBo.java +++ /dev/null @@ -1,40 +0,0 @@ -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 { - - /** - * 订单类型:0->普通订单; - */ - @NotNull - private Integer orderType; - - /** - * 立即购买或非普通订单 - */ - private Long skuId; - - /** - * 数量(立即购买或非普通订单) - */ - private Integer quantity; - - /** - * 购物车ID(购物车方式下单) - */ - private List shoppingCartIds; - - /** - * todo 促销活动id列表 - */ - private List promotionIds; - -} 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 new file mode 100644 index 00000000..474f4423 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/oms/entity/bo/OmsOrderBo.java @@ -0,0 +1,47 @@ +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 OmsOrderBo { + + /** 订单类型:0->普通订单; */ + @NotNull + private Integer orderType; + + /** 立即购买或非普通订单 */ + private Long skuId; + + /** 数量(立即购买或非普通订单) */ + private Integer quantity; + + /** 购物车ID(购物车方式下单) */ + private List shoppingCartIds; + + /** todo 促销活动id列表 */ + private List promotionIds; + + /** 创建订单参数(确认订单时可不传) */ + private CreateOrderParam createOrderParam; + + @Data + public static class CreateOrderParam{ + + /** 发票类型:0->普通发票;1->增值税发票; */ + private Integer billType; + + /** 是否加急 */ + private Integer urgentFlag; + + /** 备注 */ + private String remark; + + } + +} diff --git a/src/main/java/com/qs/serve/modules/oms/entity/dto/ShoppingCartsCheckResult.java b/src/main/java/com/qs/serve/modules/oms/entity/dto/ShoppingCartsCheckResult.java index 7086a7de..dc46a5b0 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/dto/ShoppingCartsCheckResult.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/dto/ShoppingCartsCheckResult.java @@ -1,8 +1,17 @@ package com.qs.serve.modules.oms.entity.dto; +import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; +import lombok.Data; + +import java.util.List; + /** * @author YenHex * @since 2022/10/26 */ +@Data public class ShoppingCartsCheckResult { + + private List goodsSkus; + } 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 c42f05bd..c9aa2156 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 @@ -1,10 +1,12 @@ package com.qs.serve.modules.oms.entity.vo; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.oms.entity.OmsShoppingCart; import com.qs.serve.modules.oms.entity.dto.OmsCalcAmount; +import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; import lombok.Data; import java.math.BigDecimal; @@ -17,13 +19,18 @@ import java.util.List; @Data public class OmsConfirmOrderResult { + private BmsSupplier supplier; + /** 购物车列表 */ - private List shoppingCarts; + private List shoppingCarts; /** 默认地址 */ - private Object defaultAddress; + private BmsSupplierAddress defaultAddress; /** 合计信息 */ private OmsCalcAmount amountInfo; + @JsonIgnore + private ShoppingCartsCheckResult cartsCheckResult; + } 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 76ca2d31..320d8563 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 @@ -2,7 +2,7 @@ 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.bo.OmsOrderBo; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; /** @@ -13,11 +13,18 @@ import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; public interface OmsOrderService extends IService { /** - * 创建确认订单 + * 确认订单 * @param confirmOrder * @return */ - OmsConfirmOrderResult generateConfirmOrder(OmsConfirmOrderBo confirmOrder); + OmsConfirmOrderResult confirmOrder(OmsOrderBo confirmOrder); + + /** + * 创建订单 + * @param omsOrderBo + * @return + */ + OmsConfirmOrderResult createOrder(OmsOrderBo omsOrderBo); } 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 1cd745c3..5ab0a1c9 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 @@ -1,33 +1,35 @@ package com.qs.serve.modules.oms.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.CollectionUtil; -import com.qs.serve.common.util.CopierUtil; import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; -import com.qs.serve.modules.bms.service.BmsRuleMainService; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.oms.entity.OmsShoppingCart; -import com.qs.serve.modules.oms.entity.bo.OmsConfirmOrderBo; +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.dto.OmsCalcAmount; +import com.qs.serve.modules.oms.entity.dto.ShoppingCartsCheckResult; import com.qs.serve.modules.oms.entity.vo.OmsConfirmOrderResult; import com.qs.serve.modules.oms.service.OmsShoppingCartService; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysUserService; 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 org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; /** * 订单 服务实现类 @@ -43,10 +45,11 @@ public class OmsOrderServiceImpl extends ServiceImpl im private GoodsSkuService goodsSkuService; private GoodsSpuService goodsSpuService; private BmsSupplierAddressService bmsSupplierAddressService; + private SysUserService sysUserService; @Override - public OmsConfirmOrderResult generateConfirmOrder(OmsConfirmOrderBo confirmOrder) { + public OmsConfirmOrderResult confirmOrder(OmsOrderBo confirmOrder) { BmsSupplier supplier = AuthContextUtils.getCurrentSupplier(); //购物车 List shoppingCarts; @@ -64,16 +67,61 @@ public class OmsOrderServiceImpl extends ServiceImpl im shoppingCart.setPicUrl(goodsSku.getPicUrl()); shoppingCarts = Arrays.asList(shoppingCart); } - omsShoppingCartService.checkShoppingCarts(supplier,shoppingCarts,true); + ShoppingCartsCheckResult cartsCheckResult = omsShoppingCartService.checkShoppingCarts(supplier,shoppingCarts,true); OmsCalcAmount calcAmount = new OmsCalcAmount(); + BigDecimal totalAmount = BigDecimal.ZERO; + for (OmsShoppingCart shoppingCart : shoppingCarts) { + BigDecimal salePrice = null; + for (GoodSkuVo goodSkuVo : cartsCheckResult.getGoodsSkus()) { + if(shoppingCart.getSkuId().equals(goodSkuVo.getId())){ + salePrice = goodSkuVo.getSalesPrice(); + break; + } + } + BigDecimal itemPrice = new BigDecimal(shoppingCart.getQuantity()).multiply(salePrice); + shoppingCart.setItemSaleAmount(itemPrice); + totalAmount.add(itemPrice); + } + calcAmount.setTotalAmount(totalAmount); //todo 计算供应商折扣 //todo 计算是否有活动优惠 BmsSupplierAddress supplierAddress = bmsSupplierAddressService.getDefault(Long.parseLong(supplier.getId())); OmsConfirmOrderResult confirmOrderResult = new OmsConfirmOrderResult(); - //confirmOrderResult.setShoppingCarts(shoppingCarts); + confirmOrderResult.setSupplier(supplier); + confirmOrderResult.setShoppingCarts(shoppingCarts); confirmOrderResult.setDefaultAddress(supplierAddress); confirmOrderResult.setAmountInfo(calcAmount); + confirmOrderResult.setCartsCheckResult(cartsCheckResult); return confirmOrderResult; } + + @Override + @Transactional(rollbackFor = Exception.class) + public OmsConfirmOrderResult createOrder(OmsOrderBo omsOrderBo) { + OmsConfirmOrderResult confirmOrder = this.confirmOrder(omsOrderBo); + CreateOrderParam createOrderParam = omsOrderBo.getCreateOrderParam(); + SysUser user = sysUserService.getById(AuthContextUtils.getSysUserId()); + BmsSupplier supplier = confirmOrder.getSupplier(); + BmsSupplierAddress address = confirmOrder.getDefaultAddress(); + List goodSkuVos = confirmOrder.getCartsCheckResult().getGoodsSkus(); + OmsOrder order = new OmsOrder(); + order.setOrderSn(""); + order.setSupplierId(Long.parseLong(supplier.getId())); + order.setSupplierCode(supplier.getCode()); + order.setSupplierName(supplier.getName()); + order.setSupplierAddrId(address.getId()); + order.setUserId(user.getId()); + order.setUserName(user.getName()); + order.setUserCode(user.getCode()); + order.setUserPhone(user.getMobile()); + if(createOrderParam!=null){ + order.setBillType(createOrderParam.getBillType()); + order.setUrgentFlag(createOrderParam.getUrgentFlag()); + } + this.save(order); + + return null; + } + } diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java index bf0fc76a..0638aa36 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsShoppingCartServiceImpl.java @@ -46,7 +46,6 @@ public class OmsShoppingCartServiceImpl extends ServiceImpl shoppingCarts, boolean throwEx){ - ShoppingCartsCheckResult cartsCheckResult = new ShoppingCartsCheckResult(); //校验 List skuIds = shoppingCarts.stream().map(OmsShoppingCart::getSkuId).collect(Collectors.toList()); GoodsSku goodsSku = new GoodsSku(); @@ -88,6 +87,8 @@ public class OmsShoppingCartServiceImpl extends ServiceImpl sysUserSalesList = new ArrayList<>(); if(!userBo.getParentId().equals("0")){ final SysUserSales userSales = sysUserSalesService.getById(pid); - boolean isExist = userBo.getUserIds().stream().filter(StringUtils::hasText).anyMatch(objId->userSales.getPid().equals(objId)); + boolean isExist = false; + if(userSales!=null){ + isExist = userBo.getUserIds().stream().filter(StringUtils::hasText).anyMatch(objId->userSales.getPid().equals(objId)); + } if(isExist&&userBo.getUserIds().size()>1){ return R.error("多节点操作出现递归数据"); } diff --git a/src/main/resources/mapper/goods/GoodsSkuMapper.xml b/src/main/resources/mapper/goods/GoodsSkuMapper.xml index 8832c163..20b2db9d 100644 --- a/src/main/resources/mapper/goods/GoodsSkuMapper.xml +++ b/src/main/resources/mapper/goods/GoodsSkuMapper.xml @@ -85,11 +85,13 @@ +