Commit 310d40ea by chongfu.liang

重构

parent 27e3a269
package cn.freemud.demo.adapter.manager;
import cn.freemud.demo.entities.bo.goods.ProductBO;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import org.springframework.stereotype.Component;
@Component
public class ProductDTO2BOAdapter {
public ProductBO convert2ProductBO(ProductBeanDTO productBeanDTO) {
return null;
}
}
package cn.freemud.demo.adapter;
package cn.freemud.demo.adapter.service;
import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.demo.entities.AddGoodsShoppingCartBO;
import cn.freemud.demo.entities.ManagerServiceBO;
import cn.freemud.demo.entities.bo.goods.ProductBO;
import cn.freemud.demo.entities.bo.goods.add.*;
import cn.freemud.demo.entities.dto.goods.add.*;
import cn.freemud.demo.enums.BizTypeEnum;
import cn.freemud.demo.manager.customer.CustomerService;
import cn.freemud.demo.manager.product.ProductService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;
@Component
public class ServiceBOAdapter {
public class AddGoodsBOAdapter {
@Autowired
@Qualifier("KgdCustomerService")
private CustomerService kgdCustomerServIce;
@Autowired
@Qualifier("KgdProductService")
private ProductService kgdProductService;
public BaseAddGoodsBO convert2AddGoodsBO(String bizType, AddGoodsRequestDTO baseRequestDTO) {
BaseAddGoodsBO baseAddGoodsBO;
if (BizTypeEnum.MAIL.getCode().equals(bizType)){
baseAddGoodsBO = createMallBO(baseRequestDTO);
} else if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) {
if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) {
baseAddGoodsBO = createMCoffeeBO(baseRequestDTO);
} else {
baseAddGoodsBO = createPlatformBO(baseRequestDTO);
......@@ -24,18 +34,6 @@ public class ServiceBOAdapter {
return baseAddGoodsBO;
}
public BaseAddGoodsVO convert2AddGoodsVO(String bizType, AddGoodsShoppingCartBO baseAddGoodsBO) {
BaseAddGoodsVO baseAddGoodsVO;
if (BizTypeEnum.MAIL.getCode().equals(bizType)){
baseAddGoodsVO = createMallVO(baseAddGoodsBO);
} else if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) {
baseAddGoodsVO = createMCoffeeVO(baseAddGoodsBO);
} else {
baseAddGoodsVO = createPlatformVO(baseAddGoodsBO);
}
return baseAddGoodsVO;
}
private PlatformAddGoodsBO createPlatformBO(AddGoodsRequestDTO baseRequestDTO) {
PlatformAddGoodsBO platformAddGoodsBO = new PlatformAddGoodsBO();
......@@ -44,36 +42,32 @@ public class ServiceBOAdapter {
productBO.setSkuId(skuId);
platformAddGoodsBO.setAddGoods(productBO);
return platformAddGoodsBO;
}
ManagerServiceBO build = ManagerServiceBO.builder()
.customerService(kgdCustomerServIce)
.productService(kgdProductService)
.build();
platformAddGoodsBO.setManagerService(build);
private ProductBO convert2ProductVO() {
return null;
return platformAddGoodsBO;
}
private MCoffeeAddGoodsBO createMCoffeeBO(AddGoodsRequestDTO baseRequestDTO) {
MCoffeeAddGoodsBO mCoffeeAddGoodsBO = new MCoffeeAddGoodsBO();
ManagerServiceBO build = ManagerServiceBO.builder()
.customerService(kgdCustomerServIce)
.productService(kgdProductService)
.build();
mCoffeeAddGoodsBO.setManagerService(build);
return mCoffeeAddGoodsBO;
}
private MallAddGoodsBO createMallBO(AddGoodsRequestDTO baseRequestDTO) {
MallAddGoodsBO mallAddGoodsBO = new MallAddGoodsBO();
return mallAddGoodsBO;
}
private PlatformAddGoodsVO createPlatformVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
PlatformAddGoodsVO platformAddGoodsVO = new PlatformAddGoodsVO();
return platformAddGoodsVO;
private ProductBO convert2ProductVO() {
return null;
}
private MCoffeeAddGoodsVO createMCoffeeVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
MCoffeeAddGoodsVO mCoffeeAddGoodsVO = new MCoffeeAddGoodsVO();
return mCoffeeAddGoodsVO;
}
private MallAddGoodsVO createMallVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
MallAddGoodsVO mallAddGoodsVO = new MallAddGoodsVO();
return mallAddGoodsVO;
}
}
package cn.freemud.demo.adapter.service;
import cn.freemud.demo.entities.AddGoodsShoppingCartBO;
import cn.freemud.demo.entities.dto.goods.add.BaseAddGoodsVO;
import cn.freemud.demo.entities.dto.goods.add.MCoffeeAddGoodsVO;
import cn.freemud.demo.entities.dto.goods.add.PlatformAddGoodsVO;
import cn.freemud.demo.enums.BizTypeEnum;
import org.springframework.stereotype.Component;
@Component
public class AddGoodsVOAdapter {
public BaseAddGoodsVO convert2AddGoodsVO(String bizType, AddGoodsShoppingCartBO baseAddGoodsBO) {
BaseAddGoodsVO baseAddGoodsVO;
if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) {
baseAddGoodsVO = createMCoffeeVO(baseAddGoodsBO);
} else {
baseAddGoodsVO = createPlatformVO(baseAddGoodsBO);
}
return baseAddGoodsVO;
}
private PlatformAddGoodsVO createPlatformVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
PlatformAddGoodsVO platformAddGoodsVO = new PlatformAddGoodsVO();
return platformAddGoodsVO;
}
private MCoffeeAddGoodsVO createMCoffeeVO(AddGoodsShoppingCartBO baseAddGoodsBO) {
MCoffeeAddGoodsVO mCoffeeAddGoodsVO = new MCoffeeAddGoodsVO();
return mCoffeeAddGoodsVO;
}
}
......@@ -13,7 +13,8 @@
package cn.freemud.demo.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.demo.adapter.ServiceBOAdapter;
import cn.freemud.demo.adapter.service.AddGoodsBOAdapter;
import cn.freemud.demo.adapter.service.AddGoodsVOAdapter;
import cn.freemud.demo.entities.AddGoodsShoppingCartBO;
import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO;
import cn.freemud.demo.entities.dto.goods.add.BaseAddGoodsVO;
......@@ -32,7 +33,6 @@ 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.alibaba.fastjson.JSON;
import com.freemud.api.assortment.datamanager.entity.vo.AssortmentCustomerInfoVo;
import com.freemud.api.assortment.datamanager.enums.IappIdType;
import com.freemud.api.assortment.datamanager.manager.customer.AssortmentCustomerInfoManager;
......@@ -52,7 +52,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
import java.util.Map;
@RestController
......@@ -65,8 +64,10 @@ public class ShoppingCartController {
private AssortmentCustomerInfoManager customerInfoManager;
@Autowired
private ServiceBOAdapter serviceBOAdapter;
private AddGoodsBOAdapter addGoodsBOAdapter;
@Autowired
private AddGoodsVOAdapter addGoodsVOAdapter;
/**
* 向购物车中添加商品
......@@ -85,9 +86,9 @@ public class ShoppingCartController {
AbstractAddGoodsService addGoodsServiceInstance = ServiceFactory.createAddGoodsServiceInstance(bizType.getCode());
BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO);
BaseAddGoodsBO addGoodsBOInstance = addGoodsBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO);
AddGoodsShoppingCartBO addGoodsResponseBO = addGoodsServiceInstance.addGoods(addGoodsBOInstance);
BaseAddGoodsVO baseAddGoodsVO = serviceBOAdapter.convert2AddGoodsVO(bizType.getCode(), addGoodsResponseBO);
BaseAddGoodsVO baseAddGoodsVO = addGoodsVOAdapter.convert2AddGoodsVO(bizType.getCode(), addGoodsResponseBO);
return ResponseUtil.success(baseAddGoodsVO);
......
package cn.freemud.demo.entities;
import cn.freemud.demo.manager.customer.CustomerService;
import cn.freemud.demo.manager.product.ProductService;
import lombok.Builder;
import lombok.Data;
@Data
@Builder
public class ManagerServiceBO {
private CustomerService customerService;
private ProductService productService;
}
package cn.freemud.demo.entities.bo.goods;
import lombok.Data;
@Data
public class GetProductBO {
private String partnerId;
private String storeId;
private String spuid;
private String skuid;
private String menuType;
}
package cn.freemud.demo.entities.bo.goods.add;
import cn.freemud.demo.entities.ManagerServiceBO;
import cn.freemud.demo.entities.bo.goods.ProductBO;
import cn.freemud.demo.entities.bo.goods.ShoppingCartGoodsBO;
import lombok.Data;
......@@ -36,6 +37,7 @@ public class BaseAddGoodsBO {
private ShoppingCartGoodsBO newShoppingCartGoods;
private ManagerServiceBO managerService;
@Data
public final static class Property {
......@@ -65,4 +67,6 @@ public class BaseAddGoodsBO {
private String tableNumber;
}
}
package cn.freemud.demo.entities.dto.goods.add;
import lombok.Data;
@Data
public class MCoffeeAddGoodsVO extends BaseAddGoodsVO{
}
package cn.freemud.demo.entities.dto.goods.add;
import lombok.Data;
@Data
public class PlatformAddGoodsVO extends BaseAddGoodsVO{
}
package cn.freemud.demo.manager.customer;
import org.springframework.stereotype.Service;
@Service
public class CustomerManager {
public String getUserId(String sessionId, CustomerService customerService) {
String userId = customerService.getUserId(sessionId);
return userId;
}
}
package cn.freemud.demo.manager.customer;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.user.GetSessionUserInfoDto;
import cn.freemud.entities.vo.CustomerInfoVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
public interface CustomerService {
String getUserId(String sessionId);
}
package cn.freemud.demo.manager;
package cn.freemud.demo.manager.customer;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.entities.dto.user.GetSessionUserInfoDto;
......@@ -6,18 +6,17 @@ import cn.freemud.entities.vo.CustomerInfoVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.thirdparty.CustomerApplicationClient;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class CustomerManager {
@Service("KgdCustomerService")
public class KgdCustomerServceImpl implements CustomerService {
@Autowired
private CustomerApplicationClient customerApplicationClient;
@Override
public String getUserId(String sessionId) {
GetSessionUserInfoDto getSessionUserInfoDto = new GetSessionUserInfoDto();
getSessionUserInfoDto.setIsGetPaid(true);
getSessionUserInfoDto.setSessionId(sessionId);
......@@ -27,5 +26,4 @@ public class CustomerManager {
}
return sessionUserInfo.getResult().getSessionId();
}
}
package cn.freemud.demo.manager.product;
import cn.freemud.demo.adapter.manager.ProductDTO2BOAdapter;
import cn.freemud.demo.entities.bo.goods.GetProductBO;
import cn.freemud.demo.entities.bo.goods.ProductBO;
import cn.freemud.service.impl.AssortmentSdkService;
import cn.freemud.service.thirdparty.CustomerApplicationClient;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
@Service("KgdProductService")
public class KgdProductServiceImpl implements ProductService {
@Autowired
private AssortmentSdkService assortmentSdkService;
@Autowired
private ProductDTO2BOAdapter productDTO2BOAdapter;
@Override
public ProductBO getProductInfo(GetProductBO getProductBO) {
// 获取添加商品的详细信息
List< ProductBeanDTO> productBeanListSpuClass = assortmentSdkService.getProductsInfoSdk(getProductBO.getPartnerId(),
getProductBO.getStoreId(), Collections.singletonList(getProductBO.getSkuid()), getProductBO.getMenuType(), null);
ProductBeanDTO productBeanDTO = productBeanListSpuClass.get(0);
ProductBO productBO = productDTO2BOAdapter.convert2ProductBO(productBeanDTO);
return productBO;
}
}
package cn.freemud.demo.manager;
package cn.freemud.demo.manager.product;
import cn.freemud.demo.entities.bo.goods.GetProductBO;
import cn.freemud.demo.entities.bo.goods.ProductBO;
import cn.freemud.service.impl.AssortmentSdkService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
......@@ -10,31 +11,21 @@ import java.util.Collections;
import java.util.List;
@Service
public class AssortmentSdkManager {
@Autowired
private AssortmentSdkService assortmentSdkService;
public class ProductManager {
/**
*
* @param partnerId 商户id
* @param storeId 门店id
* @param spuId2 spuid
* @param menuType 业务类型,saas,delivery
* @return
*/
public ProductBO getProductsInfoSdk(String partnerId, String storeId, String spuId2, String menuType){
// 获取添加商品的详细信息
List<ProductBeanDTO> productBeanListSpuClass = assortmentSdkService.getProductsInfoSdk(partnerId, storeId, Collections.singletonList(spuId2), menuType, null);
ProductBeanDTO productBeanDTO = productBeanListSpuClass.get(0);
ProductBO productBO = convert2ProductBO(productBeanDTO);
return productBO;
public ProductBO getProductsInfo(GetProductBO getProductBO, ProductService productService){
}
ProductBO productInfo = productService.getProductInfo(getProductBO);
return productInfo;
private ProductBO convert2ProductBO(ProductBeanDTO productBeanDTO) {
return null;
}
}
package cn.freemud.demo.manager.product;
import cn.freemud.demo.entities.bo.goods.GetProductBO;
import cn.freemud.demo.entities.bo.goods.ProductBO;
public interface ProductService {
ProductBO getProductInfo(GetProductBO getProductBO);
}
......@@ -3,32 +3,27 @@ package cn.freemud.demo.service;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.demo.constant.ResponseConstant;
import cn.freemud.demo.entities.*;
import cn.freemud.demo.entities.bo.goods.GetProductBO;
import cn.freemud.demo.entities.bo.goods.ProductBO;
import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO;
import cn.freemud.demo.manager.AssortmentSdkManager;
import cn.freemud.demo.manager.CustomerManager;
import cn.freemud.entities.vo.CustomerInfoVo;
import cn.freemud.demo.manager.product.ProductManager;
import cn.freemud.demo.manager.customer.CustomerManager;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import cn.freemud.service.impl.AssortmentSdkService;
import com.freemud.application.sdk.api.productcenter.domain.ProductBeanDTO;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Collections;
import java.util.List;
public abstract class AbstractAddGoodsService implements AddGoodsService {
@Autowired
private CustomerManager customerManager;
@Autowired
private AssortmentSdkManager assortmentSdkManager;
private ProductManager productManager;
/**
* 组织订单的创建流程
* 加车的流程
*
* @return
*/
......@@ -54,39 +49,6 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
return addGoodsShoppingCartBO;
}
public final BaseResponse checkCommParams(BaseAddGoodsBO baseRequestDTO) {
if (StringUtils.isEmpty(baseRequestDTO.getShopId())){
throw new ServiceException(ResponseResult.SHOPPING_CART_SHOP_ID_NOT_EMPTY);
}
return ResponseBuilder.success();
}
public final AddGoodsToShoppingCartBO checkCommBusinessRules(BaseAddGoodsBO baseRequestDTO, CheckBussinessRulesBO checkBussinessRulesBO) {
return null;
}
public final CalCostBO commAddGoodsToShoppingCart(BaseAddGoodsBO baseRequestDTO, AddGoodsToShoppingCartBO addGoodsToShoppingCartBO) {
return null;
}
public final void updateShoppingCartCache(CalCostBO calCostBO) {
return ;
}
public final SetMessageBO calCommCost(BaseAddGoodsBO baseRequestDTO, CalCostBO calCostBO) {
return null;
}
public final AddGoodsShoppingCartBO setCommMessage(BaseAddGoodsBO baseRequestDTO, SetMessageBO setMessageBO) {
return null;
}
public final BaseResponse buildCommResponse(BaseAddGoodsBO baseRequestDTO) {
return null;
}
/**
* 计算不在促销计算范围里的费用
* @param addGoodsBO
......@@ -138,10 +100,12 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
*/
public final CheckBussinessRulesBO getShoppingCartInfo(BaseAddGoodsBO baseRequestBO) {
CheckBussinessRulesBO bo = new CheckBussinessRulesBO();
String userId = customerManager.getUserId(baseRequestBO.getSessionId());
String userId = customerManager.getUserId(baseRequestBO.getSessionId(), baseRequestBO.getManagerService().getCustomerService());
baseRequestBO.setUserId(userId);
ProductBO productBO = assortmentSdkManager.getProductsInfoSdk(baseRequestBO.getPartnerId(), baseRequestBO.getShopId(), baseRequestBO.getAddGoods().getSpuId(), null);
GetProductBO getProductBO = new GetProductBO();
ProductBO productBO = productManager.getProductsInfo(getProductBO, baseRequestBO.getManagerService().getProductService());
baseRequestBO.setAddGoods(productBO);
......@@ -177,23 +141,34 @@ public abstract class AbstractAddGoodsService implements AddGoodsService {
return commCalCostBO;
}
/**
* 封装返回参数
*
* @return
*/
public final BaseResponse buildResponse(BaseAddGoodsBO baseRequestDTO) {
BaseResponse commonBaseResponse = this.buildCommResponse(baseRequestDTO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(commonBaseResponse.getCode())){
return commonBaseResponse;
}
BaseResponse customBaseResponse = this.buildCustomResponse(baseRequestDTO);
if (!ResponseConstant.RESPONSE_SUCCESS_STR.equals(customBaseResponse.getCode())){
return customBaseResponse;
private BaseResponse checkCommParams(BaseAddGoodsBO baseRequestDTO) {
if (StringUtils.isEmpty(baseRequestDTO.getShopId())){
throw new ServiceException(ResponseResult.SHOPPING_CART_SHOP_ID_NOT_EMPTY);
}
return ResponseBuilder.success();
}
private AddGoodsToShoppingCartBO checkCommBusinessRules(BaseAddGoodsBO baseRequestDTO, CheckBussinessRulesBO checkBussinessRulesBO) {
return null;
}
private CalCostBO commAddGoodsToShoppingCart(BaseAddGoodsBO baseRequestDTO, AddGoodsToShoppingCartBO addGoodsToShoppingCartBO) {
return null;
}
public final void updateShoppingCartCache(CalCostBO calCostBO) {
return ;
}
private SetMessageBO calCommCost(BaseAddGoodsBO baseRequestDTO, CalCostBO calCostBO) {
return null;
}
private AddGoodsShoppingCartBO setCommMessage(BaseAddGoodsBO baseRequestDTO, SetMessageBO setMessageBO) {
return null;
}
}
package cn.freemud.demo.service;
import cn.freemud.adapter.ShoppingCartConvertAdapter;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.demo.entities.*;
import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO;
import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO;
import cn.freemud.demo.manager.CustomerManager;
import cn.freemud.entities.vo.CustomerInfoVo;
import cn.freemud.entities.vo.ShoppingCartGoodsResponseVo;
import cn.freemud.enums.ResponseResult;
import cn.freemud.interceptor.ServiceException;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
public interface AddGoodsService {
......@@ -75,70 +66,4 @@ public interface AddGoodsService {
return null;
}
/**
* 封装客制化返回
* @param baseRequestDTO
* @return
*/
default BaseResponse buildCustomResponse(BaseAddGoodsBO baseRequestDTO) {
return ResponseBuilder.success();
}
//
//
//
// /**
// * 校验公共参数
// * @param baseRequestDTO
// * @return
// */
// default BaseResponse checkCommParams(BaseAddGoodsBO baseRequestDTO) {
//
// return ResponseBuilder.success();
// }
//
// /**
// * 进行公共的业务校验
// * @param baseRequestDTO
// * @return
// */
// default BaseResponse checkCommBusinessRules(BaseAddGoodsBO baseRequestDTO) {
// // TODO checkCommBusinessRules
// return ResponseBuilder.success();
// }
//
// /**
// * 公共的计算费用
// * @param baseRequestDTO
// * @return
// */
// default BaseResponse calCommCost(BaseAddGoodsBO baseRequestDTO) {
// // TODO calCommCost
// return ResponseBuilder.success();
// }
//
// /**
// * 公共的信息提醒
// * @param baseRequestDTO
// * @return
// */
// default BaseResponse setCommMessage(BaseAddGoodsBO baseRequestDTO) {
// // TODO setCommMessage
// return ResponseBuilder.success();
// }
//
// /**
// * 封装公共返回
// * @param baseRequestDTO
// * @return
// */
// default BaseResponse buildCommResponse(BaseAddGoodsBO baseRequestDTO) {
// // TODO buildCommResponse
// return ResponseBuilder.success();
// }
//
}
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