Commit e310f9b3 by 缪晖

群收款详情接口

parent 744539c7
...@@ -56,6 +56,14 @@ public class CollageOrderController { ...@@ -56,6 +56,14 @@ public class CollageOrderController {
return collageOrderService.queryCollageOrderById(queryOrderVo); return collageOrderService.queryCollageOrderById(queryOrderVo);
} }
@ApiOperation(value = "拼单群收款详情", notes = "拼单群收款详情")
@ApiImplicitParam(value = "请求", required = true, dataType = "WechatGroupBuyVo", name = "WechatGroupBuyVo")
@ApiAnnotation(logMessage = "createGroupBuy")
@PostMapping(value = "/collage/groupBuyDetail")
public BaseResponse groupBuyDetail(@Validated @LogParams @RequestBody WechatGroupBuyVo requestVo) {
return collageOrderService.groupBuyDetail(requestVo);
}
@ApiOperation(value = "创建拼单群收款", notes = "创建拼单群收款") @ApiOperation(value = "创建拼单群收款", notes = "创建拼单群收款")
@ApiImplicitParam(value = "请求", required = true, dataType = "WechatGroupBuyVo", name = "WechatGroupBuyVo") @ApiImplicitParam(value = "请求", required = true, dataType = "WechatGroupBuyVo", name = "WechatGroupBuyVo")
@ApiAnnotation(logMessage = "createGroupBuy") @ApiAnnotation(logMessage = "createGroupBuy")
......
package cn.freemud.entities.dto.wechat;
import lombok.Data;
import java.util.List;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0.0
* @Description:
* @author: hui.miao
* @date: 2020-11-27 17:50
* @Copyright: 2020 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Data
public class GroupBuyDetailResp {
private String partnerId;
private String shopId;
private String orderCode;
private int payerNum;
private Long totalAmount;
private List<GroupBuyDto> payerList;
}
...@@ -14,5 +14,10 @@ import lombok.Data; ...@@ -14,5 +14,10 @@ import lombok.Data;
*/ */
@Data @Data
public class GroupBuyDto { public class GroupBuyDto {
private String userId;
private String openId;
private String nickName;
private String photoUrl;
private Long amount;
} }
...@@ -31,6 +31,13 @@ public interface CollageOrderService { ...@@ -31,6 +31,13 @@ public interface CollageOrderService {
BaseResponse queryCollageOrderById(QueryOrderVo queryOrderVo); BaseResponse queryCollageOrderById(QueryOrderVo queryOrderVo);
/** /**
* 群收款详情
* @param requestVo
* @return
*/
BaseResponse groupBuyDetail(WechatGroupBuyVo requestVo);
/**
* 创建群收款 * 创建群收款
* @param requestVo * @param requestVo
* @return * @return
......
...@@ -16,11 +16,10 @@ package cn.freemud.service.impl; ...@@ -16,11 +16,10 @@ package cn.freemud.service.impl;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.base.log.LogTreadLocal; import cn.freemud.base.log.LogTreadLocal;
import cn.freemud.base.util.DateUtil; import cn.freemud.base.util.DateUtil;
import cn.freemud.entities.dto.wechat.GetAuthorizerRequestDto; import cn.freemud.entities.dto.wechat.*;
import cn.freemud.entities.dto.wechat.GetTokenResponseDto;
import cn.freemud.entities.dto.wechat.GroupBuyResp;
import cn.freemud.entities.vo.QueryOrderVo; import cn.freemud.entities.vo.QueryOrderVo;
import cn.freemud.enums.ResponseResult; import cn.freemud.enums.ResponseResult;
import cn.freemud.inteceptor.CommonServiceException;
import cn.freemud.service.thirdparty.EcologyAdminApplicationClient; import cn.freemud.service.thirdparty.EcologyAdminApplicationClient;
import cn.freemud.service.thirdparty.WeChatClient; import cn.freemud.service.thirdparty.WeChatClient;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -84,25 +83,57 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -84,25 +83,57 @@ public class CollageOrderServiceImpl implements CollageOrderService {
} }
/** /**
* 创建群收款 * 群收款详情
* @param requestVo * @param requestVo
* @return * @return
*/ */
@Override @Override
public BaseResponse createGroupBuy(WechatGroupBuyVo requestVo) { public BaseResponse groupBuyDetail(WechatGroupBuyVo requestVo) {
// 获取拼单订单信息,若类型不是拼单直接返回报错 // 获取拼单订单信息
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest(); QueryOrdersResponse.DataBean.OrderBean order = this.queryOrderByOrderCode(requestVo.getOrderCode());
baseQueryOrderRequest.setOrderId(requestVo.getOrderCode());
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
if (!ResponseResultEnum.SUCCESS.getCode().equals(response.getErrcode()) || response.getData() == null) { if (null == order) {
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
QueryOrdersResponse.DataBean.OrderBean order = response.getData();
if (null == order.getMarketingType() || OrderMarketType.COLLAGE.getIndex() != order.getMarketingType()) { GroupBuyDetailResp groupBuyDetailResp = new GroupBuyDetailResp();
return ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST); groupBuyDetailResp.setOrderCode(order.getOid());
groupBuyDetailResp.setPartnerId(order.getCompanyId());
groupBuyDetailResp.setShopId(order.getShopId());
List<QueryOrdersResponse.DataBean.OrderBean.ProductBean> productList = order.getProductList();
// 群收款支付用户列表 商品加购人ID不是订单创建人的列表
List<GroupBuyDto> list = new ArrayList<>();
GroupBuyDto groupBuyDto;
List<String> payerUserIdList = productList.stream().filter(product -> !order.getUserId().equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getUserId).distinct().collect(Collectors.toList());
for (String payerUserId : payerUserIdList) {
groupBuyDto = new GroupBuyDto();
groupBuyDto.setUserId(payerUserId);
groupBuyDto.setAmount(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).map(QueryOrdersResponse.DataBean.OrderBean.ProductBean::getSalePrice).reduce(Long::sum).get());
groupBuyDto.setNickName(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).findFirst().get().getNickName());
groupBuyDto.setPhotoUrl(productList.stream().filter(product -> payerUserId.equals(product.getUserId())).findFirst().get().getPhotoUrl());
list.add(groupBuyDto);
}
groupBuyDetailResp.setPayerList(list);
groupBuyDetailResp.setPayerNum(list.size());
groupBuyDetailResp.setTotalAmount(list.stream().map(GroupBuyDto::getAmount).reduce(Long::sum).get());
return ResponseUtil.success(groupBuyDetailResp);
}
/**
* 创建群收款
* @param requestVo
* @return
*/
@Override
public BaseResponse createGroupBuy(WechatGroupBuyVo requestVo) {
// 获取拼单订单信息
QueryOrdersResponse.DataBean.OrderBean order = this.queryOrderByOrderCode(requestVo.getOrderCode());
if (null == order) {
ResponseUtil.error(ResponseResult.ORDER_NOT_EXIST);
} }
// 根据sessionId获取当前用户信息以及appid // 根据sessionId获取当前用户信息以及appid
...@@ -168,4 +199,29 @@ public class CollageOrderServiceImpl implements CollageOrderService { ...@@ -168,4 +199,29 @@ public class CollageOrderServiceImpl implements CollageOrderService {
return ResponseUtil.error("创建群收款失败"); return ResponseUtil.error("创建群收款失败");
} }
} }
/**
* 根据orderCode获取订单信息
* @param orderCode
* @return
*/
private QueryOrdersResponse.DataBean.OrderBean queryOrderByOrderCode(String orderCode) {
// 获取拼单订单信息,若类型不是拼单直接返回报错
BaseQueryOrderRequest baseQueryOrderRequest = new BaseQueryOrderRequest();
baseQueryOrderRequest.setOrderId(orderCode);
baseQueryOrderRequest.setTrackingNo(LogTreadLocal.getTrackingNo());
QueryOrderByIdResponse response = orderCenterSdkService.queryOrderById(baseQueryOrderRequest);
if (!ResponseResultEnum.SUCCESS.getCode().equals(response.getErrcode()) || response.getData() == null) {
return null;
}
QueryOrdersResponse.DataBean.OrderBean order = response.getData();
if (null == order.getMarketingType() || OrderMarketType.COLLAGE.getIndex() != order.getMarketingType()) {
return null;
}
return order;
}
} }
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