Commit c630185a by zhiheng.zhang

Merge branch '20200715_清除购物车_张志恒' into develop

parents 5295ada7 ea44015d
......@@ -364,5 +364,4 @@ public class ShoppingCartBaseServiceImpl implements ShoppingCartBaseService {
}
}
......@@ -18,9 +18,11 @@ import cn.freemud.enums.CreateOrderType;
import cn.freemud.enums.OrderChannelType;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.ShoppingCartNewService;
import cn.freemud.service.ShoppingCartToolsService;
import cn.freemud.service.impl.ShoppingCartMallServiceImpl;
import cn.freemud.service.impl.ShoppingCartMealServiceImpl;
import cn.freemud.service.impl.ShoppingCartNewServiceImpl;
import cn.freemud.service.impl.ShoppingCartToolsServiceImpl;
import cn.freemud.utils.ResponseUtil;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
......@@ -166,4 +168,13 @@ public class ShoppingCartController {
return SDKCommonBaseContextWare.getBean(ShoppingCartNewServiceImpl.class);
}
/**
* 清空购物车{技术支持用}
*/
@ApiAnnotation(logMessage = "clear/goods")
@PostMapping(value = "/clearGoods")
public BaseResponse clearGoods(@Validated @LogParams @RequestBody ShoppingCartClearToolsRequestVo request) {
return SDKCommonBaseContextWare.getBean(ShoppingCartToolsServiceImpl.class).clear(request);
}
}
package cn.freemud.entities.dto;
import lombok.Data;
import lombok.ToString;
@Data
@ToString
public class GetMemberListRequestDto {
private String partnerId;
private String mobile;
private Integer pageNum;
private Integer pageSize;
public GetMemberListRequestDto(String partnerId, String mobile, Integer pageNum, Integer pageSize) {
this.partnerId = partnerId;
this.mobile = mobile;
this.pageNum = pageNum;
this.pageSize = pageSize;
}
}
package cn.freemud.entities.dto;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@NoArgsConstructor
@Data
public class GetMemberListResponseDto {
private String code;
private String message;
private ResultBean data;
@NoArgsConstructor
@Data
public static class ResultBean {
private List<Member> memberList;
private Integer totalPages;
private Integer pageNum;
private Integer pageSize;
private Integer totalCount;
@NoArgsConstructor
@Data
public static class Member {
/**
* 会员Id
*/
private String memberId;
private String mobile;
private String nickName;
private String RegisterTime;
private String ruleName;
private Integer statusFlag;
private Integer currentScore;
private Integer consumeMoney;
private Integer consumerCount;
private List<String> labelList;
private List<Integer> memberPaidList;
}
}
}
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @Title: ShoppingCartClearToolsRequestVo
* @Package cn.freemud.entities.vo
* @Description:
* @author: zhiheng.zhang
* @date: 2020/7/15
* @version V1.0
* @Copyright: 2018 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
package cn.freemud.entities.vo;
import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;
@Data
public class ShoppingCartClearToolsRequestVo extends BaseRequestVo {
private String userId;
@NotEmpty(message = "手机号不能为空")
private String mobile;
@NotEmpty(message = "shopId不能为空")
private String shopId;
}
package cn.freemud.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.vo.ShoppingCartClearToolsRequestVo;
public interface ShoppingCartToolsService {
/**
* 清空购物车
*
* @param request
* @return
*/
BaseResponse clear(ShoppingCartClearToolsRequestVo request);
}
package cn.freemud.service.impl;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.GetMemberListRequestDto;
import cn.freemud.entities.dto.GetMemberListResponseDto;
import cn.freemud.entities.vo.ShoppingCartClearToolsRequestVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.service.ShoppingCartToolsService;
import cn.freemud.service.thirdparty.MemberToolsClient;
import cn.freemud.utils.ResponseUtil;
import com.freemud.application.sdk.api.log.LogThreadLocal;
import com.freemud.sdk.api.assortment.shoppingcart.service.ShoppingCartBaseService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
@Slf4j
@Service
public class ShoppingCartToolsServiceImpl implements ShoppingCartToolsService {
static final Logger logger = LoggerFactory.getLogger(ShoppingCartToolsServiceImpl.class);
@Autowired
private MemberToolsClient memberToolsClient;
@Autowired
private ShoppingCartBaseService shoppingCartBaseService;
@Autowired
private AssortmentSdkService assortmentSdkService;
/**
* @notes 清空购物车
* @param shoppingCartClearToolsRequestVo
* @return
*/
@Override
public BaseResponse clear(ShoppingCartClearToolsRequestVo shoppingCartClearToolsRequestVo) {
GetMemberListResponseDto getMemberListResponseDto = getMemberListResponseDto(shoppingCartClearToolsRequestVo);
if (!ResponseResult.SUCCESS.getCode().equals(getMemberListResponseDto.getCode())) {
return ResponseUtil.error(ResponseResult.SYSTEM_ERROR, "查询会员信息返回失败");
}
String mobile = shoppingCartClearToolsRequestVo.getMobile();
if(0 == getMemberListResponseDto.getData().getTotalCount()){
return ResponseUtil.error(ResponseResult.SUCCESS,mobile+" 用户下购物车数据为空");
}
String partnerId = shoppingCartClearToolsRequestVo.getPartnerId();
String storeId = shoppingCartClearToolsRequestVo.getShopId();
StringBuffer stringBuffer = new StringBuffer();
String memberId = "";
List<String> userIds = getUserIds(getMemberListResponseDto);
for (String userId : userIds) {
try {
// 构造请求参数,进行清空购物车
memberId = userId;
com.freemud.sdk.api.assortment.shoppingcart.domain.CartParamDto cartParamDto = assortmentSdkService.getCartParamDto(partnerId, storeId, userId);
shoppingCartBaseService.clear(cartParamDto, LogThreadLocal.getTrackingNo());
packageMessage( stringBuffer,partnerId,storeId,mobile,memberId, "成功");
}catch (Exception var9) {
logger.error(("清空购物车失败:"+"商户号:"+partnerId + ",门店号:"+storeId+",手机号:"+mobile+",会员号:"+memberId), var9);
packageMessage( stringBuffer,partnerId,storeId,mobile,memberId, "失败");
continue;
}
}
return ResponseUtil.success(stringBuffer);
}
private GetMemberListResponseDto getMemberListResponseDto(ShoppingCartClearToolsRequestVo shoppingCartClearToolsRequestVo){
GetMemberListRequestDto getMemberListRequestDto = new GetMemberListRequestDto(shoppingCartClearToolsRequestVo.getPartnerId(),shoppingCartClearToolsRequestVo.getMobile(),1,999);
GetMemberListResponseDto getMemberListResponseDto = memberToolsClient.getMemberList(getMemberListRequestDto);
return getMemberListResponseDto;
}
private List<String> getUserIds(GetMemberListResponseDto getMemberListResponseDto){
return getMemberListResponseDto.getData().getMemberList().stream().map(GetMemberListResponseDto.ResultBean.Member::getMemberId).collect(Collectors.toList());
}
private void packageMessage(StringBuffer stringBuffer,String partnerId,String storeId,String mobile,String memberId,String message){
stringBuffer.append("商户号:"+partnerId + ",门店号:"+storeId+",手机号:"+mobile+",会员号:"+memberId+" 清除购物车:"+message+";");
}
}
package cn.freemud.service.thirdparty;
import cn.freemud.entities.dto.GetMemberListRequestDto;
import cn.freemud.entities.dto.GetMemberListResponseDto;
import org.springframework.cloud.netflix.feign.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-TOOLS-SERVICE", url = "${saas.customertools.feign.url}")
@RequestMapping(produces = {"application/json;charset=UTF-8"})
public interface MemberToolsClient {
/**
* 根据会员手机号和商户获取会员信息
*/
@PostMapping(value = "/customerservice/getMembers")
GetMemberListResponseDto getMemberList(@RequestBody GetMemberListRequestDto getMemberListRequestDto);
}
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