Commit ee147902 by ping.wu

Merge branches 'feature/order-complain-20210823' and 'master' of…

Merge branches 'feature/order-complain-20210823' and 'master' of http://gitlab.freemud.com/order-group-application/order-group

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/adapter/OrderAdapter.java
#	order-application-service/src/main/java/cn/freemud/controller/OrderController.java
#	order-application-service/src/main/java/cn/freemud/enums/ResponseResult.java
parents 18e74682 7c2cb796
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
package cn.freemud.adapter; package cn.freemud.adapter;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.constant.CommonsConstant;
import cn.freemud.constant.CustomerScoreConstant; import cn.freemud.constant.CustomerScoreConstant;
import cn.freemud.constant.KgdRedisKeyConstant; import cn.freemud.constant.KgdRedisKeyConstant;
import cn.freemud.constant.RedisKeyConstant; import cn.freemud.constant.RedisKeyConstant;
...@@ -1175,9 +1176,20 @@ public class OrderAdapter { ...@@ -1175,9 +1176,20 @@ public class OrderAdapter {
if (CollectionUtils.isEmpty(ordersBeans)) { if (CollectionUtils.isEmpty(ordersBeans)) {
return Collections.emptyList(); return Collections.emptyList();
} }
List<QueryOrderResponseVo> list = Lists.newArrayList(); List<QueryOrderResponseVo> list = Lists.newArrayList();
QueryOrdersResponse.DataBean.OrderBean orderBean = ordersBeans.get(0);
String partnerId = "";
if (null != orderBean) {
partnerId = orderBean.getCompanyId();
}
String configStr = redisCache.hashGet(MessageFormat.format(KgdRedisKeyConstant.ORDER_COMPLAIN_KEY, partnerId, wxAppId), KgdRedisKeyConstant.ORDER_COMPLAIN_TYPE);
Boolean buttonComplain = true;
if (CommonsConstant.ORDER_COMPLAIN_CLOSE.equals(configStr)) {
buttonComplain = false;
}
for (QueryOrdersResponse.DataBean.OrderBean ordersBean : ordersBeans) {
ordersBeans.forEach(ordersBean -> {
QueryOrderResponseVo responseVo = new QueryOrderResponseVo(); QueryOrderResponseVo responseVo = new QueryOrderResponseVo();
responseVo.setOid(ordersBean.getOid()); responseVo.setOid(ordersBean.getOid());
responseVo.setShopId(ordersBean.getShopId()); responseVo.setShopId(ordersBean.getShopId());
...@@ -1185,6 +1197,7 @@ public class OrderAdapter { ...@@ -1185,6 +1197,7 @@ public class OrderAdapter {
responseVo.setShopNameEn(ordersBean.getShopNameEn()); responseVo.setShopNameEn(ordersBean.getShopNameEn());
responseVo.setShopAddress(ordersBean.getShopAddress()); responseVo.setShopAddress(ordersBean.getShopAddress());
responseVo.setShopPhone(ordersBean.getShopPhone()); responseVo.setShopPhone(ordersBean.getShopPhone());
responseVo.setButtonComplain(buttonComplain);
responseVo.setReceiveAddress(ordersBean.getAddress()); responseVo.setReceiveAddress(ordersBean.getAddress());
if (OrderClientType.SAASMALL.getIndex().toString() == ordersBean.getOrderClient()) { if (OrderClientType.SAASMALL.getIndex().toString() == ordersBean.getOrderClient()) {
responseVo.setReceiveUsername(ordersBean.getContactsName()); responseVo.setReceiveUsername(ordersBean.getContactsName());
...@@ -1548,7 +1561,9 @@ public class OrderAdapter { ...@@ -1548,7 +1561,9 @@ public class OrderAdapter {
responseVo.setSendWord(orderExtended.getSendWord()); responseVo.setSendWord(orderExtended.getSendWord());
} }
list.add(responseVo); list.add(responseVo);
}); }
AppLogUtil.infoLog("fisherman orderBean:", JSON.toJSONString(ordersBeans), JSON.toJSONString(list));
return list; return list;
} }
......
...@@ -6,4 +6,9 @@ public class CommonsConstant { ...@@ -6,4 +6,9 @@ public class CommonsConstant {
public final static Integer WEIGHT_PRODUCT = 1; public final static Integer WEIGHT_PRODUCT = 1;
public static final String ORDER_COMPLAIN_OPEN = "open";
public static final String ORDER_COMPLAIN_CLOSE = "close";
} }
\ No newline at end of file
...@@ -27,5 +27,13 @@ public class KgdRedisKeyConstant { ...@@ -27,5 +27,13 @@ public class KgdRedisKeyConstant {
*/ */
public static final String REFUND_CFG_TAKE_OUT = "takeOutType"; public static final String REFUND_CFG_TAKE_OUT = "takeOutType";
public static final String ORDER_COMPLAIN_KEY = "kgd:order_config_{0}_{1}";
public static final String ORDER_COMPLAIN_TYPE = "orderComplaintType";
} }
...@@ -17,6 +17,7 @@ import cn.freemud.base.entity.BaseResponse; ...@@ -17,6 +17,7 @@ import cn.freemud.base.entity.BaseResponse;
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.OrderAppealVo;
import cn.freemud.handler.OrderReportJobHandler; import cn.freemud.handler.OrderReportJobHandler;
import cn.freemud.monitorcenter.tools.HealthUtil; import cn.freemud.monitorcenter.tools.HealthUtil;
import cn.freemud.service.*; import cn.freemud.service.*;
...@@ -402,6 +403,24 @@ public class OrderController { ...@@ -402,6 +403,24 @@ public class OrderController {
return pointsMallOrderService.scoreRecordDetail(queryOrderVo); return pointsMallOrderService.scoreRecordDetail(queryOrderVo);
} }
/**
* 订单申诉结果查询
*/
@ApiAnnotation(logMessage = "queryOrderAppeal")
@PostMapping("/queryOrderAppeal")
public BaseResponse queryOrderAppeal(@Validated @LogParams @RequestBody OrderAppealVo orderAppealVo) {
return orderservice.queryOrderAppeal(orderAppealVo);
}
/**
* 订单申诉
*/
@ApiAnnotation(logMessage = "submitAppeal")
@PostMapping("/submitAppeal")
public BaseResponse submitAppeal(@Validated @LogParams @RequestBody OrderAppealVo orderAppealVo) {
return orderservice.submitAppeal(orderAppealVo);
}
/** /**
* 订单统计 上报数据 * 订单统计 上报数据
......
...@@ -196,6 +196,8 @@ public class QueryOrderResponseVo { ...@@ -196,6 +196,8 @@ public class QueryOrderResponseVo {
* 申请退款按钮 * 申请退款按钮
*/ */
private Boolean buttonRefund; private Boolean buttonRefund;
private Boolean buttonComplain;
/** /**
* 联系商家按钮 * 联系商家按钮
*/ */
......
package cn.freemud.entities.vo.order;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class OrderAppealVo {
@NotEmpty(message = "sessionId 不能为空")
private String sessionId;
/**
* 商户ID
*/
private String partnerId;
/**
* 订单ID
*/
private String oid;
private String content;
}
package cn.freemud.entities.vo.order;
import lombok.Data;
@Data
public class QueryOrderAppealResponseVo {
private String appealContent;
private String mobile;
}
...@@ -178,6 +178,7 @@ public enum ResponseResult { ...@@ -178,6 +178,7 @@ public enum ResponseResult {
ORDER_RECEIVE_ERR("45071", "确认收货失败,请稍后再试",""), ORDER_RECEIVE_ERR("45071", "确认收货失败,请稍后再试",""),
STORE_NO_OPEN("45072", "选择时间不在门店营业时间范围内",""), STORE_NO_OPEN("45072", "选择时间不在门店营业时间范围内",""),
STORE_SELF_ERROR_10("45073", "请在营业结束时间前10分钟下单",""), STORE_SELF_ERROR_10("45073", "请在营业结束时间前10分钟下单",""),
ORDER_APPEAL_ERR("45074", "申诉失败",""),
/** /**
* 售后单 * 售后单
......
...@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse; ...@@ -4,6 +4,7 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.ConfirmOrderDto; import cn.freemud.entities.dto.ConfirmOrderDto;
import cn.freemud.entities.dto.QueryOrdersResponseDto; import cn.freemud.entities.dto.QueryOrdersResponseDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.order.OrderAppealVo;
import com.freemud.application.sdk.api.ordercenter.response.OrderCountResp; import com.freemud.application.sdk.api.ordercenter.response.OrderCountResp;
import java.util.List; import java.util.List;
...@@ -180,4 +181,9 @@ public interface Orderservice { ...@@ -180,4 +181,9 @@ public interface Orderservice {
* @return * @return
*/ */
BaseResponse<OrderStateMonitorInfoVo> queryOrderStateMonitorInfo(String orderCode, String partnerId, Byte orderClient); BaseResponse<OrderStateMonitorInfoVo> queryOrderStateMonitorInfo(String orderCode, String partnerId, Byte orderClient);
BaseResponse submitAppeal(OrderAppealVo orderAppealVo);
BaseResponse queryOrderAppeal(OrderAppealVo orderAppealVo);
} }
...@@ -45,6 +45,8 @@ import cn.freemud.entities.dto.shoppingCart.CollageOrderDto; ...@@ -45,6 +45,8 @@ import cn.freemud.entities.dto.shoppingCart.CollageOrderDto;
import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto; import cn.freemud.entities.dto.shoppingCart.NewShoppingCartClearDto;
import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto; import cn.freemud.entities.dto.shoppingCart.ShoppingCartGoodsDto;
import cn.freemud.entities.vo.*; import cn.freemud.entities.vo.*;
import cn.freemud.entities.vo.order.OrderAppealVo;
import cn.freemud.entities.vo.order.QueryOrderAppealResponseVo;
import cn.freemud.enums.*; import cn.freemud.enums.*;
import cn.freemud.enums.OrderType; import cn.freemud.enums.OrderType;
import cn.freemud.interceptor.ServiceException; import cn.freemud.interceptor.ServiceException;
...@@ -4227,5 +4229,50 @@ public class OrderServiceImpl implements Orderservice { ...@@ -4227,5 +4229,50 @@ public class OrderServiceImpl implements Orderservice {
return ResponseUtil.success(infoVo); return ResponseUtil.success(infoVo);
} }
@Override
public BaseResponse submitAppeal(OrderAppealVo orderAppealVo) {
String sessionId = orderAppealVo.getSessionId();
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
SubmitAppealReq submitAppealReq = new SubmitAppealReq();
submitAppealReq.setPartnerId(userLoginInfoDto.getPartnerId());
submitAppealReq.setOrderCode(orderAppealVo.getOid());
submitAppealReq.setAppealContent(orderAppealVo.getContent());
submitAppealReq.setMobile(userLoginInfoDto.getMobile());
submitAppealReq.setOperator(userLoginInfoDto.getNickName());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse baseResponse = orderSdkService.submitAppeal(submitAppealReq, LogThreadLocal.getTrackingNo());
if (Objects.isNull(baseResponse) || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER_APPEAL_ERR);
}
return ResponseUtil.success();
}
@Override
public BaseResponse queryOrderAppeal(OrderAppealVo orderAppealVo) {
String sessionId = orderAppealVo.getSessionId();
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
if (userLoginInfoDto == null || StringUtils.isEmpty(userLoginInfoDto.getMemberId())) {
return ResponseUtil.error(ResponseResult.NOT_LOGIN);
}
SubmitAppealReq submitAppealReq = new SubmitAppealReq();
submitAppealReq.setPartnerId(userLoginInfoDto.getPartnerId());
submitAppealReq.setOrderCode(orderAppealVo.getOid());
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<QueryOrderAppealVo> baseResponse = orderSdkService.queryOrderAppeal(submitAppealReq, LogThreadLocal.getTrackingNo());
if (Objects.isNull(baseResponse) || !Objects.equals(ResponseCodeConstant.RESPONSE_SUCCESS_STR, baseResponse.getCode())) {
return ResponseUtil.error(ResponseResult.ORDER_APPEAL_ERR);
}
QueryOrderAppealResponseVo responseVo = new QueryOrderAppealResponseVo();
if(baseResponse.getResult() != null){
responseVo.setAppealContent(baseResponse.getResult().getAppealContent());
responseVo.setMobile(baseResponse.getResult().getMobile());
}
return ResponseUtil.success(responseVo);
}
} }
...@@ -268,4 +268,15 @@ public class InterfaceAddressConstant { ...@@ -268,4 +268,15 @@ public class InterfaceAddressConstant {
*/ */
public static final String QUERY_ORDER_DAY_FROM_DB = "order/v2/db/queryOrderByConditions"; public static final String QUERY_ORDER_DAY_FROM_DB = "order/v2/db/queryOrderByConditions";
/**
* 订单申诉
*/
public static final String SUBMIT_APPEAL = "order/v2/submitAppeal";
/**
* 查询申诉结果
*/
public static final String QUERY_APPEAL = "order/v2/queryOrderAppeal";
} }
package com.freemud.application.sdk.api.ordercenter.request;
import lombok.Data;
@Data
public class QueryOrderAppealVo {
private String partnerId;
private String orderCode;
private String appealContent;
private String mobile;
}
package com.freemud.application.sdk.api.ordercenter.request;
import lombok.Data;
@Data
public class SubmitAppealReq {
//商户号,确定商品归属权
private String partnerId;
private String orderCode;
private String appealContent;
private String mobile;
private String appealTime;
private String operator;
private String extParam;
}
...@@ -970,4 +970,24 @@ public class OrderSdkService { ...@@ -970,4 +970,24 @@ public class OrderSdkService {
}); });
return responseHandle(responseDTO); return responseHandle(responseDTO);
} }
/**
* 订单申诉
*/
public BaseResponse submitAppeal(SubmitAppealReq submitAppealReq,String trackingNo) {
OrderBaseResp responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, SUBMIT_APPEAL,
createBaseRequest(submitAppealReq, trackingNo), new ParameterizedTypeReference<OrderBaseResp>() {
});
return responseHandle(responseDTO);
}
/**
* 查询申诉结果
*/
public BaseResponse<QueryOrderAppealVo> queryOrderAppeal(SubmitAppealReq request,String trackingNo) {
OrderBaseResp<QueryOrderAppealVo> responseDTO = RequestThirdPartyUtils.httpJsonReqComplexNew(restTemplate, QUERY_APPEAL,
createBaseRequest(request, trackingNo), new ParameterizedTypeReference<OrderBaseResp<QueryOrderAppealVo>>() {
});
return responseHandle(responseDTO);
}
} }
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