Commit dfb7e3aa by 周晓航

提交开发代码

Signed-off-by: 周晓航 <xiaohang.zhou@freemud.com>
parent 13a08f40
...@@ -5,7 +5,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCo ...@@ -5,7 +5,7 @@ import com.freemud.application.sdk.api.ordercenter.request.OrderModifyRelatingCo
import com.freemud.application.sdk.api.ordercenter.request.QueryAfterSalesOrderConditionsReq; import com.freemud.application.sdk.api.ordercenter.request.QueryAfterSalesOrderConditionsReq;
import com.freemud.application.sdk.api.ordercenter.request.QueryLineUpOrderReq; import com.freemud.application.sdk.api.ordercenter.request.QueryLineUpOrderReq;
import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp; import com.freemud.application.sdk.api.ordercenter.response.AfterSalesListResp;
//import com.freemud.application.sdk.api.ordercenter.response.OrderStateInfoResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.sdk.api.assortment.order.request.order.*; import com.freemud.sdk.api.assortment.order.request.order.*;
import com.freemud.sdk.api.assortment.order.response.order.*; import com.freemud.sdk.api.assortment.order.response.order.*;
...@@ -420,4 +420,11 @@ public interface OrderCenterSdkService { ...@@ -420,4 +420,11 @@ public interface OrderCenterSdkService {
* 小助手日结统计订单信息查询(分页,从库查询) * 小助手日结统计订单信息查询(分页,从库查询)
*/ */
QueryOrdersResponse getOrderListByDb(QueryOrdersByConditionsRequest queryOrdersByConditionsRequest); QueryOrdersResponse getOrderListByDb(QueryOrdersByConditionsRequest queryOrdersByConditionsRequest);
/**
* 查询订单信息 基于基础服务
* @param baseQueryOrderRequest
* @return
*/
QueryByCodeResponse queryOrderByIdV2(BaseQueryOrderRequest baseQueryOrderRequest);
} }
...@@ -2358,4 +2358,16 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService { ...@@ -2358,4 +2358,16 @@ public class OrderCenterSdkServiceImpl implements OrderCenterSdkService {
return orderSdkAdapter.convent2OrdersResponseByES(baseDownLoadResponse); return orderSdkAdapter.convent2OrdersResponseByES(baseDownLoadResponse);
} }
/**
* 查询订单信息 基于基础服务
* @param request
* @return
*/
@Override
public QueryByCodeResponse queryOrderByIdV2(BaseQueryOrderRequest request) {
QueryByCodeResponse orderInfo = orderSdkService.getOrderInfo(request.getOrderClient(), request.getOrderId(),
request.getThirdOrderCode(), request.getWithOperationHistory(), request.getTrackingNo());
return orderInfo;
}
} }
...@@ -20,14 +20,8 @@ import cn.freemud.entities.dto.order.OrderInvoiceConfigVo; ...@@ -20,14 +20,8 @@ import cn.freemud.entities.dto.order.OrderInvoiceConfigVo;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.encircle.CreateReserveOrderVo; import cn.freemud.entities.vo.encircle.CreateReserveOrderVo;
import cn.freemud.entities.vo.encircle.EncircleReserveBaseVo; import cn.freemud.entities.vo.encircle.EncircleReserveBaseVo;
import cn.freemud.entities.vo.order.CreateCashierOrderVo; import cn.freemud.entities.vo.order.*;
import cn.freemud.entities.vo.order.CreateOrderInvoiceRequest;
import cn.freemud.entities.vo.order.GetInvoiceConfigRequest;
import cn.freemud.entities.vo.order.OrderAppealVo;
import cn.freemud.entities.vo.order.PaymentConfigVo;
import cn.freemud.handler.OrderReportJobHandler; import cn.freemud.handler.OrderReportJobHandler;
import cn.freemud.handler.WeChatLiveMsgHandle;
import cn.freemud.monitorcenter.tools.HealthUtil;
import cn.freemud.service.EncircleOrderService; import cn.freemud.service.EncircleOrderService;
import cn.freemud.service.Orderservice; import cn.freemud.service.Orderservice;
import cn.freemud.service.PointsMallOrderService; import cn.freemud.service.PointsMallOrderService;
...@@ -38,12 +32,6 @@ import cn.freemud.utils.ResponseUtil; ...@@ -38,12 +32,6 @@ import cn.freemud.utils.ResponseUtil;
import cn.freemud.xxljob.OrderCountJobHandler; import cn.freemud.xxljob.OrderCountJobHandler;
import com.freemud.application.sdk.api.log.ApiAnnotation; import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams; import com.freemud.application.sdk.api.log.LogParams;
import com.freemud.thirdparty.wechat.WeChatClient;
import com.freemud.thirdparty.wechat.constant.WeChatConstant;
import com.freemud.thirdparty.wechat.entities.WeChatBaseResponse;
import com.freemud.thirdparty.wechat.entities.vo.NullFieldVo;
import com.freemud.thirdparty.wechat.entities.vo.request.OrderDeliverySendRequestVO;
import com.freemud.thirdparty.wechat.entities.vo.request.OrderSycnPayRequestVO;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -511,5 +499,15 @@ public class OrderController { ...@@ -511,5 +499,15 @@ public class OrderController {
return orderAdapterService.getPaymentConfig(createOrderVo); return orderAdapterService.getPaymentConfig(createOrderVo);
} }
/**
* 卖券订单申请退款
*/
@ApiAnnotation(logMessage = "couponOrderRefund")
@PostMapping("/couponOrderRefund")
public BaseResponse couponOrderRefund(@Validated @LogParams @RequestBody OrderRefundVo orderRefundVo) {
return orderservice.couponOrderRefund(orderRefundVo);
}
} }
package cn.freemud.enums;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/12/1 下午3:32
* @description :
* @warning 这里的订单状态是依据 基础服务给出的原始库订单状态,和很老的订单状态有冲突
* 在使用的过程中注意识别冲突
* * 1待支付
* * 2下单
* * 3已接单
* * 4制作完成 5配送中 4/5的状态根据订单类型(自提/外卖)二选一不会同时出现
* * 6已完成
* * 7已关闭(退款完成)
* <p>
* ********** 老的订单状态 如下
* @see OrderStatus
*/
public enum BaseOrderStatus {
WAIT_PAY(1, "待支付", "To be paid"),
TAKE_ORDER(2, "下单", "place an order"),
RECEIPT(3, "接单", "Receiving orders"),
COMPLETE_MAKE(4, "制作完成", "Complete Make"),
DISTRIBUTION(5, "配送中", "In delivery"),
COMPLETE(6, "已完成", "Complete"),
CALCEL(7, "已关闭(退款完成)", "Cancel");
private Integer code;
private String desc;
private String descEn;
BaseOrderStatus(Integer code, String desc, String descEn) {
this.code = code;
this.desc = desc;
this.descEn = descEn;
}
public static Integer[] getAllCodes() {
Integer[] codeArray = new Integer[values().length];
int i = 0;
for (BaseOrderStatus orderStatus : values()) {
codeArray[i] = orderStatus.getCode();
i++;
}
return codeArray;
}
public static BaseOrderStatus getByCode(Integer code) {
if (code == null) {
return null;
}
for (BaseOrderStatus orderStatus : values()) {
if (orderStatus.getCode().equals(code)) {
return orderStatus;
}
}
return null;
}
public String getDescEn() {
return descEn;
}
public void setDescEn(String descEn) {
this.descEn = descEn;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
...@@ -12,6 +12,17 @@ ...@@ -12,6 +12,17 @@
*/ */
package cn.freemud.enums; package cn.freemud.enums;
/**
* @warning !!!
* 这里的订单状态依据的是 老订单的转换操作, 基础服务给出的订单状态如下:
* 1待支付
* 2下单
* 3已接单
* 4制作完成 5配送中 4/5的状态根据订单类型(自提/外卖)二选一不会同时出现
* 6已完成
* 7已关闭(退款完成)
* @see BaseOrderStatus
*/
public enum OrderStatus { public enum OrderStatus {
TAKE_ORDER(1, "下单","place an order"), TAKE_ORDER(1, "下单","place an order"),
......
...@@ -204,4 +204,10 @@ public interface Orderservice extends OrderFactoryService{ ...@@ -204,4 +204,10 @@ public interface Orderservice extends OrderFactoryService{
BaseResponse<OrderInvoiceConfigVo> queryInvoiceConfig(GetInvoiceConfigRequest request); BaseResponse<OrderInvoiceConfigVo> queryInvoiceConfig(GetInvoiceConfigRequest request);
/**
* 卖券订单 申请退款
* @param orderRefundVo
* @return
*/
BaseResponse couponOrderRefund(OrderRefundVo orderRefundVo);
} }
...@@ -89,6 +89,7 @@ import com.freemud.application.sdk.api.ordercenter.response.OrderCountResp; ...@@ -89,6 +89,7 @@ import com.freemud.application.sdk.api.ordercenter.response.OrderCountResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderInfoReqs;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderPayItemResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp; import com.freemud.application.sdk.api.ordercenter.response.orderInfo.OrderSettlementResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderDownLoadSdkService;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService; import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.storecenter.request.GetListByCodesRequest; import com.freemud.application.sdk.api.storecenter.request.GetListByCodesRequest;
...@@ -3325,23 +3326,98 @@ public class OrderServiceImpl implements Orderservice { ...@@ -3325,23 +3326,98 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(configVo); return ResponseUtil.success(configVo);
} }
@Override
public BaseResponse couponOrderRefund(OrderRefundVo orderRefundVo) {
if (StringUtils.isEmpty(orderRefundVo.getReason())) {
orderRefundVo.setReason("退款");
}
// 校验用户是否登录
BaseResponse<AssortmentCustomerInfoVo> baseResponse = this.checkUserLoginInfoDto(orderRefundVo.getSessionId());
if (!Objects.equals(baseResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return baseResponse;
}
AssortmentCustomerInfoVo userLoginInfoDto = baseResponse.getResult();
// 查询订单
BaseResponse<OrderInfoReqs> orderResponse = this.checkOrderAndGetOrderBean(orderRefundVo.getOid());
if (!Objects.equals(orderResponse.getCode(), ResponseResult.SUCCESS.getCode())) {
return orderResponse;
}
OrderInfoReqs orderBean = orderResponse.getResult();
// 校验操作
BaseResponse checkResult = this.couponOrderRefundCheck(userLoginInfoDto, orderBean);
if (!Objects.equals(checkResult.getCode(), ResponseResult.SUCCESS.getCode())) {
return checkResult;
}
// fisherman 未完成调用券码 核销券
// 走正常退款订单逻辑
return ResponseUtil.success();
}
/** /**
* 标准点餐参数校验 * 校验订单是否可退款等
* * @param userLoginInfoDto
* @param createOrderVo * @param orderBean
* @return * @return
*/ */
private BaseResponse checkStandardParamInfo(CreateOrderVo createOrderVo) { private BaseResponse couponOrderRefundCheck(AssortmentCustomerInfoVo userLoginInfoDto, OrderInfoReqs orderBean) {
if (StringUtils.isEmpty(createOrderVo.getSessionId())) { // 校验是否是用户订单
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_SESSION_ERROR); if (!Objects.equals(userLoginInfoDto.getMemberId(), orderBean.getUserId())) {
return ResponseUtil.error(ResponseResult.OPERATE_NOT_SUPPORT.getCode(), "不能操作非本人的订单");
}
// 是否是卖券订单
if (orderBean.getBizType().compareTo(BizTypeEnum.SALE_COUPON.getBizType()) != 0) {
return ResponseUtil.error(ResponseResult.OPERATE_NOT_SUPPORT.getCode(), "只可操作卖券订单");
} }
if (StringUtils.isEmpty(createOrderVo.getShopId())) { // 校验订单状态 卖券订单只有在6已完成状态下 才能退款
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_STORE_ERROR); if (orderBean.getOrderState().compareTo(BaseOrderStatus.COMPLETE.getCode()) != 0) {
return ResponseUtil.error(ResponseResult.OPERATE_NOT_SUPPORT.getCode(), "只可操作完成的订单");
} }
if (createOrderVo.getOrderType() == null) { // 校验一遍是否有售后单
return ResponseUtil.error(ResponseResult.CREATE_ORDER_CHECK_ORDERTYPE_ERROR); if (CollectionUtils.isNotEmpty(orderBean.getAfterSalesOrderList())) {
return ResponseUtil.error(ResponseResult.OPERATE_NOT_SUPPORT.getCode(), "已存在退款申请,请耐心等待处理");
} }
// fisherman 需要核实一下 是否申请退款,订单主状态还不会变
return ResponseUtil.success(); return ResponseUtil.success();
} }
/**
* 调用基础服务 获取订单信息
* @param oid
* @return
*/
private BaseResponse<OrderInfoReqs> checkOrderAndGetOrderBean(String oid) {
if (StringUtils.isBlank(oid)) {
return ResponseUtil.error(ResponseResult.ORDER_CODE_EMPTY);
}
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(oid);
baseQueryOrderRequest.setTrackingNo(LogThreadLocal.getTrackingNo());
QueryByCodeResponse queryOrderByIdResponse = orderCenterSdkService.queryOrderByIdV2(baseQueryOrderRequest);
if (queryOrderByIdResponse == null || queryOrderByIdResponse.getResult() == null) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
}
OrderInfoReqs result = queryOrderByIdResponse.getResult();
return ResponseUtil.success(result);
}
/**
* 查询用户 是否登录
* @param sessionId
* @return
*/
private BaseResponse<AssortmentCustomerInfoVo> checkUserLoginInfoDto(String sessionId){
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
return ResponseUtil.success(userLoginInfoDto);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment