Commit a3868c9e by 王世昌

Merge branch 'feature/20210420-华莱士公用分支-张志恒' into develop

parents a58ee231 01eea845
......@@ -60,7 +60,6 @@ public class SpellGroupOrderDataManager {
@Autowired
private DeliveryFeiginClient deliveryFeiginClient;
@Autowired
private EcologyAdminApplicationClient ecologyAdminApplicationClient;
......@@ -145,8 +144,14 @@ public class SpellGroupOrderDataManager {
return queryDeliveryTemplateResponse;
}
public GroupWorkJoinResponse groupWorkJoin(QueryOrdersResponseDto.DataBean.OrderBean orderBean,AssortmentCustomerInfoVo userLoginInfoDto){
/**
* 拼团订单,支付回调时开团参团
* @param orderBean
* @param userLoginInfoDto
* @param wxappid
* @return
*/
public GroupWorkJoinResponse groupWorkJoin(QueryOrdersResponseDto.DataBean.OrderBean orderBean,AssortmentCustomerInfoVo userLoginInfoDto,String wxappid){
GroupWorkJoinRequest groupWorkJoinRequest = new GroupWorkJoinRequest();
QueryOrdersResponseDto.DataBean.OrderBean.ProductBean productBean = orderBean.getProductList().get(0);
groupWorkJoinRequest.setActivityCode(orderBean.getOrderSettlementDetailList().get(0).getExternalObjectId());
......@@ -158,13 +163,20 @@ public class SpellGroupOrderDataManager {
groupWorkJoinRequest.setUserId(orderBean.getUserId());
groupWorkJoinRequest.setUserName(orderBean.getUserName());
groupWorkJoinRequest.setPartnerCode(orderBean.getCompanyId());
groupWorkJoinRequest.setAppId(userLoginInfoDto.getAppId());
groupWorkJoinRequest.setAppId(wxappid);
groupWorkJoinRequest.setMobile(StringUtils.isEmpty(userLoginInfoDto.getMobile()) ? orderBean.getPhone() : userLoginInfoDto.getMobile());
log.info(JSON.toJSONString(groupWorkJoinRequest));
GroupWorkJoinResponse groupWorkJoinResponse = promotionDiscountClient.groupWorkJoin(groupWorkJoinRequest);
return groupWorkJoinResponse;
}
/**
* 查询团信息
* @param groupId
* @param partnerId
* @param userId
* @return
*/
public QueryHistoryGroupVO queryHistoryByGroupId(String groupId, String partnerId,String userId){
QueryGroupHistoryRequest querySpellGroupRequest = new QueryGroupHistoryRequest();
List<String> groups = new ArrayList<>();
......@@ -179,6 +191,14 @@ public class SpellGroupOrderDataManager {
return queryHistory.getResult().get(0);
}
/**
* 创建拼团订单,校验团信息
* @param groupId
* @param userId
* @param activityCode
* @param partnerId
* @return
*/
public QuerySpellGroupVoResponse queryByGroupIdNew(String groupId, String userId, String activityCode, String partnerId){
QuerySpellGroupRequest querySpellGroupRequest = new QuerySpellGroupRequest();
querySpellGroupRequest.setGroupId(groupId);
......
......@@ -469,7 +469,7 @@ public class MallOrderServiceImpl implements MallOrderService {
if(OrderMarketType.GROUPB.getIndex() == orderBean.getMarketingType()){
AssortmentCustomerInfoVo userLoginInfoDto = customerInfoManager.getCustomerInfoByObject(sessionId);
GroupWorkJoinResponse groupWorkJoinResponse = spellGroupOrderDataManager.groupWorkJoin(orderBean,userLoginInfoDto);
GroupWorkJoinResponse groupWorkJoinResponse = spellGroupOrderDataManager.groupWorkJoin(orderBean,userLoginInfoDto,wxappid);
if(!ResponseResult.SUCCESS.getCode().equals(groupWorkJoinResponse.getStatusCode()) || groupWorkJoinResponse.getResult() == null){
orderRefund(orderBean, groupWorkJoinResponse.getMsg());
backOrdersNotifyActivity(orderBean, backOrdersChangeOrderStatusConsumerQueue, backOrdersNotifyActivityExchange);
......
package cn.freemud.management.entities.dto.request.activity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 通知促销团员取消订单
*
* @author shichang.wang 2021/4/21
*/
@AllArgsConstructor
@NoArgsConstructor
@Data
public class GroupWorkRefundRequest {
/**
* 活动号
*/
private String activityCode;
/**
* 商户号
*/
private String partnerCode;
/**
* 团号
*/
private String groupId;
/**
* 订单
*/
private String orderId;
/**
* 用户id
*/
private String userId;
}
package cn.freemud.management.entities.dto.response.activity;
import lombok.Data;
/**
* 通知促销团员取消订单
*
* @author shichang.wang 2021/4/21
*/
@Data
public class GroupWorkRefundResponse {
/**
* 提示
*/
private String msg;
/**
* 内容
*/
private Object result;
/**
* 成功-100
*/
private Integer statusCode;
/**
* 版本号
*/
private String ver;
}
package cn.freemud.management.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
/**
* 订单特殊类型
* @Auther: yong.huang
* @Date: 2018/12/29 15:58
* @Description:
*/
@Getter
@AllArgsConstructor
public enum OrderMarketType {
ORDER((byte)1, "普通订单"),
GROUPB((byte)2, "拼团订单"),
SEC_KILL((byte)3, "秒杀订单"),
COLLAGE((byte)4, "拼单订单")
;
private byte index;
private String name;
public static final String API_DESC = "销售类型或营销活动类型 1:普通订单 2:拼团订单 3:秒杀订单 4:拼单订单";
public static OrderMarketType getByIndex(byte index) {
return Arrays.stream(OrderMarketType.values())
.filter(e -> e.getIndex() == index)
.findFirst()
.orElseGet(() -> ORDER);
}
}
......@@ -221,6 +221,10 @@ public enum ResponseResult {
DELIVERY_INFO_NOT_DELIVERY("60001", "当前地址不可配送"),
DELIVERY_INFO_ERROR("60002","配送地址不正确"),
DELIVERY_CREATE_ERROR("60003","运单不足,配送失败"),
SPELL_GROUP_REFUND_ERROR("80015", "取消拼团失败")
;
......
package cn.freemud.management.service.handle;
import cn.freemud.management.entities.dto.request.activity.GroupWorkRefundRequest;
import cn.freemud.management.entities.dto.response.activity.GroupWorkRefundResponse;
import cn.freemud.management.thirdparty.OMSActivityClient;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class ActivityHandle {
private final OMSActivityClient omsActivityClient;
public ActivityHandle(OMSActivityClient omsActivityClient) {
this.omsActivityClient = omsActivityClient;
}
public GroupWorkRefundResponse groupWorkRefund(QueryOrdersResponse.DataBean.OrderBean orderBean){
GroupWorkRefundRequest groupWorkRefundRequest = new GroupWorkRefundRequest(orderBean.getSpellGroupActivityCode(),orderBean.getCompanyId(),orderBean.getSpellGroupCode(),orderBean.getOid(),orderBean.getUserId());
GroupWorkRefundResponse groupWorkRefundResponse = omsActivityClient.groupWorkRefund(groupWorkRefundRequest);
if (!ResponseCodeConstant.RESPONSE_SUCCESS.equals(groupWorkRefundResponse.getStatusCode())) {
return null;
}
return groupWorkRefundResponse;
}
}
......@@ -2,16 +2,22 @@ package cn.freemud.management.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.management.adapter.SaasMallOrderAdapter;
import cn.freemud.management.entities.dto.request.activity.GroupWorkRefundRequest;
import cn.freemud.management.entities.dto.request.order.OrderManagerRequest;
import cn.freemud.management.entities.dto.response.activity.GroupWorkRefundResponse;
import cn.freemud.management.entities.dto.response.order.OrderManagerResponse;
import cn.freemud.management.entities.dto.response.pay.PayRefundResponse;
import cn.freemud.management.enums.OperateType;
import cn.freemud.management.enums.OrderMarketType;
import cn.freemud.management.enums.ResponseResult;
import cn.freemud.management.intercept.OrderServiceException;
import cn.freemud.management.service.OrderBaseService;
import cn.freemud.management.service.OrderManagerService;
import cn.freemud.management.service.handle.*;
import cn.freemud.management.util.ResponseUtil;
import com.freemud.application.sdk.api.constant.ResponseConstant;
import com.freemud.application.sdk.api.ordercenter.enums.AfterSalesStatus;
import com.freemud.sdk.api.assortment.order.domain.ResponseCodeConstant;
import com.freemud.sdk.api.assortment.order.enums.PayRefundStatus;
import com.freemud.sdk.api.assortment.order.response.order.QueryOrdersResponse;
import com.netflix.discovery.converters.Auto;
......@@ -44,6 +50,8 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
private DeliveryHandle deliveryHandle;
@Autowired
private StockHandle stockHandle;
@Autowired
private ActivityHandle activityHandle;
/**
* 同意退款
......@@ -60,6 +68,15 @@ public class MallOrderMangerServiceImpl implements OrderManagerService {
// 修改售后单状态为退货中
mallOrderHandle.mallOrderAgreeApply(request, orderBean);
}else {
// 拼团订单主动退款触发通知促销
if (Objects.equals(com.freemud.sdk.api.assortment.order.enums.OrderSourceType.SAASMALL.getCode(), orderBean.getSource())
&& Objects.equals(OrderMarketType.GROUPB.getIndex(), orderBean.getMarketingType())) {
GroupWorkRefundResponse refundResponse = activityHandle.groupWorkRefund(orderBean);
if (Objects.isNull(refundResponse) || !Objects.equals(ResponseConstant.SUCCESS_RESPONSE_CODE, refundResponse.getStatusCode())) {
return ResponseUtil.error(ResponseResult.SPELL_GROUP_REFUND_ERROR);
}
}
//支付退款
PayRefundResponse refundResponse = new PayRefundResponse();
try {
......
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: PromotionActivityClient
* @Package cn.freemud.service.thirdparty
* @Description:
* @author: liming.guo
* @date: 2018/8/6 11:14
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.management.thirdparty;
import cn.freemud.management.entities.dto.request.activity.GroupWorkRefundRequest;
import cn.freemud.management.entities.dto.response.activity.GroupWorkRefundResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@FeignClient(name = "promotion-service", url = "${saas.activityclient.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface OMSActivityClient {
/**
* 订单主动退款调促销接口
* @param groupWorkRefundRequest
* @return
*/
@PostMapping("/activity/groupWork/refund")
GroupWorkRefundResponse groupWorkRefund(GroupWorkRefundRequest groupWorkRefundRequest);
}
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