Commit 5a7c5e71 by 周晓航

Merge branch 'KA-20210617评价有礼ID1031153-周晓航'

# Conflicts:
#	order-application-service/src/main/java/cn/freemud/service/thirdparty/ActivityApplicationClient.java
parents 4fd3538c bb2eef4f
...@@ -133,7 +133,7 @@ ...@@ -133,7 +133,7 @@
<dependency> <dependency>
<artifactId>assortment-data-manager</artifactId> <artifactId>assortment-data-manager</artifactId>
<groupId>com.freemud.sdk.api.assortment</groupId> <groupId>com.freemud.sdk.api.assortment</groupId>
<version>5.5.8.RELEASE</version> <version>5.5.12.SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>cn.freemud.commons</groupId> <groupId>cn.freemud.commons</groupId>
......
package cn.freemud.entities.dto.Evaluation; package cn.freemud.entities.dto.Evaluation;
import cn.freemud.entities.dto.activity.CheckAndJoinResponse;
import lombok.Data; import lombok.Data;
@Data @Data
public class OrderEvaluationStatus { public class OrderEvaluationStatus {
private Integer status; private Integer status;
private CheckAndJoinResponse result;
public OrderEvaluationStatus(Integer status) { public OrderEvaluationStatus(Integer status) {
this.status = status; this.status = status;
} }
......
package cn.freemud.entities.dto.activity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/18 下午6:53
* @description :
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ActivityRequestCommon {
//订单号
protected String oid;
protected String sessionId;
//门店编号
protected String storeId;
// 版本号 小程序版本 传1
protected Integer ver = 1;
}
package cn.freemud.entities.dto.activity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/18 下午6:57
* @description :
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CheckAndJoinRequest extends ActivityRequestCommon{
/**
* 参与的订单 传递活动号 查询 非必填
*/
private String activityId;
/**
* 订单创建时间 必传
*/
private String orderCreateTime;
}
package cn.freemud.entities.dto.activity;
import com.freemud.application.sdk.api.membercenter.response.Coupon;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/18 下午7:02
* @description :
*/
@Data
public class CheckAndJoinResponse {
/**
* 活动名称
*/
private String activityName;
/**
* id
*/
private String activityId;
/**
* 和 activityId 一致
*/
private String activityNo;
/**
* 送券方式
*/
private Integer sendType;
/**
* 活动类型:2:裂变分享,3:进店有礼,4:限时特价,5:兑换码,6:支付有礼,7:一键领券,8:注册有礼,9:邀请有礼,10:精准营销,11:瓜分红包,12:首次登入,16:福袋分享,24:评价有礼
*/
private Integer type;
/**
* 滚动显示用户奖励 0-否 1-是
*/
private String showEncourage;
/**
* 奖励类型 0:非码券 2:微信商家券
*/
private Integer rewardType;
/**
* 券列表
*/
private List<CouponVo> coupons;
/**
*
*/
private WechatCouponInfoVo wechatCouponInfo;
/**
* 开始时间
*/
private String startTime;
/**
* 结束时间
*/
private String endTime;
/**
* 活动详细描述
*/
private String description;
}
package cn.freemud.entities.dto.activity;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/21 下午4:59
* @description :
*/
@Data
public class CouponVo {
/**
* 券活动编号
*/
private String activityCode;
/**
* 折扣券的折扣率 例如8.8折
*/
private String benefitRebate;
/**
* 券名称
*/
private String couponName;
/**
* 优惠券类型 0-商品券 1-代金券 2-折扣券
*/
private Integer couponType;
/**
* 抵扣金额
*/
private Long discountAmount;
/**
* 有效期 2019.01.12-2019.02.12
*/
private String effectiveData;
/**
* 过期时间
*/
private String expiryTime;
/**
*
*/
private String logo;
/**
* 起用金额
*/
private Long minAmount;
/**
* validityPeriodEnd
*/
private String validityPeriodEnd;
/**
* validityPeriodStart
*/
private String validityPeriodStart;
}
package cn.freemud.entities.dto.activity;
import lombok.Data;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/21 下午5:04
* @description :
*/
@Data
public class SendCouponParamsVo {
/**
* 券code,如果批次是发放时指定code的类型,则发券时必填
*/
private String coupon_code;
/**
* 发券凭证
*/
private String out_request_no;
/**
* 批次号
*/
private String stock_id;
}
package cn.freemud.entities.dto.activity;
import lombok.Data;
import java.util.List;
/**
* @author : xh.Z
* @email : fisherman0510@163.com
* @Date : 2021/6/21 下午5:02
* @description :
*/
@Data
public class WechatCouponInfoVo {
/**
* 发券商户号
*/
private String send_coupon_merchant;
private List<SendCouponParamsVo> send_coupon_params;
private String sign;
}
...@@ -61,4 +61,6 @@ public class AddUserOrderEvaluationNewRequestVo { ...@@ -61,4 +61,6 @@ public class AddUserOrderEvaluationNewRequestVo {
*/ */
List<AddProductEvaluationReqDto> productEvaluationList; List<AddProductEvaluationReqDto> productEvaluationList;
private String sessionId;
} }
...@@ -20,4 +20,6 @@ public class GetEvaluationStatusNewRequestVo { ...@@ -20,4 +20,6 @@ public class GetEvaluationStatusNewRequestVo {
private String orderId; private String orderId;
private String sessionId;
} }
...@@ -5,13 +5,21 @@ import cn.freemud.base.entity.BaseResponse; ...@@ -5,13 +5,21 @@ import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.AddProductEvaluationReqDto; import cn.freemud.entities.dto.AddProductEvaluationReqDto;
import cn.freemud.entities.dto.Evaluation.OrderEvaluationStatus; import cn.freemud.entities.dto.Evaluation.OrderEvaluationStatus;
import cn.freemud.entities.dto.activity.ActivityRequestCommon;
import cn.freemud.entities.dto.activity.CheckAndJoinRequest;
import cn.freemud.entities.dto.activity.CheckAndJoinResponse;
import cn.freemud.entities.vo.AddUserOrderEvaluationNewRequestVo; import cn.freemud.entities.vo.AddUserOrderEvaluationNewRequestVo;
import cn.freemud.entities.vo.GetEvaluationDetailByOrderIdRequestVo; import cn.freemud.entities.vo.GetEvaluationDetailByOrderIdRequestVo;
import cn.freemud.entities.vo.GetEvaluationStatusNewRequestVo; import cn.freemud.entities.vo.GetEvaluationStatusNewRequestVo;
import cn.freemud.enums.EvaluationStatus; import cn.freemud.enums.EvaluationStatus;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.EvaluationService; import cn.freemud.service.EvaluationService;
import cn.freemud.service.thirdparty.ActivityApplicationClient;
import cn.freemud.utils.DateUtils;
import cn.freemud.utils.LogUtil;
import cn.freemud.utils.ResponseUtil; import cn.freemud.utils.ResponseUtil;
import com.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentOrderEvaluation; import com.freemud.api.assortment.datamanager.entity.db.AssortmentOrderEvaluation;
import com.freemud.api.assortment.datamanager.entity.db.AssortmentProductEvaluation; import com.freemud.api.assortment.datamanager.entity.db.AssortmentProductEvaluation;
import com.freemud.api.assortment.datamanager.entity.dto.InsertOrderEvaluationReqDto; import com.freemud.api.assortment.datamanager.entity.dto.InsertOrderEvaluationReqDto;
...@@ -28,9 +36,7 @@ import org.apache.commons.lang.StringUtils; ...@@ -28,9 +36,7 @@ import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.Arrays;
import java.util.List;
/** /**
* All rights Reserved, Designed By www.freemud.com * All rights Reserved, Designed By www.freemud.com
...@@ -53,9 +59,12 @@ public class EvaluationServiceImpl implements EvaluationService { ...@@ -53,9 +59,12 @@ public class EvaluationServiceImpl implements EvaluationService {
private AssortmentEvaluationManager assortmentEvaluationManager; private AssortmentEvaluationManager assortmentEvaluationManager;
@Autowired @Autowired
private EvaluationAdapter evaluationAdapter; private EvaluationAdapter evaluationAdapter;
@Autowired
private ActivityApplicationClient activityApplicationClient;
@Override @Override
public BaseResponse userOrderEvaluationNew(AddUserOrderEvaluationNewRequestVo request) { public BaseResponse userOrderEvaluationNew(AddUserOrderEvaluationNewRequestVo request) {
OrderEvaluationStatus orderEvaluationStatus = new OrderEvaluationStatus(EvaluationStatus.SUCCESS.getCode());
try { try {
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest(); BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(request.getOrderId()); baseQueryOrderRequest.setOrderId(request.getOrderId());
...@@ -64,13 +73,21 @@ public class EvaluationServiceImpl implements EvaluationService { ...@@ -64,13 +73,21 @@ public class EvaluationServiceImpl implements EvaluationService {
return ResponseUtil.success(ResponseResult.ORDER_NOT_EXIST); return ResponseUtil.success(ResponseResult.ORDER_NOT_EXIST);
} }
QueryOrdersResponse.DataBean.OrderBean order = orderDetailResponse.getData(); QueryOrdersResponse.DataBean.OrderBean order = orderDetailResponse.getData();
// 判断订单是否评价 // 判断订单是否评价
List<AssortmentOrderEvaluation> orderEvaluationDetails = assortmentEvaluationManager.getOrderEvaluationDetailsByOrderId(request.getOrderId()); List<AssortmentOrderEvaluation> orderEvaluationDetails = assortmentEvaluationManager.getOrderEvaluationDetailsByOrderId(request.getOrderId());
if (CollectionUtils.isNotEmpty(orderEvaluationDetails)) { if (CollectionUtils.isNotEmpty(orderEvaluationDetails)) {
return ResponseUtil.success(new OrderEvaluationStatus(EvaluationStatus.REPEAT.getCode())); // 已经评价 查询是否有活动数据
AssortmentOrderEvaluation assortmentOrderEvaluation = orderEvaluationDetails.get(0);
orderEvaluationStatus.setStatus(EvaluationStatus.REPEAT.getCode());
CheckAndJoinResponse checkAndJoinMsg = getCheckAndJoinMsg(orderDetailResponse.getData(), request.getSessionId(), request.getOrderId(), assortmentOrderEvaluation.getActivityId());
orderEvaluationStatus.setResult(checkAndJoinMsg);
return ResponseUtil.success(orderEvaluationStatus);
} }
// 添加订单评价信息 // 添加订单评价信息
InsertOrderEvaluationReqDto insertOrderEvaluationReqDto = evaluationAdapter.convent2InsertOrderEvaluationReqDto(request, order); InsertOrderEvaluationReqDto insertOrderEvaluationReqDto = evaluationAdapter.convent2InsertOrderEvaluationReqDto(request, order);
// fisherman 有评价有礼数据 就设置到对象中
orderEvaluationStatus.setResult(getCheckAndJoinMsg(orderDetailResponse.getData(), request.getSessionId(), request.getOrderId(), null));
assortmentEvaluationManager.insertOrderEvaluationDetails(insertOrderEvaluationReqDto); assortmentEvaluationManager.insertOrderEvaluationDetails(insertOrderEvaluationReqDto);
// 添加订单下的商品评价信息 // 添加订单下的商品评价信息
List<AddProductEvaluationReqDto> addProductEvaluationList = request.getProductEvaluationList(); List<AddProductEvaluationReqDto> addProductEvaluationList = request.getProductEvaluationList();
...@@ -84,7 +101,51 @@ public class EvaluationServiceImpl implements EvaluationService { ...@@ -84,7 +101,51 @@ public class EvaluationServiceImpl implements EvaluationService {
ErrorLog.printErrorLog("userOrderEvaluationNewError", "/order/userOrderEvaluationNew", request, ex); ErrorLog.printErrorLog("userOrderEvaluationNewError", "/order/userOrderEvaluationNew", request, ex);
return ResponseUtil.success(new OrderEvaluationStatus(EvaluationStatus.FAIL.getCode())); return ResponseUtil.success(new OrderEvaluationStatus(EvaluationStatus.FAIL.getCode()));
} }
return ResponseUtil.success(new OrderEvaluationStatus(EvaluationStatus.SUCCESS.getCode())); return ResponseUtil.success(orderEvaluationStatus);
}
/**
* 获取活动数据 用于校验
*
* @param data
* @param sessionId
* @param orderId
* @param activityId
* @return
*/
private CheckAndJoinResponse getCheckAndJoinMsg(QueryOrdersResponse.DataBean.OrderBean data,
String sessionId,
String orderId,
String activityId) {
// 老小程序 没有sessionId 不需要查询评价有礼
if (sessionId == null) {
return null;
}
if (StringUtils.isEmpty(activityId)) {
activityId =null;
}
CheckAndJoinRequest requestCommon = getCheckAndJoinRequest(data, sessionId, orderId, activityId);
BaseResponse<CheckAndJoinResponse> checkAndJoin = activityApplicationClient.checkAndJoin(requestCommon);
// LogUtil.info("请求活动-评价有礼",requestCommon, checkAndJoin);
if (checkAndJoin != null
&& checkAndJoin.getCode().equals(ResponseResult.SUCCESS.getCode())) {
return checkAndJoin.getResult();
}
return null;
}
private CheckAndJoinRequest getCheckAndJoinRequest(QueryOrdersResponse.DataBean.OrderBean data,
String sessionId,
String orderId,
String activityId) {
CheckAndJoinRequest requestCommon = new CheckAndJoinRequest();
requestCommon.setOid(orderId);
requestCommon.setSessionId(sessionId);
requestCommon.setStoreId(data.getShopId());
requestCommon.setOrderCreateTime(DateUtil.convert2Str(new Date(data.getGmtCreate()), DateUtil.FORMAT_YYYY_MM_DD_HHMMSS));
requestCommon.setActivityId(activityId);
return requestCommon;
} }
@Override @Override
...@@ -149,11 +210,26 @@ public class EvaluationServiceImpl implements EvaluationService { ...@@ -149,11 +210,26 @@ public class EvaluationServiceImpl implements EvaluationService {
if (StringUtils.isEmpty(request.getOrderId())) { if (StringUtils.isEmpty(request.getOrderId())) {
return ResponseUtil.success(new OrderEvaluationStatus(2)); return ResponseUtil.success(new OrderEvaluationStatus(2));
} }
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(request.getOrderId());
OrderDetailResponse orderDetailResponse = orderCenterSdkService.getByIdForParentProduct(baseQueryOrderRequest);
if (orderDetailResponse == null || !ResponseResult.SUCCESS.getCode().equals(orderDetailResponse.getErrcode() + "") || orderDetailResponse.getData() == null) {
throw new ServiceException(ResponseResult.ORDER_NOT_EXIST);
}
OrderEvaluationStatus orderEvaluationStatus = new OrderEvaluationStatus(1);
List<AssortmentOrderEvaluation> orderEvaluationListAmount = assortmentEvaluationManager.getOrderEvaluationDetailsByOrderId(request.getOrderId()); List<AssortmentOrderEvaluation> orderEvaluationListAmount = assortmentEvaluationManager.getOrderEvaluationDetailsByOrderId(request.getOrderId());
CheckAndJoinResponse checkAndJoinMsg;
if (orderEvaluationListAmount != null && orderEvaluationListAmount.size() > 0) { if (orderEvaluationListAmount != null && orderEvaluationListAmount.size() > 0) {
return ResponseUtil.success(new OrderEvaluationStatus(1)); // 获取 评价有礼活动
AssortmentOrderEvaluation assortmentOrderEvaluation = orderEvaluationListAmount.get(0);
checkAndJoinMsg = getCheckAndJoinMsg(orderDetailResponse.getData(), request.getSessionId(), assortmentOrderEvaluation.getOrderId(), assortmentOrderEvaluation.getActivityId());
} else { } else {
return ResponseUtil.success(new OrderEvaluationStatus(2)); orderEvaluationStatus.setStatus(2);
checkAndJoinMsg = getCheckAndJoinMsg(orderDetailResponse.getData(), request.getSessionId(), request.getOrderId(), null);
} }
orderEvaluationStatus.setResult(checkAndJoinMsg);
return ResponseUtil.success(orderEvaluationStatus);
} }
} }
...@@ -13,6 +13,8 @@ ...@@ -13,6 +13,8 @@
package cn.freemud.service.thirdparty; package cn.freemud.service.thirdparty;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.activity.ActivityRequestCommon;
import cn.freemud.entities.dto.activity.CheckAndJoinResponse;
import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto; import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDto;
import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDtoNew; import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseDtoNew;
import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj; import cn.freemud.entities.dto.activity.PayGiftCheckAndJoinResponseObj;
...@@ -40,4 +42,13 @@ public interface ActivityApplicationClient { ...@@ -40,4 +42,13 @@ public interface ActivityApplicationClient {
*/ */
@PostMapping("/promotionActivity/payGiftShareCheckAndJoin") @PostMapping("/promotionActivity/payGiftShareCheckAndJoin")
BaseResponse<PayGiftCheckAndJoinResponseObj> payGiftCheckAndJoinNew(@RequestBody PayGitCheckAndJoinRequestDto requestVo); BaseResponse<PayGiftCheckAndJoinResponseObj> payGiftCheckAndJoinNew(@RequestBody PayGitCheckAndJoinRequestDto requestVo);
/**
* 查询可领券活动
* 目前: 评价有礼活动使用
*/
@PostMapping("/promotionActivity/evaluate/checkAndJoin")
public BaseResponse<CheckAndJoinResponse> checkAndJoin(@RequestBody ActivityRequestCommon requestVo);
} }
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