Commit 27e3a269 by chongfu.liang

重构

parent 5cb11104
package cn.freemud.demo.adapter; package cn.freemud.demo.adapter;
import cn.freemud.adapter.ShoppingCartConvertAdapter; import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.demo.entities.AddGoodsShoppingCartBO;
import cn.freemud.demo.entities.bo.goods.ProductBO; import cn.freemud.demo.entities.bo.goods.ProductBO;
import cn.freemud.demo.entities.bo.goods.add.*; import cn.freemud.demo.entities.bo.goods.add.*;
import cn.freemud.demo.entities.dto.goods.add.*; import cn.freemud.demo.entities.dto.goods.add.*;
...@@ -23,7 +24,7 @@ public class ServiceBOAdapter { ...@@ -23,7 +24,7 @@ public class ServiceBOAdapter {
return baseAddGoodsBO; return baseAddGoodsBO;
} }
public BaseAddGoodsVO convert2AddGoodsVO(String bizType, BaseAddGoodsBO baseAddGoodsBO) { public BaseAddGoodsVO convert2AddGoodsVO(String bizType, AddGoodsShoppingCartBO baseAddGoodsBO) {
BaseAddGoodsVO baseAddGoodsVO; BaseAddGoodsVO baseAddGoodsVO;
if (BizTypeEnum.MAIL.getCode().equals(bizType)){ if (BizTypeEnum.MAIL.getCode().equals(bizType)){
baseAddGoodsVO = createMallVO(baseAddGoodsBO); baseAddGoodsVO = createMallVO(baseAddGoodsBO);
...@@ -60,17 +61,17 @@ public class ServiceBOAdapter { ...@@ -60,17 +61,17 @@ public class ServiceBOAdapter {
return mallAddGoodsBO; return mallAddGoodsBO;
} }
private PlatformAddGoodsVO createPlatformVO(BaseAddGoodsBO baseAddGoodsBO) { private PlatformAddGoodsVO createPlatformVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
PlatformAddGoodsVO platformAddGoodsVO = new PlatformAddGoodsVO(); PlatformAddGoodsVO platformAddGoodsVO = new PlatformAddGoodsVO();
return platformAddGoodsVO; return platformAddGoodsVO;
} }
private MCoffeeAddGoodsVO createMCoffeeVO(BaseAddGoodsBO baseAddGoodsBO) { private MCoffeeAddGoodsVO createMCoffeeVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
MCoffeeAddGoodsVO mCoffeeAddGoodsVO = new MCoffeeAddGoodsVO(); MCoffeeAddGoodsVO mCoffeeAddGoodsVO = new MCoffeeAddGoodsVO();
return mCoffeeAddGoodsVO; return mCoffeeAddGoodsVO;
} }
private MallAddGoodsVO createMallVO(BaseAddGoodsBO baseAddGoodsBO) { private MallAddGoodsVO createMallVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
MallAddGoodsVO mallAddGoodsVO = new MallAddGoodsVO(); MallAddGoodsVO mallAddGoodsVO = new MallAddGoodsVO();
return mallAddGoodsVO; return mallAddGoodsVO;
} }
......
...@@ -14,6 +14,7 @@ package cn.freemud.demo.controller; ...@@ -14,6 +14,7 @@ package cn.freemud.demo.controller;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.demo.adapter.ServiceBOAdapter; import cn.freemud.demo.adapter.ServiceBOAdapter;
import cn.freemud.demo.entities.AddGoodsShoppingCartBO;
import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO; import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO;
import cn.freemud.demo.entities.dto.goods.add.BaseAddGoodsVO; import cn.freemud.demo.entities.dto.goods.add.BaseAddGoodsVO;
import cn.freemud.demo.entities.dto.goods.add.AddGoodsRequestDTO; import cn.freemud.demo.entities.dto.goods.add.AddGoodsRequestDTO;
...@@ -40,6 +41,7 @@ import com.freemud.application.sdk.api.log.ApiAnnotation; ...@@ -40,6 +41,7 @@ import com.freemud.application.sdk.api.log.ApiAnnotation;
import com.freemud.application.sdk.api.log.LogParams; import com.freemud.application.sdk.api.log.LogParams;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
...@@ -49,6 +51,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -49,6 +51,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -70,20 +73,20 @@ public class ShoppingCartController { ...@@ -70,20 +73,20 @@ public class ShoppingCartController {
*/ */
@ApiAnnotation(logMessage = "addGoods") @ApiAnnotation(logMessage = "addGoods")
@PostMapping(value = "/addGoods") @PostMapping(value = "/addGoods")
public BaseResponse addGoods(@LogParams @RequestBody Map<String, Object> map) { public BaseResponse addGoods(@LogParams @RequestBody Map<String, Object> request) throws InvocationTargetException, IllegalAccessException {
// AddGoodsRequestDTO baseRequestDTO = JSON.parseObject(params, AddGoodsRequestDTO.class);
AddGoodsRequestDTO baseRequestDTO = new AddGoodsRequestDTO();
BeanUtils.populate(baseRequestDTO, request);
/** /**
* 是否用新字段,还是沿用老逻辑 * 是否用新字段,还是沿用老逻辑
*/ */
BizTypeEnum bizType = BizTypeUtil.getBizType(baseRequestDTO); BizTypeEnum bizType = BizTypeUtil.getBizType(baseRequestDTO.getPartnerId());
AbstractAddGoodsService addGoodsServiceInstance = ServiceFactory.createAddGoodsServiceInstance(bizType.getCode()); AbstractAddGoodsService addGoodsServiceInstance = ServiceFactory.createAddGoodsServiceInstance(bizType.getCode());
BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO); BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO);
BaseAddGoodsBO addGoodsResponseBO = addGoodsServiceInstance.addGoods(addGoodsBOInstance); AddGoodsShoppingCartBO addGoodsResponseBO = addGoodsServiceInstance.addGoods(addGoodsBOInstance);
BaseAddGoodsVO baseAddGoodsVO = serviceBOAdapter.convert2AddGoodsVO(bizType.getCode(), addGoodsResponseBO); BaseAddGoodsVO baseAddGoodsVO = serviceBOAdapter.convert2AddGoodsVO(bizType.getCode(), addGoodsResponseBO);
return ResponseUtil.success(baseAddGoodsVO); return ResponseUtil.success(baseAddGoodsVO);
......
package cn.freemud.demo.entities;
public class AddGoodsShoppingCartBO {
}
package cn.freemud.demo.entities;
public class AddGoodsToShoppingCartBO {
}
package cn.freemud.demo.entities;
public class CalCostBO {
}
package cn.freemud.demo.entities;
public class CheckBussinessRulesBO {
}
package cn.freemud.demo.entities;
public class SetMessageBO {
}
...@@ -2,7 +2,7 @@ package cn.freemud.demo.service; ...@@ -2,7 +2,7 @@ package cn.freemud.demo.service;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.demo.constant.ResponseConstant; import cn.freemud.demo.constant.ResponseConstant;
import cn.freemud.demo.entities.ResponseBuilder; import cn.freemud.demo.entities.*;
import cn.freemud.demo.entities.bo.goods.ProductBO; import cn.freemud.demo.entities.bo.goods.ProductBO;
import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO; import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO;
import cn.freemud.demo.manager.AssortmentSdkManager; import cn.freemud.demo.manager.AssortmentSdkManager;
...@@ -32,29 +32,26 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -32,29 +32,26 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
* *
* @return * @return
*/ */
public final BaseAddGoodsBO addGoods(BaseAddGoodsBO addGoodsBO) { public final AddGoodsShoppingCartBO addGoods(BaseAddGoodsBO addGoodsBO) {
// 基本参数校验 // 基本参数校验
this.checkParams(addGoodsBO); this.checkParams(addGoodsBO);
// 获取购物车和加车商品信息 // 获取购物车和加车商品信息
this.getShoppingCartInfo(addGoodsBO); CheckBussinessRulesBO checkBussinessRulesBO = this.getShoppingCartInfo(addGoodsBO);
// 业务校验,例如商品数量库存之类的信息 // 业务校验,例如商品数量库存之类的信息
this.checkBusinessRules(addGoodsBO); AddGoodsToShoppingCartBO addGoodsToShoppingCartBO = this.checkBusinessRules(addGoodsBO, checkBussinessRulesBO);
// 添加商品到购物车 // 添加商品到购物车
this.addGoodsToShoppingCart(addGoodsBO); CalCostBO calCostBO = this.addGoodsToShoppingCart(addGoodsBO, addGoodsToShoppingCartBO);
// 计算费用,例如配送费 // 计算费用,例如配送费
this.calCost(addGoodsBO); SetMessageBO setMessageBO = this.calCost(addGoodsBO, calCostBO);
// 提示语设置,例如满减信息 // 提示语设置,例如满减信息
this.setMessage(addGoodsBO); AddGoodsShoppingCartBO addGoodsShoppingCartBO = this.setMessage(addGoodsBO, setMessageBO);
// 拼装返回体 return addGoodsShoppingCartBO;
this.buildResponse(addGoodsBO);
return addGoodsBO;
} }
public final BaseResponse checkCommParams(BaseAddGoodsBO baseRequestDTO) { public final BaseResponse checkCommParams(BaseAddGoodsBO baseRequestDTO) {
...@@ -66,15 +63,23 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -66,15 +63,23 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
return ResponseBuilder.success(); return ResponseBuilder.success();
} }
public final BaseResponse checkCommBusinessRules(BaseAddGoodsBO baseRequestDTO) { public final AddGoodsToShoppingCartBO checkCommBusinessRules(BaseAddGoodsBO baseRequestDTO, CheckBussinessRulesBO checkBussinessRulesBO) {
return null;
}
public final CalCostBO commAddGoodsToShoppingCart(BaseAddGoodsBO baseRequestDTO, AddGoodsToShoppingCartBO addGoodsToShoppingCartBO) {
return null; return null;
} }
public final BaseResponse calCommCost(BaseAddGoodsBO baseRequestDTO) { public final void updateShoppingCartCache(CalCostBO calCostBO) {
return ;
}
public final SetMessageBO calCommCost(BaseAddGoodsBO baseRequestDTO, CalCostBO calCostBO) {
return null; return null;
} }
public final BaseResponse setCommMessage(BaseAddGoodsBO baseRequestDTO) { public final AddGoodsShoppingCartBO setCommMessage(BaseAddGoodsBO baseRequestDTO, SetMessageBO setMessageBO) {
return null; return null;
} }
...@@ -87,16 +92,12 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -87,16 +92,12 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
* @param addGoodsBO * @param addGoodsBO
* @return * @return
*/ */
public final BaseResponse calCost(BaseAddGoodsBO addGoodsBO) { public final SetMessageBO calCost(BaseAddGoodsBO addGoodsBO, CalCostBO calCostBO) {
BaseResponse commonBaseResponse = this.calCommCost(addGoodsBO); SetMessageBO commonSetMessageBO = this.calCommCost(addGoodsBO, calCostBO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(commonBaseResponse.getCode())){
return commonBaseResponse; SetMessageBO customSetMessageBO = this.calCustomCost(addGoodsBO, calCostBO, commonSetMessageBO);
}
BaseResponse customBaseResponse = this.calCustomCost(addGoodsBO); return customSetMessageBO;
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(customBaseResponse.getCode())){
return customBaseResponse;
}
return ResponseBuilder.success();
} }
/** /**
...@@ -104,16 +105,12 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -104,16 +105,12 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
* @param addGoodsBO * @param addGoodsBO
* @return * @return
*/ */
public final BaseResponse setMessage(BaseAddGoodsBO addGoodsBO) { public final AddGoodsShoppingCartBO setMessage(BaseAddGoodsBO addGoodsBO, SetMessageBO setMessageBO) {
BaseResponse commonBaseResponse = this.setCommMessage(addGoodsBO); AddGoodsShoppingCartBO commonAddGoodsShoppingCartBO = this.setCommMessage(addGoodsBO, setMessageBO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(commonBaseResponse.getCode())){
return commonBaseResponse; AddGoodsShoppingCartBO customAddGoodsShoppingCartBO = this.setCustomMessage(addGoodsBO, setMessageBO, commonAddGoodsShoppingCartBO);
}
BaseResponse customBaseResponse = this.setCustomMessage(addGoodsBO); return customAddGoodsShoppingCartBO;
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(customBaseResponse.getCode())){
return customBaseResponse;
}
return ResponseBuilder.success();
} }
...@@ -139,8 +136,8 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -139,8 +136,8 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
* *
* @return * @return
*/ */
public final BaseResponse getShoppingCartInfo(BaseAddGoodsBO baseRequestBO) { public final CheckBussinessRulesBO getShoppingCartInfo(BaseAddGoodsBO baseRequestBO) {
CheckBussinessRulesBO bo = new CheckBussinessRulesBO();
String userId = customerManager.getUserId(baseRequestBO.getSessionId()); String userId = customerManager.getUserId(baseRequestBO.getSessionId());
baseRequestBO.setUserId(userId); baseRequestBO.setUserId(userId);
...@@ -149,7 +146,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -149,7 +146,7 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
return ResponseBuilder.success(); return bo;
} }
/** /**
...@@ -157,16 +154,10 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -157,16 +154,10 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
* *
* @return * @return
*/ */
public final BaseResponse checkBusinessRules(BaseAddGoodsBO baseRequestDTO) { public final AddGoodsToShoppingCartBO checkBusinessRules(BaseAddGoodsBO baseRequestDTO, CheckBussinessRulesBO checkBussinessRulesBO) {
BaseResponse commonBaseResponse = this.checkCommBusinessRules(baseRequestDTO); AddGoodsToShoppingCartBO commAddGoodsToShoppingCartBO = this.checkCommBusinessRules(baseRequestDTO, checkBussinessRulesBO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(commonBaseResponse.getCode())){ AddGoodsToShoppingCartBO customAddGoodsToShoppingCartBO = this.checkCustomBusinessRules(baseRequestDTO, checkBussinessRulesBO, commAddGoodsToShoppingCartBO);
return commonBaseResponse; return customAddGoodsToShoppingCartBO;
}
BaseResponse customBaseResponse = this.checkCustomBusinessRules(baseRequestDTO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(customBaseResponse.getCode())){
return customBaseResponse;
}
return ResponseBuilder.success();
} }
...@@ -175,16 +166,15 @@ public abstract class AbstractAddGoodsService implements AddGoodsService { ...@@ -175,16 +166,15 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
* *
* @return * @return
*/ */
public final BaseResponse addGoodsToShoppingCart(BaseAddGoodsBO baseRequestDTO) { public final CalCostBO addGoodsToShoppingCart(BaseAddGoodsBO baseRequestDTO, AddGoodsToShoppingCartBO addGoodsToShoppingCartBO) {
BaseResponse commonBaseResponse = this.checkCommBusinessRules(baseRequestDTO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(commonBaseResponse.getCode())){ CalCostBO commCalCostBO = this.commAddGoodsToShoppingCart(baseRequestDTO, addGoodsToShoppingCartBO);
return commonBaseResponse;
} CalCostBO customCalCostBO = this.customAddGoodsToShoppingCart(baseRequestDTO, addGoodsToShoppingCartBO, commCalCostBO);
BaseResponse customBaseResponse = this.checkCustomBusinessRules(baseRequestDTO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(customBaseResponse.getCode())){ this.updateShoppingCartCache(customCalCostBO);
return customBaseResponse;
} return commCalCostBO;
return ResponseBuilder.success();
} }
/** /**
......
...@@ -2,7 +2,7 @@ package cn.freemud.demo.service; ...@@ -2,7 +2,7 @@ package cn.freemud.demo.service;
import cn.freemud.adapter.ShoppingCartConvertAdapter; import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.base.entity.BaseResponse; import cn.freemud.base.entity.BaseResponse;
import cn.freemud.demo.entities.ResponseBuilder; import cn.freemud.demo.entities.*;
import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO; import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO;
import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO; import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO;
import cn.freemud.demo.manager.CustomerManager; import cn.freemud.demo.manager.CustomerManager;
...@@ -25,31 +25,45 @@ public interface AddGoodsService { ...@@ -25,31 +25,45 @@ public interface AddGoodsService {
return ResponseBuilder.success(); return ResponseBuilder.success();
} }
/**
* 获取购物车信息
* @param baseRequestDTO
* @return
*/
default CheckBussinessRulesBO getShoppingCartInfo(BaseAddGoodsBO baseRequestDTO) {
return new CheckBussinessRulesBO();
}
/** /**
* 进行客制化的业务校验 * 进行客制化的业务校验
* @param baseRequestDTO * @param baseRequestDTO
* @return * @return
*/ */
default BaseResponse checkCustomBusinessRules(BaseAddGoodsBO baseRequestDTO) { default AddGoodsToShoppingCartBO checkCustomBusinessRules(BaseAddGoodsBO baseRequestDTO, CheckBussinessRulesBO checkBussinessRulesBO, AddGoodsToShoppingCartBO addGoodsToShoppingCartBO) {
return ResponseBuilder.success(); return null;
} }
/** /**
* 获取购物车信息 * 购物车赋值
* @param baseRequestDTO * @param baseRequestDTO
* @return * @return
*/ */
default BaseResponse getShoppingCartInfo(BaseAddGoodsBO baseRequestDTO) { default CalCostBO customAddGoodsToShoppingCart(BaseAddGoodsBO baseRequestDTO, AddGoodsToShoppingCartBO addGoodsToShoppingCartBO, CalCostBO customCalCostBO) {
return ResponseBuilder.success(); return new CalCostBO();
} }
/** /**
* 进行客制化的计算费用 * 进行客制化的计算费用
* @param baseRequestDTO * @param baseRequestDTO
* @return * @return
*/ */
default BaseResponse calCustomCost(BaseAddGoodsBO baseRequestDTO) { default SetMessageBO calCustomCost(BaseAddGoodsBO baseRequestDTO, CalCostBO calCostBO, SetMessageBO commonSetMessageBO) {
return ResponseBuilder.success(); return null;
} }
/** /**
...@@ -57,8 +71,8 @@ public interface AddGoodsService { ...@@ -57,8 +71,8 @@ public interface AddGoodsService {
* @param baseRequestDTO * @param baseRequestDTO
* @return * @return
*/ */
default BaseResponse setCustomMessage(BaseAddGoodsBO baseRequestDTO) { default AddGoodsShoppingCartBO setCustomMessage(BaseAddGoodsBO baseRequestDTO, SetMessageBO setMessageBO, AddGoodsShoppingCartBO commonAddGoodsShoppingCartBO) {
return ResponseBuilder.success(); return null;
} }
......
...@@ -9,9 +9,9 @@ public class BizTypeUtil { ...@@ -9,9 +9,9 @@ public class BizTypeUtil {
private final static String macafePartnerId = ""; private final static String macafePartnerId = "";
public static BizTypeEnum getBizType (AddGoodsRequestDTO baseRequestDTO){ public static BizTypeEnum getBizType (String partnerId){
if (baseRequestDTO.getPartnerId().equals(macafePartnerId)) { if (macafePartnerId.equals(partnerId)) {
return BizTypeEnum.MCOFFEE; return BizTypeEnum.MCOFFEE;
} else { } else {
return BizTypeEnum.PLATFORM; return BizTypeEnum.PLATFORM;
......
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