diff --git a/food-admin/src/main/java/com/zbkj/admin/controller/StoreOrderController.java b/food-admin/src/main/java/com/zbkj/admin/controller/StoreOrderController.java index 583c596..07b0e68 100644 --- a/food-admin/src/main/java/com/zbkj/admin/controller/StoreOrderController.java +++ b/food-admin/src/main/java/com/zbkj/admin/controller/StoreOrderController.java @@ -18,7 +18,9 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 订单表 前端控制器 @@ -85,6 +87,20 @@ public class StoreOrderController { } } + /** + * 订单备货 + */ + @ApiOperation(value = "备货") + @RequestMapping(value = "/prepare", method = RequestMethod.POST) + @PreAuthorize("hasAuthority('admin:order:delete')") + public CommonResult prepare(@RequestParam(value = "ids") String ids) { + List idList = Arrays.stream(ids.split(",")).map(Integer::parseInt).collect(Collectors.toList()); + if (storeOrderService.prepare(idList)) { + return CommonResult.success(); + } + return CommonResult.failed(); + } + /** * 备注订单 */ @@ -92,7 +108,7 @@ public class StoreOrderController { @ApiOperation(value = "备注") @RequestMapping(value = "/mark", method = RequestMethod.POST) public CommonResult mark(@RequestParam String orderNo, @RequestParam String mark) { - if (storeOrderService.mark(orderNo, mark)) { + if (storeOrderService.mark(orderNo, mark, null)) { return CommonResult.success(); } else { return CommonResult.failed(); diff --git a/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java b/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java index ab3edac..b7c276a 100644 --- a/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java +++ b/food-admin/src/main/java/com/zbkj/admin/controller/SystemHelpController.java @@ -14,7 +14,6 @@ import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.Arrays; import java.util.List; @Slf4j diff --git a/food-admin/src/main/resources/application-dev.yml b/food-admin/src/main/resources/application-dev.yml index 2109cba..c60a3f7 100644 --- a/food-admin/src/main/resources/application-dev.yml +++ b/food-admin/src/main/resources/application-dev.yml @@ -1,6 +1,6 @@ # CRMEB 相关配置 crmeb: - version: CRMEB-JAVA-KY-v1.3.4 # 当前代码版本 + version: food-v1.0.0 # 当前代码版本 domain: #配合swagger使用 # 待部署域名 wechat-api-url: #请求微信接口中专服务器 wechat-js-api-debug: false #微信js api系列是否开启调试模式 diff --git a/food-common/src/main/java/com/zbkj/common/constants/Constants.java b/food-common/src/main/java/com/zbkj/common/constants/Constants.java index be432c0..7f00c3a 100644 --- a/food-common/src/main/java/com/zbkj/common/constants/Constants.java +++ b/food-common/src/main/java/com/zbkj/common/constants/Constants.java @@ -357,7 +357,7 @@ public class Constants { //订单状态 public static final String ORDER_STATUS_ALL = "all"; //所有 public static final String ORDER_STATUS_UNPAID = "unPaid"; //未支付 - public static final String ORDER_STATUS_NOT_SHIPPED = "notShipped"; //未发货 + public static final String ORDER_STATUS_NOT_SHIPPED = "notShipped"; //未发货,待备货 public static final String ORDER_STATUS_PREPARE_ING = "prepareIng"; //备货中 public static final String ORDER_STATUS_SPIKE = "spike"; //待收货 public static final String ORDER_STATUS_BARGAIN = "bargain"; //已收货待评价 @@ -373,7 +373,7 @@ public class Constants { public static final String ORDER_STATUS_STR_PREPARE_ING = "备货中"; //未发货 public static final String ORDER_STATUS_STR_SPIKE = "待收货"; //待收货 public static final String ORDER_STATUS_STR_BARGAIN = "待评价"; //已收货待评价 - public static final String ORDER_STATUS_STR_TAKE = "用户已收货"; //用户已收货 + public static final String ORDER_STATUS_STR_TAKE = "订单已收货"; //用户已收货 public static final String ORDER_STATUS_STR_COMPLETE = "交易完成"; //交易完成 public static final String ORDER_STATUS_STR_TOBE_WRITTEN_OFF = "待核销"; //待核销 public static final String ORDER_STATUS_STR_APPLY_REFUNDING = "申请退款"; //申请退款 @@ -411,7 +411,6 @@ public class Constants { public static final String PAY_TYPE_YUE = "yue"; //余额支付 public static final String PAY_TYPE_OFFLINE = "offline"; //线下支付 public static final String PAY_TYPE_ALI_PAY = "alipay"; //支付宝 - public static final String PAY_TYPE_TEA_FRUIT = "fruit"; //茶果支付 //支付客户端类型 public static final String PAY_TYPE_WE_CHAT_FROM_H5 = "weixinh5"; //H5唤起微信支付 @@ -426,7 +425,6 @@ public class Constants { public static final String PAY_TYPE_STR_YUE = "余额支付"; //余额支付 public static final String PAY_TYPE_STR_OFFLINE = "线下支付"; //线下支付 public static final String PAY_TYPE_STR_ALI_PAY = "支付宝支付"; //支付宝 - public static final String PAY_TYPE_STR_TEA_FRUIT = "茶果兑换"; //支付宝 public static final String PAY_TYPE_STR_OTHER = "其他支付"; //其他支付 //需要支付的业务类型 @@ -438,6 +436,7 @@ public class Constants { public static final String ORDER_LOG_REFUND_PRICE = "refund_price"; //退款 public static final String ORDER_LOG_EXPRESS = "express"; //快递 public static final String ORDER_LOG_DELIVERY = "delivery"; //送货 + public static final String ORDER_LOG_PREPARE = "prepare"; //备货 public static final String ORDER_LOG_DELIVERY_GOODS = "delivery_goods"; //送货 public static final String ORDER_LOG_REFUND_REFUSE = "refund_refuse"; //不退款 public static final String ORDER_LOG_REFUND_APPLY = "apply_refund"; // diff --git a/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java b/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java index e33d6c1..cdb50c8 100644 --- a/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/CreateOrderRequest.java @@ -48,7 +48,7 @@ public class CreateOrderRequest implements Serializable { @ApiModelProperty(value = "是否使用积分") // @NotNull(message = "是否使用积分不能为空") - private Boolean useIntegral; + private Boolean useIntegral = false; @ApiModelProperty(value = "订单备注") private String mark; @@ -57,7 +57,6 @@ public class CreateOrderRequest implements Serializable { private String deliveryTime; // 以下为到店自提参数 - @ApiModelProperty(value = "自提点id") private Integer storeId; diff --git a/food-common/src/main/java/com/zbkj/common/request/OrderRefundApplyRequest.java b/food-common/src/main/java/com/zbkj/common/request/OrderRefundApplyRequest.java index 4b656e6..b788c38 100644 --- a/food-common/src/main/java/com/zbkj/common/request/OrderRefundApplyRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/OrderRefundApplyRequest.java @@ -1,6 +1,5 @@ package com.zbkj.common.request; -import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -8,16 +7,9 @@ import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import org.hibernate.validator.constraints.Length; -import javax.validation.constraints.Max; -import javax.validation.constraints.Min; -import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.util.List; -/** - * 添加购物车参数Request对象 - - */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @@ -37,8 +29,8 @@ public class OrderRefundApplyRequest { @Length(max = 255, message = "退款原因不能超过255个字符") private String returnReason; - @ApiModelProperty(value = "退款凭证图片(多个图片请用,(英文逗号)隔开)") - @JsonProperty("return_image") + @ApiModelProperty(value = "退款凭证图片(多个图片请用,(英文逗号)隔开)", required = true) + @NotNull(message = "请上传图片") private String returnImage; @ApiModelProperty(value = "联系人电话", required = true) diff --git a/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java b/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java index 2badbc7..519eab8 100644 --- a/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/PreOrderDetailRequest.java @@ -13,7 +13,7 @@ import lombok.experimental.Accessors; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@ApiModel(value="PreOrderRequest对象", description="预下单详情请求对象") +@ApiModel(value="PreOrderDetailRequest对象", description="PreOrderDetailRequest对象") public class PreOrderDetailRequest { @ApiModelProperty(value = "购物车编号,购物车预下单时必填") diff --git a/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java b/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java index d055c55..4a54dab 100644 --- a/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java +++ b/food-common/src/main/java/com/zbkj/common/request/PreOrderRequest.java @@ -16,7 +16,7 @@ import java.util.List; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@ApiModel(value="PreOrderRequest对象", description="预下单请求对象") +@ApiModel(value="PreOrderRequest对象", description="PreOrderRequest对象") public class PreOrderRequest { @ApiModelProperty(value = "预下单类型(“shoppingCart”:购物车下单,“buyNow”:立即购买,”again“: 再次购买,”video“: 视频号商品下单)") diff --git a/food-common/src/main/java/com/zbkj/common/response/OrderDetailResponse.java b/food-common/src/main/java/com/zbkj/common/response/OrderDetailResponse.java index ed08e2e..b4e4c11 100644 --- a/food-common/src/main/java/com/zbkj/common/response/OrderDetailResponse.java +++ b/food-common/src/main/java/com/zbkj/common/response/OrderDetailResponse.java @@ -51,7 +51,7 @@ public class OrderDetailResponse implements Serializable { @ApiModelProperty(value = "优惠金额") private BigDecimal couponPrice; - @ApiModelProperty(value = "订单状态(0:待发货;1:待收货;2:已收货,待评价;3:已完成;)") + @ApiModelProperty(value = "订单状态(0:待发货(待备货);1:待收货;2:已收货,待评价;3:已完成;4:备货中)") private Integer status; @ApiModelProperty(value = "订单状态") @@ -87,7 +87,7 @@ public class OrderDetailResponse implements Serializable { @ApiModelProperty(value = "门店id") private Integer storeId; - @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提") + @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提,3=骑手配送") private Integer shippingType; @ApiModelProperty(value = "活动类型") diff --git a/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailInfoResponse.java b/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailInfoResponse.java index f625c86..8a5d31a 100644 --- a/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailInfoResponse.java +++ b/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailInfoResponse.java @@ -81,7 +81,7 @@ public class StoreOrderDetailInfoResponse implements Serializable { @ApiModelProperty(value = "创建时间") private Date createTime; - @ApiModelProperty(value = "订单状态(0:待发货;1:待收货;2:已收货,待评价;3:已完成;)") + @ApiModelProperty(value = "订单状态(0:待发货(待备货);1:待收货;2:已收货,待评价;3:已完成;4:备货中)") private Integer status; @ApiModelProperty(value = "0 未退款 1 申请中 2 已退款") @@ -162,7 +162,7 @@ public class StoreOrderDetailInfoResponse implements Serializable { @ApiModelProperty(value = "门店id") private Integer storeId; - @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提") + @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提,3=骑手配送") private Integer shippingType; // @ApiModelProperty(value = "店员id") diff --git a/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailResponse.java b/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailResponse.java index 3d29b83..2459e3e 100644 --- a/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailResponse.java +++ b/food-common/src/main/java/com/zbkj/common/response/StoreOrderDetailResponse.java @@ -26,6 +26,9 @@ public class StoreOrderDetailResponse implements Serializable { private static final long serialVersionUID=1L; + @ApiModelProperty(value = "订单编号") + private Integer id; + @ApiModelProperty(value = "订单号") private String orderId; diff --git a/food-common/src/main/java/com/zbkj/common/response/StoreOrderInfoResponse.java b/food-common/src/main/java/com/zbkj/common/response/StoreOrderInfoResponse.java index 2c79245..e5aaf5b 100644 --- a/food-common/src/main/java/com/zbkj/common/response/StoreOrderInfoResponse.java +++ b/food-common/src/main/java/com/zbkj/common/response/StoreOrderInfoResponse.java @@ -68,12 +68,15 @@ public class StoreOrderInfoResponse implements Serializable { @ApiModelProperty(value = "创建时间") private Date createTime; - @ApiModelProperty(value = "订单状态(-1 : 申请退款 -2 : 退货成功 0:待发货;1:待收货;2:已收货;3:待评价;-1:已退款)") + @ApiModelProperty(value = "订单状态(-1 : 申请退款 -2 : 退货成功 0:待发货(待备货);1:待收货;2:已收货;3:待评价;4:备货中;-1:已退款)") private Integer status; @ApiModelProperty(value = "0 未退款 1 申请中 2 已退款") private Integer refundStatus; + @ApiModelProperty(value = "退款图片") + private String refundReasonWapImg; + @ApiModelProperty(value = "快递名称/送货人姓名") private String deliveryName; @@ -104,7 +107,7 @@ public class StoreOrderInfoResponse implements Serializable { @ApiModelProperty(value = "核销码") private String verifyCode; - @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提") + @ApiModelProperty(value = "配送方式 1=快递 ,2=门店自提,3=骑手配送") private Integer shippingType; @ApiModelProperty(value = "订单状态") @@ -122,6 +125,9 @@ public class StoreOrderInfoResponse implements Serializable { @ApiModelProperty(value = "订单商品详情") List orderInfo; + @ApiModelProperty(value = "售后信息") + ApplyRecordsResponse returnInfo; + @ApiModelProperty(value = "提货点") private SystemStore systemStore; diff --git a/food-common/src/main/java/com/zbkj/common/utils/DeliveryUtil.java b/food-common/src/main/java/com/zbkj/common/utils/DeliveryUtil.java index 3ddd271..8e4f655 100644 --- a/food-common/src/main/java/com/zbkj/common/utils/DeliveryUtil.java +++ b/food-common/src/main/java/com/zbkj/common/utils/DeliveryUtil.java @@ -128,7 +128,7 @@ public class DeliveryUtil { } String start = startDateTime.format(formatter); String end = endDateTime.format(formatter); - intervals.add(start + "-" + end); + intervals.add(start + "~" + end); if (end.equals(endTime.toString())) { break; diff --git a/food-front/src/main/java/com/zbkj/front/controller/UploadFrontController.java b/food-front/src/main/java/com/zbkj/front/controller/UploadFrontController.java index 48e52f8..e082dc1 100644 --- a/food-front/src/main/java/com/zbkj/front/controller/UploadFrontController.java +++ b/food-front/src/main/java/com/zbkj/front/controller/UploadFrontController.java @@ -37,8 +37,8 @@ public class UploadFrontController { @ApiOperation(value = "图片上传") @RequestMapping(value = "/image", method = RequestMethod.POST) @ApiImplicitParams({ - @ApiImplicitParam(name = "model", value = "模块 用户user,商品product,微信wechat,news文章"), - @ApiImplicitParam(name = "pid", value = "分类ID 0编辑器,1商品图片,2拼团图片,3砍价图片,4秒杀图片,5文章图片,6组合数据图,7前台用户,8微信系列 ", allowableValues = "range[0,1,2,3,4,5,6,7,8]") + @ApiImplicitParam(name = "model", value = "模块 用户user,商品product,微信wechat"), + @ApiImplicitParam(name = "pid", value = "分类ID 0编辑器,1商品图片,6组合数据图,7前台用户,8微信系列 ", allowableValues = "range[0,1,2,6,7,8]") }) public CommonResult image(MultipartFile multipart,@RequestParam(value = "model") String model, @RequestParam(value = "pid") Integer pid) throws IOException { diff --git a/food-front/src/main/resources/application-dev.yml b/food-front/src/main/resources/application-dev.yml index be4afc4..b1912eb 100644 --- a/food-front/src/main/resources/application-dev.yml +++ b/food-front/src/main/resources/application-dev.yml @@ -1,3 +1,14 @@ +# 相关配置 +crmeb: + version: food-v1.0.0 # 当前代码版本 + domain: #配合swagger使用 # 待部署域名 + wechat-api-url: #请求微信接口中专服务器 + wechat-js-api-debug: false #微信js api系列是否开启调试模式 + wechat-js-api-beta: true #微信js api是否是beta版本 + asyncConfig: false #是否同步config表数据到redis + asyncWeChatProgramTempList: false #是否同步小程序公共模板库 + imagePath: F:\idea_projects\my\prepare_food\foodimage\ # 服务器图片路径配置 斜杠结尾 + server: port: 20011 diff --git a/food-front/src/main/resources/application.yml b/food-front/src/main/resources/application.yml index 93392d0..f465cb9 100644 --- a/food-front/src/main/resources/application.yml +++ b/food-front/src/main/resources/application.yml @@ -1,6 +1,6 @@ # 相关配置 crmeb: - version: front-1.0.0 # 当前代码版本 + version: front-v1.0.0 # 当前代码版本 # 配置端口 server: diff --git a/food-service/src/main/java/com/zbkj/service/dao/StoreOrderDao.java b/food-service/src/main/java/com/zbkj/service/dao/StoreOrderDao.java index 354c6d9..2083269 100644 --- a/food-service/src/main/java/com/zbkj/service/dao/StoreOrderDao.java +++ b/food-service/src/main/java/com/zbkj/service/dao/StoreOrderDao.java @@ -74,4 +74,10 @@ public interface StoreOrderDao extends BaseMapper { */ List canApplyOrderList(Integer userId); + /** + * 退款拒绝,清空字段 + * @param storeOrder + */ + void refundRefuseUpdateById(StoreOrder storeOrder); + } diff --git a/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java b/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java index 52075d7..802b41e 100644 --- a/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java +++ b/food-service/src/main/java/com/zbkj/service/delete/OrderUtils.java @@ -109,9 +109,6 @@ public class OrderUtils { case Constants.PAY_TYPE_ALI_PAY: payTypeStr = "支付宝支付"; break; - case Constants.PAY_TYPE_TEA_FRUIT: - payTypeStr = "茶叶兑换商品"; - break; default: payTypeStr = "其他支付方式"; break; diff --git a/food-service/src/main/java/com/zbkj/service/service/StoreOrderReturnService.java b/food-service/src/main/java/com/zbkj/service/service/StoreOrderReturnService.java index 0e872c1..eeab949 100644 --- a/food-service/src/main/java/com/zbkj/service/service/StoreOrderReturnService.java +++ b/food-service/src/main/java/com/zbkj/service/service/StoreOrderReturnService.java @@ -21,6 +21,13 @@ public interface StoreOrderReturnService extends IService { */ CommonPage applyRecordsList(PageParamRequest pageRequest); + /** + * 售后信息 + * @param orderId + * @return + */ + ApplyRecordsResponse getApplyByOrderId(Integer orderId); + /** * 售后详情 * @param id diff --git a/food-service/src/main/java/com/zbkj/service/service/StoreOrderService.java b/food-service/src/main/java/com/zbkj/service/service/StoreOrderService.java index 4c4a8eb..90f12fb 100644 --- a/food-service/src/main/java/com/zbkj/service/service/StoreOrderService.java +++ b/food-service/src/main/java/com/zbkj/service/service/StoreOrderService.java @@ -386,4 +386,12 @@ public interface StoreOrderService extends IService { * @return */ List canApplyOrderList(Integer userId); + + /** + * 订单备货 + * @param idList + * @return + */ + Boolean prepare(List idList); + } diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java index 85abf30..f00b362 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/OrderServiceImpl.java @@ -567,7 +567,8 @@ public class OrderServiceImpl implements OrderService { // 订单详情对象列表 List infoResponseList = CollUtil.newArrayList(); List infoList = storeOrderInfoService.getListByOrderNo(storeOrder.getOrderId()); - infoList.forEach(e -> { + BigDecimal proTotalPrice = BigDecimal.ZERO; + for (StoreOrderInfo e : infoList) { OrderInfoResponse orderInfoResponse = new OrderInfoResponse(); orderInfoResponse.setStoreName(e.getProductName()); orderInfoResponse.setImage(e.getImage()); @@ -577,8 +578,10 @@ public class OrderServiceImpl implements OrderService { orderInfoResponse.setIsReply(e.getIsReply() ? 1 : 0); orderInfoResponse.setAttrId(e.getAttrValueId()); orderInfoResponse.setSku(e.getSku()); + orderInfoResponse.setCouponPrice(e.getCouponPrice()); infoResponseList.add(orderInfoResponse); - }); + proTotalPrice = proTotalPrice.add(orderInfoResponse.getPrice().multiply(new BigDecimal(e.getPayNum()))); + } storeOrderDetailResponse.setOrderInfoList(infoResponseList); // 系统门店信息 @@ -587,11 +590,9 @@ public class OrderServiceImpl implements OrderService { storeOrderDetailResponse.setSystemStore(systemStoreService.getByCondition(systemStorePram)); // 腾讯云地图key storeOrderDetailResponse.setMapKey(systemConfigService.getValueByKey(SysConfigConstants.CONFIG_SITE_TENG_XUN_MAP_KEY)); - BeanUtils.copyProperties(storeOrder, storeOrderDetailResponse); storeOrderDetailResponse.setStatusPic(orderStatusVo.getStr("statusPic")); storeOrderDetailResponse.setOrderStatusMsg(orderStatusVo.getStr("msg")); storeOrderDetailResponse.setPayTypeStr(orderStatusVo.getStr("payTypeStr")); - BigDecimal proTotalPrice = storeOrderDetailResponse.getPayPrice().add(storeOrderDetailResponse.getCouponPrice()).add(storeOrderDetailResponse.getDeductionPrice()).subtract(storeOrderDetailResponse.getPayPostage()); storeOrderDetailResponse.setProTotalPrice(proTotalPrice); return storeOrderDetailResponse; } @@ -630,8 +631,8 @@ public class OrderServiceImpl implements OrderService { record.set("msg", "正在为您退款,感谢您的支持"); } else if (storeOrder.getStatus() == 0) { record.set("type", 1); - record.set("title", "未发货"); - record.set("msg", "商家未发货,请耐心等待"); + record.set("title", "待发货"); + record.set("msg", "商家待发货,请耐心等待"); } else if (storeOrder.getStatus() == 1) { // 待收货处理 // 待收货 if (null != storeOrder.getDeliveryType() && storeOrder.getDeliveryType().equals(Constants.ORDER_STATUS_STR_SPIKE_KEY)) { // 送货 @@ -651,8 +652,8 @@ public class OrderServiceImpl implements OrderService { List sOrderStatusResults = storeOrderStatusService.getByEntity(storeOrderStatus); if (sOrderStatusResults.size()>0) { record.set("type", 2); - record.set("title", "待收货"); - record.set("msg", "商家已发货,请耐心等待"); + record.set("title", "配送中"); + record.set("msg", "商家正在配送中,请耐心等待"); } }else { StoreOrderStatus storeOrderStatus = new StoreOrderStatus(); @@ -677,6 +678,10 @@ public class OrderServiceImpl implements OrderService { record.set("type", 4); record.set("title", "交易完成"); record.set("msg", "交易完成,感谢您的支持"); + }else if (storeOrder.getStatus() == 4) { + record.set("type", 5); + record.set("title", "备货中"); + record.set("msg", "正在备货中,请耐心等待"); } // 支付方式 @@ -843,6 +848,10 @@ public class OrderServiceImpl implements OrderService { orderInfoResponse.setCartNum(e.getInfo().getPayNum()); orderInfoResponse.setPrice(e.getInfo().getPrice()); orderInfoResponse.setProductId(e.getProductId()); + orderInfoResponse.setCouponPrice(e.getInfo().getCouponPrice()); + orderInfoResponse.setAttrId(e.getInfo().getAttrValueId()); + orderInfoResponse.setSku(e.getInfo().getSku()); + orderInfoResponse.setIsReply(e.getInfo().getIsReply()); infoResponseList.add(orderInfoResponse); }); response.setOrderInfoList(infoResponseList); @@ -897,6 +906,8 @@ public class OrderServiceImpl implements OrderService { orderInfoResponse.setProductId(e.getProductId()); orderInfoResponse.setCouponPrice(e.getCouponPrice()); orderInfoResponse.setAttrId(e.getAttrValueId()); + orderInfoResponse.setSku(e.getSku()); + orderInfoResponse.setIsReply(e.getIsReply() ? 1 : 0); infoResponseList.add(orderInfoResponse); }); storeOrder.setOrderInfoList(infoResponseList); @@ -1230,7 +1241,7 @@ public class OrderServiceImpl implements OrderService { verifyCode = CrmebUtil.randomCount(1000000000L, 9999999999L) + ""; userAddressStr = systemStore.getName(); } else if (request.getShippingType() == 3) { // 骑手配送 - String deliveryTime = request.getDeliveryTime().split("-")[0]; + String deliveryTime = request.getDeliveryTime().split("~")[0]; if (request.getAddressId() <= 0) throw new CrmebException("请选择配送地址"); if (StringUtils.isEmpty(deliveryTime)) throw new CrmebException("请选择配送时间"); @@ -1248,7 +1259,7 @@ public class OrderServiceImpl implements OrderService { Integer isNowDay = DeliveryUtil.isNowDay(dTime); // 配送时间不是今天 或 (是今天下午 && 当前时间是上午) 通过 if (!(isNowDay == 0 || (isNowDay == 1 && DeliveryUtil.isAmOrPm(dTime) == 1 && DeliveryUtil.isAmOrPm(now) == 0))) { - throw new CrmebException("请重新选择配送时间"); + throw new CrmebException("配送时间有误"); } } @@ -1782,6 +1793,7 @@ public class OrderServiceImpl implements OrderService { detailVo.setIsSub(storeProduct.getIsSub()); detailVo.setProductType(Constants.PRODUCT_TYPE_NORMAL); detailVo.setVipPrice(detailVo.getPrice()); + detailVo.setCouponPrice(BigDecimal.ZERO); if (ObjectUtil.isNotNull(finalUserLevel)) { BigDecimal vipPrice = detailVo.getPrice().multiply(new BigDecimal(finalUserLevel.getDiscount())).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP); detailVo.setVipPrice(vipPrice); diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderReturnServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderReturnServiceImpl.java index 911817b..5c14d38 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderReturnServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderReturnServiceImpl.java @@ -40,6 +40,8 @@ public class StoreOrderReturnServiceImpl extends ServiceImpl lw = new LambdaQueryWrapper<>(); lw.eq(StoreOrderReturn::getOrderId, orderId); + lw.orderByDesc(StoreOrderReturn::getId); + lw.last(" limit 1"); StoreOrderReturn one = getOne(lw); StoreOrderReturn upd = new StoreOrderReturn(); upd.setId(one.getId()); @@ -53,6 +55,8 @@ public class StoreOrderReturnServiceImpl extends ServiceImpl lw = new LambdaQueryWrapper<>(); lw.eq(StoreOrderReturn::getOrderId, orderId); + lw.orderByDesc(StoreOrderReturn::getId); + lw.last(" limit 1"); StoreOrderReturn one = getOne(lw); StoreOrderReturn upd = new StoreOrderReturn(); upd.setId(one.getId()); @@ -68,21 +72,36 @@ public class StoreOrderReturnServiceImpl extends ServiceImpl list = dao.applyRecordsList(userId, null); PageHelper.clearPage(); for (ApplyRecordsResponse ar : list) { - ar.setReturnInfoList(storeOrderReturnInfoService.selectByReturnId(ar.getId())); + List returnInfoList = storeOrderReturnInfoService.selectByReturnId(ar.getId()); + ar.setReturnInfoList(returnInfoList); + ar.setReturnNum(returnInfoList.stream().map(StoreOrderReturnInfo::getReturnNum).reduce(0, Integer::sum)); } return CommonPage.restPage(list); } @Override - public ApplyRecordsResponse getApplyRecord(String id) { - Integer userId = userService.getUserIdException(); - List list = dao.applyRecordsList(userId, Integer.parseInt(id)); - if (list.isEmpty()) { throw new CrmebException("未找到信息"); } + public ApplyRecordsResponse getApplyByOrderId(Integer orderId) { + LambdaQueryWrapper lw = new LambdaQueryWrapper<>(); + lw.eq(StoreOrderReturn::getOrderId, orderId); + lw.orderByDesc(StoreOrderReturn::getId); + lw.last(" limit 1"); + StoreOrderReturn oReturn = dao.selectOne(lw); + return getReturn(null, oReturn.getId()); + } + private ApplyRecordsResponse getReturn(Integer userId, Integer returnId) { + List list = dao.applyRecordsList(userId, returnId); + if (list.isEmpty()) { throw new CrmebException("未找到信息"); } ApplyRecordsResponse response = list.get(0); List returnInfoList = storeOrderReturnInfoService.selectByReturnId(response.getId()); response.setReturnInfoList(returnInfoList); response.setReturnNum(returnInfoList.stream().map(StoreOrderReturnInfo::getReturnNum).reduce(0, Integer::sum)); return response; } + + @Override + public ApplyRecordsResponse getApplyRecord(String id) { + Integer userId = userService.getUserIdException(); + return getReturn(userId, Integer.parseInt(id)); + } } diff --git a/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java b/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java index d45b9b1..9130589 100644 --- a/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java +++ b/food-service/src/main/java/com/zbkj/service/service/impl/StoreOrderServiceImpl.java @@ -133,7 +133,7 @@ public class StoreOrderServiceImpl extends ServiceImpl startPage = PageHelper.startPage(pageParamRequest.getPage(), pageParamRequest.getLimit()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("id", "order_id", "uid", "real_name", "pay_price", "pay_type", "create_time", "status", "refund_status" - , "refund_reason_wap_img", "refund_reason_wap_explain", "refund_reason_wap", "refund_reason", "refund_reason_time" + , "refund_reason_wap_img", "refund_reason_wap_explain", "refund_reason_wap", "refund_reason", "refund_reason_time", "refund_price" , "is_del", "combination_id", "pink_id", "seckill_id", "bargain_id", "verify_code", "remark", "paid", "is_system_del", "shipping_type", "type", "is_alter_price"); if (StrUtil.isNotBlank(request.getOrderNo())) { queryWrapper.eq("order_id", request.getOrderNo()); @@ -522,7 +522,7 @@ public class StoreOrderServiceImpl extends ServiceImpl 0) { try { - storeOrderRefundService.refund(request, storeOrder); + //storeOrderRefundService.refund(request, storeOrder); } catch (Exception e) { e.printStackTrace(); throw new CrmebException("微信申请退款失败!"); @@ -592,8 +592,12 @@ public class StoreOrderServiceImpl extends ServiceImpl 0) { + ApplyRecordsResponse returnInfo = storeOrderReturnService.getApplyByOrderId(storeOrderInfoResponse.getId()); + storeOrderInfoResponse.setReturnInfo(returnInfo); + } return storeOrderInfoResponse; } @@ -608,7 +612,7 @@ public class StoreOrderServiceImpl extends ServiceImpl 0) throw new CrmebException("订单已发货请勿重复操作!"); + if (!(storeOrder.getStatus() == 0 || storeOrder.getStatus() == 4)) throw new CrmebException("订单已发货请勿重复操作!"); request.setId(storeOrder.getId()); switch (request.getType()) { case "1":// 发货 @@ -635,6 +639,7 @@ public class StoreOrderServiceImpl extends ServiceImpl { - updateById(storeOrder); + dao.refundRefuseUpdateById(update); storeOrderReturnService.refundErr(storeOrder.getId(), reason); storeOrderStatusService.createLog(storeOrder.getId(), Constants.ORDER_LOG_REFUND_REFUSE, Constants.ORDER_LOG_MESSAGE_REFUND_REFUSE.replace("{reason}", reason)); return Boolean.TRUE; @@ -1424,6 +1431,27 @@ public class StoreOrderServiceImpl extends ServiceImpl idList) { + List storeOrders = dao.selectBatchIds(idList); + // 未发货订单 + List notShippeds = storeOrders.stream().filter(i -> + (i.getPaid() && i.getStatus() == 0 && i.getRefundStatus() == 0 && !i.getIsDel() && !i.getIsSystemDel()) + ).collect(Collectors.toList()); + if (storeOrders.size() != notShippeds.size()) { throw new CrmebException("选中的订单中含有不是未发货订单!"); } + for (StoreOrder storeOrder : notShippeds) { + Boolean execute = transactionTemplate.execute(i -> { + storeOrder.setStatus(4); // 改备货中 + updateById(storeOrder); + //订单记录增加 + storeOrderStatusService.createLog(storeOrder.getId(), Constants.ORDER_LOG_PREPARE, "订单已备货"); + return Boolean.TRUE; + }); + if (!execute) throw new CrmebException("订单备货失败!"); + } + return true; + } + /** * 根据时间参数获取有效订单 * @return 有效订单列表 @@ -1925,14 +1953,14 @@ public class StoreOrderServiceImpl extends ServiceImpl integralRecordList = userIntegralRecordService.findListByOrderIdAndUid(storeOrder.getOrderId(), storeOrder.getUid()); @@ -327,8 +327,8 @@ public class StoreOrderTaskServiceImpl implements StoreOrderTaskService { // } // 经验处理 - userExperienceRecordService.save(experienceRecord); - userLevelService.downLevel(user); + //userExperienceRecordService.save(experienceRecord); + //userLevelService.downLevel(user); // 回滚库存 rollbackStock(storeOrder); diff --git a/food-service/src/main/resources/mapper/store/StoreOrderMapper.xml b/food-service/src/main/resources/mapper/store/StoreOrderMapper.xml index 0fece65..b06d3f9 100644 --- a/food-service/src/main/resources/mapper/store/StoreOrderMapper.xml +++ b/food-service/src/main/resources/mapper/store/StoreOrderMapper.xml @@ -2,6 +2,20 @@ + + update eb_store_order + + refund_status = 0, + refund_reason = #{refundReason}, + refund_reason_wap_img = null, + refund_reason_wap_explain = null, + refund_reason_wap = null, + refund_reason_time = null, + refund_price = 0 + + where id = #{ id, jdbcType=INTEGER} + +