diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/conroller/OrderCommentController.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/conroller/OrderCommentController.java index 248f88aa..4b17e5bc 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/conroller/OrderCommentController.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/conroller/OrderCommentController.java @@ -78,7 +78,7 @@ public class OrderCommentController { * @param inputObject 入参以及用户信息等获取对象 * @param outputObject 出参以及提示信息的返回值对象 */ - @ApiOperation(id = "queryOrderCommentPageList", value = "分页查询商品订单评价信息", method = "POST", allUse = "2") + @ApiOperation(id = "queryOrderCommentPageList", value = "分页查询商品订单评价信息", method = "POST", allUse = "0") @ApiImplicitParams(classBean = CommonPageInfo.class) @RequestMapping("/post/OrderCommentController/queryOrderCommentPageList") public void queryOrderCommentPageList(InputObject inputObject, OutputObject outputObject) { diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/entity/OrderItem.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/entity/OrderItem.java index b1c31246..3971b49e 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/entity/OrderItem.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/entity/OrderItem.java @@ -74,7 +74,7 @@ public class OrderItem extends OperatorUserInfo { private Integer count; @TableField("comment_state") - @Property(value = "是否评价",enumClass = WhetherEnum.class) + @Property(value = "是否评价", enumClass = WhetherEnum.class) private Integer commentState; @TableField("price") diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/enums/ShopOrderState.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/enums/ShopOrderState.java index 5382a36f..03c74a80 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/enums/ShopOrderState.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/enums/ShopOrderState.java @@ -40,7 +40,8 @@ public enum ShopOrderState implements SkyeyeEnumClass { SALESRETURNED(15, "已退货", true, false), EXCHANGEING(16, "换货中", true, false), EXCHANGED(17, "已换货", true, false), - PARTIALLYDONE(18,"部分完成",true,false); + PARTIALLYDONE(18,"部分完成",true,false), + PARTIALEVALUATION(19,"部分评价",true,false); private Integer key; diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/OrderService.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/OrderService.java index 8be9e4fe..bc788b07 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/OrderService.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/OrderService.java @@ -39,4 +39,6 @@ public interface OrderService extends SkyeyeBusinessService { void setOrderCancle(String orderId); void updateOrderItemState(InputObject inputObject, OutputObject outputObject); + + void updateOrderState(String orderId, Integer partiallydoneKey); } diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderCommentServiceImpl.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderCommentServiceImpl.java index 0dc4e333..0e5e378e 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderCommentServiceImpl.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderCommentServiceImpl.java @@ -28,6 +28,7 @@ import com.skyeye.order.entity.OrderComment; import com.skyeye.order.entity.OrderItem; import com.skyeye.order.enums.OrderCommentType; import com.skyeye.order.enums.ShopOrderCommentState; +import com.skyeye.order.enums.ShopOrderState; import com.skyeye.order.service.OrderCommentService; import com.skyeye.order.service.OrderItemService; import com.skyeye.order.service.OrderService; @@ -94,6 +95,9 @@ public class OrderCommentServiceImpl extends SkyeyeBusinessServiceImpl orderItemList = orderItemService.queryListByStateAndOrderId(orderComment.getOrderId(), WhetherEnum.DISABLE_USING.getKey()); - if (CollectionUtil.isNotEmpty(orderItemList)) {// 总订单的评价状态修改 - orderService.updateCommonState(orderComment.getOrderId(), ShopOrderCommentState.PORTION.getKey()); - } else { + boolean allMatch = orderItemList.stream() + .allMatch(Orderitem -> Orderitem.getCommentState() == WhetherEnum.ENABLE_USING.getKey()); + if (allMatch) { orderService.updateCommonState(orderComment.getOrderId(), ShopOrderCommentState.FINISHED.getKey()); + orderService.updateOrderState(orderComment.getOrderId(), ShopOrderState.EVALUATED.getKey()); + } else { + orderService.updateCommonState(orderComment.getOrderId(), ShopOrderCommentState.PORTION.getKey()); + orderService.updateOrderState(orderComment.getOrderId(), ShopOrderState.PARTIALEVALUATION.getKey()); } } } @@ -162,6 +170,7 @@ public class OrderCommentServiceImpl extends SkyeyeBusinessServiceImpl getOrderCommentListByType(String typeId, Integer type,String objectId) { + private List getOrderCommentListByType(String typeId, Integer type, String objectId) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(MybatisPlusUtil.toColumns(OrderComment::getType), type) .and(wrap -> { @@ -214,9 +223,9 @@ public class OrderCommentServiceImpl extends SkyeyeBusinessServiceImpl customerFirst = getOrderCommentListByType(typeId, OrderCommentType.CUSTOMERFiRST.getKey(),objectId); - List customerLater = getOrderCommentListByType(typeId, OrderCommentType.CUSTOMERLATER.getKey(),objectId); - List merchantReply = getOrderCommentListByType(typeId, OrderCommentType.MERCHANT.getKey(),objectId); + List customerFirst = getOrderCommentListByType(typeId, OrderCommentType.CUSTOMERFiRST.getKey(), objectId); + List customerLater = getOrderCommentListByType(typeId, OrderCommentType.CUSTOMERLATER.getKey(), objectId); + List merchantReply = getOrderCommentListByType(typeId, OrderCommentType.MERCHANT.getKey(), objectId); if (CollectionUtil.isEmpty(customerFirst)) { return; } diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderItemServiceImpl.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderItemServiceImpl.java index 85eaccdf..a0b39bd8 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderItemServiceImpl.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderItemServiceImpl.java @@ -118,7 +118,7 @@ public class OrderItemServiceImpl extends SkyeyeBusinessServiceImpl updateWrapper = new UpdateWrapper<>(); updateWrapper.eq(CommonConstants.ID, id) .set(MybatisPlusUtil.toColumns(OrderItem::getCommentState), WhetherEnum.ENABLE_USING.getKey()); @@ -135,7 +135,7 @@ public class OrderItemServiceImpl extends SkyeyeBusinessServiceImpl updateWrapper = new UpdateWrapper<>(); diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderServiceImpl.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderServiceImpl.java index ee9e0cec..5b819106 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderServiceImpl.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/order/service/impl/OrderServiceImpl.java @@ -13,8 +13,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; +import com.google.common.base.Joiner; import com.skyeye.annotation.service.SkyeyeService; import com.skyeye.base.business.service.impl.SkyeyeBusinessServiceImpl; +import com.skyeye.common.constans.CommonCharConstants; import com.skyeye.common.constans.CommonConstants; import com.skyeye.common.constans.CommonNumConstants; import com.skyeye.common.constans.QuartzConstants; @@ -31,8 +33,6 @@ import com.skyeye.coupon.enums.PromotionDiscountType; import com.skyeye.coupon.enums.PromotionMaterialScope; import com.skyeye.coupon.service.CouponUseMaterialService; import com.skyeye.coupon.service.CouponUseService; -import com.skyeye.erp.service.IMaterialNormsService; -import com.skyeye.erp.service.IMaterialService; import com.skyeye.eve.rest.quartz.SysQuartzMation; import com.skyeye.eve.service.IAreaService; import com.skyeye.eve.service.IQuartzService; @@ -47,6 +47,7 @@ import com.skyeye.order.enums.ShopOrderState; import com.skyeye.order.service.OrderItemService; import com.skyeye.order.service.OrderService; import com.skyeye.rest.pay.service.IPayService; +import com.skyeye.rest.shopmaterialnorms.sevice.IShopMaterialNormsService; import com.skyeye.store.entity.ShopAddress; import com.skyeye.store.service.ShopAddressService; import com.skyeye.store.service.ShopTradeCartService; @@ -79,10 +80,7 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl private IAreaService iAreaService; @Autowired - private IMaterialService iMaterialService; - - @Autowired - private IMaterialNormsService iMaterialNormsService; + private IShopMaterialNormsService iShopMaterialNormsService; @Autowired private CouponUseService couponUseService; @@ -134,17 +132,21 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl checkAndSetVariable(order); // 活动信息及积分操作方法 checkAndSetActive(order); - refreshCache(order.getId()); } private void checkAndSetItemCouponUse(Order order) {// 子单的优惠券操作 List orderItemList = order.getOrderItemList(); // 设置商品信息、商品规格信息和优惠券信息 - iMaterialNormsService.setDataMation(orderItemList, OrderItem::getNormsId); - iMaterialService.setDataMation(orderItemList, OrderItem::getMaterialId); + List normsIdList = orderItemList.stream().map(OrderItem::getNormsId).collect(Collectors.toList()); + List> normsListMap = iShopMaterialNormsService.queryShopMaterialByNormsIdList(Joiner.on(CommonCharConstants.COMMA_MARK).join(normsIdList)); + Map normsPriceMap = normsListMap.stream() + .collect(Collectors.toMap(map -> map.get("normsId").toString(), map -> map.get("salePrice").toString())); for (OrderItem orderItem : orderItemList) {// 计算每一个子单的总价 + if (!normsPriceMap.containsKey(orderItem.getNormsId())) { + throw new CustomException("商城不存在normsId: " + orderItem.getNormsId()); + } // 获取子单单价 元 -> 分 - String salePrice = CalculationUtil.multiply(orderItem.getNormsMation().get("salePrice").toString(), "100"); + String salePrice = CalculationUtil.multiply(normsPriceMap.get(orderItem.getNormsId()), "100"); // 设置子单总价 String price = CalculationUtil.multiply(String.valueOf(orderItem.getCount()), salePrice, CommonNumConstants.NUM_SIX); orderItem.setPrice(price); @@ -290,7 +292,9 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl ShopOrderState.SIGN.getKey(), // 已签收 ShopOrderState.COMPLETED.getKey(), // 已完成 ShopOrderState.UNEVALUATE.getKey(), // 待评价 - ShopOrderState.EVALUATED.getKey()});// 已评价 + ShopOrderState.EVALUATED.getKey(),// 已评价 + ShopOrderState.PARTIALLYDONE.getKey(),//部分完成 + ShopOrderState.PARTIALEVALUATION.getKey()});//部分评价 break; case "4":// 已取消 stateList = Arrays.asList(new Integer[]{ShopOrderState.CANCELED.getKey()}); @@ -338,12 +342,14 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl CommonPageInfo commonPageInfo = inputObject.getParams(CommonPageInfo.class); Page pages = PageHelper.startPage(commonPageInfo.getPage(), commonPageInfo.getLimit()); List stateList = new ArrayList<>(); - switch (commonPageInfo.getType()) { + switch (StrUtil.isEmpty(commonPageInfo.getType()) ? "0" : commonPageInfo.getType()) { + // todo 未提交、已提交和支付失败三个枚举未现 case "1": // 未支付 stateList = Arrays.asList(new Integer[]{ShopOrderState.UNPAID.getKey()}); break; case "2": // 待收货 stateList = Arrays.asList(new Integer[]{ + ShopOrderState.UNDELIVERED.getKey(),// 待发货 ShopOrderState.DELIVERED.getKey(), // 已发货 ShopOrderState.TRANSPORTING.getKey()});//运输中 @@ -353,8 +359,9 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl ShopOrderState.SIGN.getKey(), // 已签收 ShopOrderState.COMPLETED.getKey(), // 已完成 ShopOrderState.UNEVALUATE.getKey(), // 待评价 - ShopOrderState.EVALUATED.getKey()});// 已评价 - ShopOrderState.PARTIALLYDONE.getKey();//部分完成 + ShopOrderState.EVALUATED.getKey(),// 已评价 + ShopOrderState.PARTIALLYDONE.getKey(),//部分完成 + ShopOrderState.PARTIALEVALUATION.getKey()});//部分评价 break; case "4":// 已取消 stateList = Arrays.asList(new Integer[]{ShopOrderState.CANCELED.getKey()}); @@ -439,6 +446,7 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl iAreaService.setDataMation(order, Order::getTownshipId); shopAddressService.setDataMation(order, Order::getAddressId); pennyToYuan(order);// 分 -> 元 + refreshCache(id); return order; } @@ -605,7 +613,7 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl orderItemService.UpdateOrderItemState(orderItemId); List orderItemList = orderItemService.queryOrderItemByParentId(orderId); boolean allTwo = orderItemList.stream().map(OrderItem::getOrderItemState) - .allMatch(orderItemState -> orderItemState == CommonNumConstants.NUM_TWO); + .allMatch(orderItemState -> orderItemState == CommonNumConstants.NUM_TWO); if (allTwo) { Integer partiallydoneKey = ShopOrderState.COMPLETED.getKey(); updateOrderState(orderId, partiallydoneKey); @@ -615,7 +623,8 @@ public class OrderServiceImpl extends SkyeyeBusinessServiceImpl } } - private void updateOrderState(String orderId, Integer partiallydoneKey) { + @Override + public void updateOrderState(String orderId, Integer partiallydoneKey) { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq(CommonConstants.ID, orderId); updateWrapper.set(MybatisPlusUtil.toColumns(Order::getState), partiallydoneKey); diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java index 3f05f0f3..a2e04a3c 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/entity/ShopTradeCart.java @@ -65,6 +65,6 @@ public class ShopTradeCart extends OperatorUserInfo { private Integer count; @TableField("selected") - @ApiModelProperty(value = "是否选中", required = "required,num",enumClass = WhetherEnum.class) + @ApiModelProperty(value = "是否选中", required = "required,num", enumClass = WhetherEnum.class) private Integer selected; } diff --git a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java index 7200f731..b4a703ff 100644 --- a/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java +++ b/skyeye-shop/shop-store/src/main/java/com/skyeye/store/service/impl/ShopTradeCartServiceImpl.java @@ -118,6 +118,7 @@ public class ShopTradeCartServiceImpl extends SkyeyeBusinessServiceImpl queryWrapper = new QueryWrapper<>(); queryWrapper.eq(MybatisPlusUtil.toColumns(ShopTradeCart::getMaterialId), shopTradeCart.getMaterialId()); queryWrapper.eq(MybatisPlusUtil.toColumns(ShopTradeCart::getNormsId), shopTradeCart.getNormsId()); + queryWrapper.eq(CommonConstants.ID,userId); ShopTradeCart one = getOne(queryWrapper); if (ObjectUtil.isNotEmpty(one)) { shopTradeCart.setId(one.getId());