Commit 362a1d87 by 张跃

Merge branch 'featur/20210609-订单调getMemberExtendInfo接口优化-zy' into qa

parents 6dc7c978 77ebc4db
package cn.freemud.entities.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @ClassName: GetMemberExtendInfoRequestDto
* @Description:
* @Author: freemud
* @Date: 2021/6/9 下午4:28
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetMemberExtendInfoRequestDto {
private String partnerId;
private String memberId;
private Integer isQueryGrade;
private Integer isQueryPaid;
private Integer isQueryLabel;
}
package cn.freemud.entities.dto;
/**
* @ClassName: GetMemberExtendInfoResponseDto
* @Description:
* @Author: freemud
* @Date: 2021/6/9 下午4:29
*/
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GetMemberExtendInfoResponseDto {
private GetMemberExtendInfoResponseDto.MemberGradeDto memberGrade;
private List<GetMemberExtendInfoResponseDto.MemberPaidDetail> memberPaids;
private List<GetMemberExtendInfoResponseDto.GetMemberLabels> memberLabels;
@Data
public static class MemberGradeDto {
private String ruleCode;
private String ruleName;
private String cycleDate;
}
@Data
public static class MemberPaidDetail {
private String id;
private String paidId;
private String paidName;
private Date openTime;
private Date expiryTime;
}
@Data
public static class GetMemberLabels {
private String memberId;
private String labelCode;
private String labelName;
private Date updateTime;
}
}
package cn.freemud.service.business;
import com.freemud.application.sdk.api.ordercenter.request.PaySuccessReq;
import com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest;
import com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse;
/**
* @ClassName: OrderBusinessService
* @Description:
* @Author: freemud
* @Date: 2021/6/9 下午4:12
*/
public interface OrderBusinessService {
PayAccessResponse payAccess(ConfirmOrderRequest confirmOrderRequest);
Integer getPaySuccessTimeout(ConfirmOrderRequest confirmOrderRequest, PaySuccessReq request);
}
package cn.freemud.service.business.impl;
import cn.freemud.entities.dto.GetMemberExtendInfoRequestDto;
import cn.freemud.entities.dto.GetMemberExtendInfoResponseDto;
import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.thirdparty.CustomerClient;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.freemud.application.sdk.api.base.BaseResponse;
import com.freemud.application.sdk.api.log.ErrorLog;
import com.freemud.application.sdk.api.membercenter.request.GetMemberExtendInfoRequest;
import com.freemud.application.sdk.api.membercenter.response.GetMemberExtendInfoResponse;
import com.freemud.application.sdk.api.ordercenter.enums.OrderSettlementType;
import com.freemud.application.sdk.api.ordercenter.request.OrderExtInfoDto;
import com.freemud.application.sdk.api.ordercenter.request.PaySuccessReq;
import com.freemud.application.sdk.api.ordercenter.request.create.OrderSettlementCreateReq;
import com.freemud.application.sdk.api.ordercenter.response.PaySuccessResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.QueryByCodeResponse;
import com.freemud.application.sdk.api.ordercenter.service.OrderSdkService;
import com.freemud.application.sdk.api.storecenter.request.StoreInfoRequest;
import com.freemud.application.sdk.api.storecenter.response.StoreResponse;
import com.freemud.application.sdk.api.storecenter.service.StoreCenterService;
import com.freemud.sdk.api.assortment.order.adapter.OrderSdkAdapter;
import com.freemud.sdk.api.assortment.order.enums.OldOrderAccountType;
import com.freemud.sdk.api.assortment.order.enums.OldOrderType;
import com.freemud.sdk.api.assortment.order.enums.PaySuccessTimeoutEnum;
import com.freemud.sdk.api.assortment.order.request.order.ConfirmOrderRequest;
import com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrderByIdResponse;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import static com.freemud.application.sdk.api.membercenter.constant.InterfaceAddressConstant.MEMBER_EXTEND_INFO;
/**
* @ClassName: OrderBusinessServiceImpl
* @Description:
* @Author: freemud
* @Date: 2021/6/9 下午4:12
*/
@Service
public class OrderBusinessServiceImpl implements OrderBusinessService {
@Autowired
private OrderSdkAdapter orderSdkAdapter;
@Autowired
private StoreCenterService storeCenterService;
@Autowired
private OrderSdkService orderSdkService;
@Autowired
private CustomerClient customerClient;
@Override
public PayAccessResponse payAccess(ConfirmOrderRequest confirmOrderRequest) {
PaySuccessReq request = new PaySuccessReq();
request.setPayRequestNo(confirmOrderRequest.getPayVoucher());
request.setCompleteOrderCode(confirmOrderRequest.getCompleteOrderCode());
request.setOrderCode(confirmOrderRequest.getOrderId());
request.setMealCodeRule(confirmOrderRequest.getMealCodeRule());
request.setPickUpGoodsNo(confirmOrderRequest.getPickUpGoodsNo());
// 引入门店基础服务 查询自动制作完成配置时间,预约单单独超时任务设置
request.setTimeout(getPaySuccessTimeout(confirmOrderRequest, request));
if (!org.springframework.util.CollectionUtils.isEmpty(confirmOrderRequest.getOrderSettlements())) {
List<OrderSettlementCreateReq> orderSettlementCreateReqs = new ArrayList<>();
int size = confirmOrderRequest.getOrderSettlements().size();
OrderSettlementCreateReq orderSettlementCreateReq = new OrderSettlementCreateReq();
for (int i = 0; i < size; i++) {
ConfirmOrderRequest.OrderSettlement orderSettlement = confirmOrderRequest.getOrderSettlements().get(i);
orderSettlementCreateReq.setPlatformDiscountAmount(orderSettlement.getPlatformDiscountAmount());
orderSettlementCreateReq.setShopDiscountAmount(orderSettlement.getShopDiscountAmount());
orderSettlementCreateReq.setSettlementAmount(orderSettlement.getSettlementAmount());
orderSettlementCreateReq.setNote(orderSettlement.getNote());
orderSettlementCreateReq.setSettlementType(this
.convertAssortmentSettlementTypeToNewOrderSettlementType(orderSettlement.getSettlementType()));
orderSettlementCreateReqs.add(orderSettlementCreateReq);
}
request.setOrderSettlementDetailList(orderSettlementCreateReqs);
}
request.setActualPayAmount(confirmOrderRequest.getActualPayAmount());
// request.setActualPayAmount(request.getActualPayAmount());
request.setOperator(confirmOrderRequest.getOperator());
if (StringUtils.isNotBlank(confirmOrderRequest.getPayChannel())) {
request.setPayChannel(confirmOrderRequest.getPayChannel());
request.setPayChannelName(confirmOrderRequest.getPayChannelName());
}
QueryOrderByIdResponse orderByIdResponse = new QueryOrderByIdResponse();
BaseResponse<GetMemberExtendInfoResponseDto> extendInfo = new BaseResponse();
try {
QueryByCodeResponse codeResponse = orderSdkService.getOrderInfo(confirmOrderRequest.getProductOrderCode(),
0, confirmOrderRequest.getTrackingNo());
orderByIdResponse = orderSdkAdapter.convent2QueryOrderByIdResponse(codeResponse);
GetMemberExtendInfoRequestDto extendInfoRequest = new GetMemberExtendInfoRequestDto();
extendInfoRequest.setMemberId(orderByIdResponse.getData().getUserId());
extendInfoRequest.setPartnerId(orderByIdResponse.getData().getCompanyId());
extendInfoRequest.setIsQueryGrade(1);
extendInfoRequest.setIsQueryLabel(0);
extendInfoRequest.setIsQueryPaid(1);
extendInfo = customerClient.getMemberExtendInfo(extendInfoRequest);
OrderExtInfoDto extInfoDTO = JSONObject.parseObject(orderByIdResponse.getData().getExtInfo(),
OrderExtInfoDto.class);
extInfoDTO.setMemberLevel(
extendInfo.getData().getMemberGrade() != null ? extendInfo.getData().getMemberGrade().getRuleName()
: "");
extInfoDTO.setPaidMember(CollectionUtils.isNotEmpty(extendInfo.getData().getMemberPaids()));
extInfoDTO.setPayTransId(confirmOrderRequest.getPayTransId());
extInfoDTO.setPayDate(confirmOrderRequest.getPayDate());
extInfoDTO.setEndTransId(confirmOrderRequest.getEndTransId());
request.setExtInfo(JSON.toJSONString(extInfoDTO));
if (!StringUtils.isEmpty(confirmOrderRequest.getSpellGroupCode())) {
request.setSpellGroupCode(confirmOrderRequest.getSpellGroupCode());
}
} catch (Exception e) {
ErrorLog.printErrorLog("getMemberExtendInfoError", MEMBER_EXTEND_INFO, confirmOrderRequest, e);
}
com.freemud.application.sdk.api.ordercenter.response.BaseResponse<PaySuccessResp> response = orderSdkService
.paySuccess(request, confirmOrderRequest.getTrackingNo());
// 获取会员信息直接返回,非空判断
if (extendInfo.getData() == null) {
return orderSdkAdapter.convent2PayAccessResponse(response);
}
return orderSdkAdapter.convent2PayAccessResponse(response);
}
@Override
public Integer getPaySuccessTimeout(ConfirmOrderRequest confirmOrderRequest, PaySuccessReq request) {
// 合阔pos 商户未接单退款超时时间
if (confirmOrderRequest.getNotAutomaticTwistTime() != null) {
return confirmOrderRequest.getNotAutomaticTwistTime();
}
Integer timeout = 0;
StoreInfoRequest storeInfoRequest = new StoreInfoRequest();
storeInfoRequest.setPartnerId(confirmOrderRequest.getPartnerId());
storeInfoRequest.setStoreCode(confirmOrderRequest.getStoreId());
StoreResponse storeResponse = storeCenterService.getStoreInfo(storeInfoRequest,
confirmOrderRequest.getTrackingNo());
if (storeResponse != null && storeResponse.getBizVO() != null) {
StoreResponse.Configuration configuration = storeResponse.getBizVO().getStoreConfig();
// 配置为空超时取消订单
if (configuration == null
|| org.apache.commons.lang.StringUtils.isBlank(configuration.getOverTimeCloseOrder())) {
timeout = 30;
}
// 超时关单开启
if (configuration != null && ObjectUtils.equals("1", configuration.getOverTimeCloseOrder())
&& StringUtils.isNotBlank(configuration.getOverTimeCloseOrderTime())) {
timeout = Integer.parseInt(configuration.getOverTimeCloseOrderTime());
}
// isAutoTakeOrder = 3为服务端超时接单
if ("3".equals(storeResponse.getBizVO().getIsAutoTakeOrder())) {
// 外卖订单
if (confirmOrderRequest.getOrderType() == OldOrderType.TAKE_OUT.getCode()) {
timeout = PaySuccessTimeoutEnum.getMin(configuration.getTakeOutAutomaticOrderTime());
} else {
timeout = PaySuccessTimeoutEnum.getMin(configuration.getPickUpAutomaticOrderTime());
}
}
}
return timeout;
}
private Integer convertAssortmentSettlementTypeToNewOrderSettlementType(OldOrderAccountType settlementType) {
if (settlementType == OldOrderAccountType.WEIXIN) {
return OrderSettlementType.WEIXIN.getIndex();
}
return -1;
}
}
......@@ -34,6 +34,7 @@ import cn.freemud.redis.RedisCache;
import cn.freemud.service.BuriedPointService;
import cn.freemud.service.CouponActivityService;
import cn.freemud.service.MallOrderService;
import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
import cn.freemud.service.thirdparty.ShoppingCartClient;
import cn.freemud.utils.LogUtil;
......@@ -154,7 +155,8 @@ public class MallOrderServiceImpl implements MallOrderService {
private AssortmentCustomerInfoManager assortmentCustomerInfoManager;
@Autowired
private PaymentQueueService paymentQueueService;
@Autowired
private OrderBusinessService orderBusinessService;
/**
* 创建订单
*/
......@@ -508,7 +510,7 @@ public class MallOrderServiceImpl implements MallOrderService {
}
// 订单支付成功
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccess(confirmOrderRequest);
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderBusinessService.payAccess(confirmOrderRequest);
String string2 = JSONObject.toJSONString(payAccessRes);
JSONObject jsonObject2 = JSONObject.parseObject(string2);
payAccessResponse = jsonObject2.toJavaObject(PayAccessResponse.class);
......
......@@ -74,6 +74,7 @@ import cn.freemud.service.BuriedPointService;
import cn.freemud.service.CouponActivityService;
import cn.freemud.service.OrderAdapterService;
import cn.freemud.service.Orderservice;
import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.order.OrderRelationFactory;
import cn.freemud.service.order.OrderRelationService;
import cn.freemud.service.thirdparty.*;
......@@ -341,6 +342,9 @@ public class OrderServiceImpl implements Orderservice {
@Autowired
private OrderTackCodeManager orderTackCodeManager;
@Autowired
private OrderBusinessService orderBusinessService;
@Override
public BaseResponse checkBeforeCreateOrder(CheckBeforeCreateOrderRequestVo requestVo) {
String trackingNo = LogTreadLocal.getTrackingNo();
......@@ -551,7 +555,7 @@ public class OrderServiceImpl implements Orderservice {
String pickUpGoodsNo = orderTackCodeManager.generateTackCode(orderBean.getType(),partnerId,storeId,var1,OrderTackCodeFactory.getByOrderClient(orderBean.getOrderClient()).getGenerateTackCodeFunc());
var1.setPickUpGoodsNo(pickUpGoodsNo);
// 订单支付成功
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderCenterSdkService.payAccess(var1);
com.freemud.sdk.api.assortment.order.response.order.PayAccessResponse payAccessRes = orderBusinessService.payAccess(var1);
String string2 = JSONObject.toJSONString(payAccessRes);
JSONObject jsonObject2 = JSONObject.parseObject(string2);
payAccessResponse = jsonObject2.toJavaObject(PayAccessResponse.class);
......
......@@ -20,6 +20,7 @@ import cn.freemud.enums.UserLoginChannelEnum;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.redis.RedisCache;
import cn.freemud.service.CouponService;
import cn.freemud.service.business.OrderBusinessService;
import cn.freemud.service.thirdparty.StoreItemClient;
import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil;
......@@ -139,7 +140,8 @@ public class SellCouponOrderServiceImpl {
private final String SUCCESS = "100";
private final String ngsCouponProductId = "76161384";
@Autowired
private OrderBusinessService orderBusinessService;
/**
* 卖券订单创建
*/
......@@ -762,7 +764,7 @@ public class SellCouponOrderServiceImpl {
}
try {
// 订单支付成功
PayAccessResponse payAccessResponse = orderCenterSdkService.payAccess(var1);
PayAccessResponse payAccessResponse = orderBusinessService.payAccess(var1);
}catch (Exception e){
LogUtil.error(LogThreadLocal.getTrackingNo(),"sdkPayAccessError",JSONObject.toJSONString(var1),null,e);
}
......
///**
// * All rights Reserved, Designed By www.freemud.cn
// *
// * @Title: CustomerExtendClient
// * @Package cn.freemud.service.thirdparty
// * @Description:
// * @author: song.cai
// * @date: 2019/2/20 16:42
// * @version V1.0
// * @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
// * 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
// */
//
//package cn.freemud.service.thirdparty;
//
//import cn.freemud.entities.dto.*;
//import com.alibaba.fastjson.JSONObject;
//import org.springframework.cloud.openfeign.FeignClient;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//
//@FeignClient(name = "CUSTOMER-SERVICE", url = "${saas.customerclient.feign.url}")
//@RequestMapping(produces = {"application/json;charset=UTF-8"})
//public interface CustomerClient {
// /**
// * 根据聚道注册会员
// */
// @PostMapping(value = "/customerservice/registerByChannel")
// MemberRegisterResponseDto registerByChannel(@RequestBody MemberRegisterRequestDto memberRegisterRequestDto);
//
// /**
// * 根据渠道信息查询顾客信息
// */
// @PostMapping(value = "/customerservice/getMemberByChannel")
// GetMemberInfoByChannelResponseDto getMemberInfoByChannel(@RequestBody GetMemberInfoByChannelRequestDto getMemberInfoByChannelRequestDto);
//
// /**
// * 修改unionid
// */
// @PostMapping(value = "/customerservice/updateMemberChannel")
// JSONObject updateUserUnionId(@RequestBody UpdateMemUnionIdRequestDto updateMemUnionIdRequestDto);
//
// /**
// * 根据会员id获取会员信息
// */
// @PostMapping(value = "/customerservice/getMemberById")
// GetMemberInfoByIdResponseDto getMemberInfoById(@RequestBody GetMemberInfoByIdRequestDto getMemberInfoByIdRequestDto);
//
// /**
// * 修改顾客信息
// */
// @PostMapping(value = "/customerservice/update")
// JSONObject editMemberInfo(@RequestBody EditMemberInfoRequestDto editMemberInfoRequestDto);
//
//
// /**
// * 获取用户收货地址列表
// */
// @PostMapping(value = "/customerservice/address/getAddressList")
// GetReceiveAddressListResponseDto getReceiveAddressList(@RequestBody GetReceiveAddressListDto getReceiveListDto);
//
// /**
// * 新增收货地址
// */
// @PostMapping(value = "/customerservice/address/add")
// AddReceiveAddressResponseDto addReceiveAddress(@RequestBody AddReceiveAddressDto addReceiveDto);
//
// /**
// * 修改收货地址
// */
// @PostMapping(value = "/customerservice/address/update")
// UpdateReceiveAddressResponseDto updateReceiveAddress(@RequestBody UpdateReceiveAddressDto updateReceiveAddressDto);
//
// /**
// * 删除收货地址
// */
// @PostMapping(value = "/customerservice/address/delete")
// DeleteReceiveAddressResponseDto deleteReceiveAddress(@RequestBody DeleteReceiveAddressDto deleteReceiveAddressDto);
//
//
// /**
// * 查询收货地址详情
// */
// @PostMapping(value = "/customerservice/address/get")
// QueryReceiveAddressResponseDto queryReceiveAddressById(@RequestBody QueryReceiveAddressDto queryReceiveAddressDto);
//}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: CustomerExtendClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: song.cai
* @date: 2019/2/20 16:42
* @version V1.0
* @Copyright: 2019 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.*;
import com.freemud.application.sdk.api.base.BaseResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name = "CUSTOMER-SERVICE", url = "${saas.customerclient.feign.url}")
@RequestMapping(produces = { "application/json;charset=UTF-8" })
public interface CustomerClient {
// /**
// * 根据聚道注册会员
// */
// @PostMapping(value = "/customerservice/registerByChannel")
// MemberRegisterResponseDto registerByChannel(@RequestBody MemberRegisterRequestDto memberRegisterRequestDto);
//
// /**
// * 根据渠道信息查询顾客信息
// */
// @PostMapping(value = "/customerservice/getMemberByChannel")
// GetMemberInfoByChannelResponseDto getMemberInfoByChannel(@RequestBody GetMemberInfoByChannelRequestDto
// getMemberInfoByChannelRequestDto);
//
// /**
// * 修改unionid
// */
// @PostMapping(value = "/customerservice/updateMemberChannel")
// JSONObject updateUserUnionId(@RequestBody UpdateMemUnionIdRequestDto updateMemUnionIdRequestDto);
//
// /**
// * 根据会员id获取会员信息
// */
// @PostMapping(value = "/customerservice/getMemberById")
// GetMemberInfoByIdResponseDto getMemberInfoById(@RequestBody GetMemberInfoByIdRequestDto
// getMemberInfoByIdRequestDto);
//
// /**
// * 修改顾客信息
// */
// @PostMapping(value = "/customerservice/update")
// JSONObject editMemberInfo(@RequestBody EditMemberInfoRequestDto editMemberInfoRequestDto);
//
//
// /**
// * 获取用户收货地址列表
// */
// @PostMapping(value = "/customerservice/address/getAddressList")
// GetReceiveAddressListResponseDto getReceiveAddressList(@RequestBody GetReceiveAddressListDto getReceiveListDto);
//
// /**
// * 新增收货地址
// */
// @PostMapping(value = "/customerservice/address/add")
// AddReceiveAddressResponseDto addReceiveAddress(@RequestBody AddReceiveAddressDto addReceiveDto);
//
// /**
// * 修改收货地址
// */
// @PostMapping(value = "/customerservice/address/update")
// UpdateReceiveAddressResponseDto updateReceiveAddress(@RequestBody UpdateReceiveAddressDto
// updateReceiveAddressDto);
//
// /**
// * 删除收货地址
// */
// @PostMapping(value = "/customerservice/address/delete")
// DeleteReceiveAddressResponseDto deleteReceiveAddress(@RequestBody DeleteReceiveAddressDto
// deleteReceiveAddressDto);
//
//
// /**
// * 查询收货地址详情
// */
// @PostMapping(value = "/customerservice/address/get")
// QueryReceiveAddressResponseDto queryReceiveAddressById(@RequestBody QueryReceiveAddressDto
// queryReceiveAddressDto);
/**
* 查询收货地址详情
*/
@PostMapping(value = "/customerservice/extend/getMemberExtendInfo")
BaseResponse<GetMemberExtendInfoResponseDto>
getMemberExtendInfo(@RequestBody GetMemberExtendInfoRequestDto extendInfoRequest);
}
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