Commit 6ce8d6c2 by chongfu.liang

重构

parent feb18e03
package cn.freemud.demo.adapter; package cn.freemud.demo.adapter;
import cn.freemud.demo.entities.bo.goods.add.*; import cn.freemud.demo.entities.bo.goods.add.*;
import cn.freemud.demo.entities.dto.goods.add.AddGoodsRequestDTO; import cn.freemud.demo.entities.dto.goods.add.*;
import cn.freemud.demo.enums.BizTypeEnum; import cn.freemud.demo.enums.BizTypeEnum;
import cn.freemud.enums.OrderChannelType;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@Component @Component
...@@ -25,18 +23,18 @@ public class ServiceBOAdapter { ...@@ -25,18 +23,18 @@ public class ServiceBOAdapter {
public BaseAddGoodsVO convert2AddGoodsVO(String bizType, BaseAddGoodsBO baseAddGoodsBO) { public BaseAddGoodsVO convert2AddGoodsVO(String bizType, BaseAddGoodsBO baseAddGoodsBO) {
BaseAddGoodsVO baseAddGoodsVO; BaseAddGoodsVO baseAddGoodsVO;
if (BizTypeEnum.MAIL.getCode().equals(bizType)){ if (BizTypeEnum.MAIL.getCode().equals(bizType)){
baseAddGoodsVO = createMallBO(baseAddGoodsBO); baseAddGoodsVO = createMallVO(baseAddGoodsBO);
} else if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) { } else if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) {
baseAddGoodsVO = createMCoffeeBO(baseAddGoodsBO); baseAddGoodsVO = createMCoffeeVO(baseAddGoodsBO);
} else { } else {
baseAddGoodsVO = createPlatformBO(baseAddGoodsBO); baseAddGoodsVO = createPlatformVO(baseAddGoodsBO);
} }
return baseAddGoodsVO; return baseAddGoodsVO;
} }
private MallAddGoodsBO createPlatformBO(AddGoodsRequestDTO baseRequestDTO) { private PlatformAddGoodsBO createPlatformBO(AddGoodsRequestDTO baseRequestDTO) {
MallAddGoodsBO mallAddGoodsBO = new MallAddGoodsBO(); PlatformAddGoodsBO platformAddGoodsBO = new PlatformAddGoodsBO();
return mallAddGoodsBO; return platformAddGoodsBO;
} }
private MCoffeeAddGoodsBO createMCoffeeBO(AddGoodsRequestDTO baseRequestDTO) { private MCoffeeAddGoodsBO createMCoffeeBO(AddGoodsRequestDTO baseRequestDTO) {
...@@ -44,24 +42,24 @@ public class ServiceBOAdapter { ...@@ -44,24 +42,24 @@ public class ServiceBOAdapter {
return mCoffeeAddGoodsBO; return mCoffeeAddGoodsBO;
} }
private BaseAddGoodsBO createMallBO(AddGoodsRequestDTO baseRequestDTO) { private MallAddGoodsBO createMallBO(AddGoodsRequestDTO baseRequestDTO) {
PlatformAddGoodsBO platformAddGoodsBO = new PlatformAddGoodsBO();
return platformAddGoodsBO;
}
private MallAddGoodsBO createPlatformVO(AddGoodsRequestDTO baseRequestDTO) {
MallAddGoodsBO mallAddGoodsBO = new MallAddGoodsBO(); MallAddGoodsBO mallAddGoodsBO = new MallAddGoodsBO();
return mallAddGoodsBO; return mallAddGoodsBO;
} }
private MCoffeeAddGoodsBO createMCoffeeVO(AddGoodsRequestDTO baseRequestDTO) { private PlatformAddGoodsVO createPlatformVO(BaseAddGoodsBO baseAddGoodsBO) {
MCoffeeAddGoodsBO mCoffeeAddGoodsBO = new MCoffeeAddGoodsBO(); PlatformAddGoodsVO platformAddGoodsVO = new PlatformAddGoodsVO();
return mCoffeeAddGoodsBO; return platformAddGoodsVO;
} }
private BaseAddGoodsBO createMallVO(AddGoodsRequestDTO baseRequestDTO) { private MCoffeeAddGoodsVO createMCoffeeVO(BaseAddGoodsBO baseAddGoodsBO) {
PlatformAddGoodsBO platformAddGoodsBO = new PlatformAddGoodsBO(); MCoffeeAddGoodsVO mCoffeeAddGoodsVO = new MCoffeeAddGoodsVO();
return platformAddGoodsBO; return mCoffeeAddGoodsVO;
}
private MallAddGoodsVO createMallVO(BaseAddGoodsBO baseAddGoodsBO) {
MallAddGoodsVO mallAddGoodsVO = new MallAddGoodsVO();
return mallAddGoodsVO;
} }
} }
...@@ -15,6 +15,7 @@ package cn.freemud.demo.controller; ...@@ -15,6 +15,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.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.AddGoodsRequestDTO; import cn.freemud.demo.entities.dto.goods.add.AddGoodsRequestDTO;
import cn.freemud.demo.enums.BizTypeEnum; import cn.freemud.demo.enums.BizTypeEnum;
import cn.freemud.demo.factory.ServiceFactory; import cn.freemud.demo.factory.ServiceFactory;
...@@ -67,15 +68,18 @@ public class ShoppingCartController { ...@@ -67,15 +68,18 @@ public class ShoppingCartController {
@ApiAnnotation(logMessage = "addGoods") @ApiAnnotation(logMessage = "addGoods")
@PostMapping(value = "/addGoods") @PostMapping(value = "/addGoods")
public BaseResponse addGoods(@LogParams @RequestBody String params) { public BaseResponse addGoods(@LogParams @RequestBody String params) {
AddGoodsRequestDTO baseRequestDTO = JSON.parseObject(params, AddGoodsRequestDTO.class); AddGoodsRequestDTO baseRequestDTO = JSON.parseObject(params, AddGoodsRequestDTO.class);
BizTypeEnum bizType = BizTypeUtil.getBizType(baseRequestDTO); BizTypeEnum bizType = BizTypeUtil.getBizType(baseRequestDTO);
BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO);
AbstractAddGoodsService addGoodsServiceInstance = ServiceFactory.createAddGoodsServiceInstance(bizType.getCode()); AbstractAddGoodsService addGoodsServiceInstance = ServiceFactory.createAddGoodsServiceInstance(bizType.getCode());
BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO);
BaseAddGoodsBO addGoodsResponse = addGoodsServiceInstance.addGoods(addGoodsBOInstance); BaseAddGoodsBO addGoodsResponse = addGoodsServiceInstance.addGoods(addGoodsBOInstance);
BaseAddGoodsVO baseAddGoodsVO = serviceBOAdapter.convert2AddGoodsVO(bizType.getCode(), addGoodsResponse);
return ResponseUtil.success(baseAddGoodsVO);
BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsVO(bizType.getCode(), addGoodsResponse);
} }
/** /**
......
package cn.freemud.demo.entities.dto.goods.add; package cn.freemud.demo.entities.dto.goods.add;
import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO; public class MCoffeeAddGoodsVO extends BaseAddGoodsVO{
public class MCoffeeAddGoodsResponseVOAddGoods extends AddGoodsBaseResponseVO {
} }
package cn.freemud.demo.entities.dto.goods.add; package cn.freemud.demo.entities.dto.goods.add;
import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO; public class MallAddGoodsVO extends BaseAddGoodsVO {
public class PlatformAddGoodsResponseVOAddGoods extends AddGoodsBaseResponseVO {
} }
package cn.freemud.demo.entities.dto.goods.add;
public class PlatformAddGoodsVO extends BaseAddGoodsVO{
}
package cn.freemud.demo.factory; package cn.freemud.demo.factory;
import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO; import cn.freemud.demo.entities.bo.goods.add.BaseAddGoodsBO;
import cn.freemud.demo.enums.BizTypeEnum;
import cn.freemud.demo.service.AbstractAddGoodsService; import cn.freemud.demo.service.AbstractAddGoodsService;
import cn.freemud.demo.service.MCoffeeAddGoodsService;
import cn.freemud.demo.service.PlatformAddGoodsService;
import cn.freemud.demo.utils.ApplicationContextWareBean;
import org.springframework.beans.factory.annotation.Autowired;
public class ServiceFactory { public class ServiceFactory {
public static AbstractAddGoodsService createAddGoodsServiceInstance(String bizType) { public static AbstractAddGoodsService createAddGoodsServiceInstance(String bizType) {
return null; AbstractAddGoodsService abstractAddGoodsService;
if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) {
abstractAddGoodsService = ApplicationContextWareBean.getBean("MCoffeeAddGoodsService", MCoffeeAddGoodsService.class);
} else {
abstractAddGoodsService = ApplicationContextWareBean.getBean("PlatformAddGoodsService", PlatformAddGoodsService.class);
}
return abstractAddGoodsService;
} }
} }
...@@ -8,7 +8,6 @@ import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO; ...@@ -8,7 +8,6 @@ import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO;
public abstract class AbstractAddGoodsService implements CheckAddGoodsService { public abstract class AbstractAddGoodsService implements CheckAddGoodsService {
/** /**
* 组织订单的创建流程 * 组织订单的创建流程
* *
......
package cn.freemud.demo.service; package cn.freemud.demo.service;
public class TestImpl extends AbstractAddGoodsService { import org.springframework.stereotype.Service;
@Service
public class MCoffeeAddGoodsService extends AbstractAddGoodsService {
......
package cn.freemud.demo.service;
import org.springframework.stereotype.Service;
@Service
public class PlatformAddGoodsService extends AbstractAddGoodsService {
}
package cn.freemud.demo.utils;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
/**
* All rights Reserved, Designed By www.freemud.cn
*
* @version V1.0
* @Title: PayApplicationContextWare
* @Package com.freemud.pay
* @Description: ApplicationContextAware 的实现,
* @author: xudong.cai
* @date: 17/5/18 下午4:12
* @Copyright: 2017 www.freemud.cn Inc. All rights reserved.
* 注意:本内容仅限于上海非码科技内部传阅,禁止外泄以及用于其他的商业目
*/
@Component
public class ApplicationContextWareBean implements ApplicationContextAware {
private static ApplicationContext context;
private static String appName;
@Autowired
public void setAppName(@Value("${spring.application.name}") String appName) {
ApplicationContextWareBean.appName = appName;
}
public enum profiles {
TEST("test"), PRO("pro"), DEFAULT("default"), MOCK("mock"), MOBILE_PRO("mobile-pro");
private String profile;
public String getProfile() {
return profile;
}
public void setProfile(String profile) {
this.profile = profile;
}
profiles(String profile) {
this.profile = profile;
}
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
public static boolean isTestProfile() {
String[] activeProfiles = context.getEnvironment().getActiveProfiles();
if (activeProfiles != null && activeProfiles.length > 0) {
for (String profile : activeProfiles) {
if (profiles.TEST.getProfile().equals(profile)) {
return true;
}
}
}
return false;
}
public static boolean isProProfile() {
String[] activeProfiles = context.getEnvironment().getActiveProfiles();
if (activeProfiles != null && activeProfiles.length > 0) {
for (String profile : activeProfiles) {
if (profiles.PRO.getProfile().equals(profile)) {
return true;
}
}
}
return false;
}
public static boolean isDevProfile() {
String[] activeProfiles = context!=null?context.getEnvironment().getActiveProfiles():new String[]{System.getProperty("spring.profiles.active")};
if (activeProfiles != null && activeProfiles.length > 0) {
for (String profile : activeProfiles) {
if (profiles.DEFAULT.getProfile().equals(profile)) {
return true;
}
}
}
return false;
}
public static String getAppName() {
return StringUtils.isEmpty(appName) ? (context!=null?context.getEnvironment().getProperty("spring.application.name"):""):appName;
}
public static boolean isQuickDep(){
return "yes".equals(System.getProperty("quickDep"));
}
public static <T> T getBean(Class<T> tClass) {
return context.getBean(tClass);
}
public static <T> T getBean(String var1, Class<T> var2) {
return context.getBean(var1, var2);
}
public static Object getBean(String idOrName) {
return context.getBean(idOrName);
}
public static String getProfile() {
String[] activeProfiles = context.getEnvironment().getActiveProfiles();
if (activeProfiles != null && activeProfiles.length > 0) {
for (String profile : activeProfiles) {
if (profiles.PRO.getProfile().equals(profile)) {
return profiles.PRO.getProfile();
} else if (profiles.TEST.getProfile().equals(profile)) {
return profiles.TEST.getProfile();
} else if (profiles.MOCK.getProfile().equals(profile)) {
return profiles.MOCK.getProfile();
}
}
}
return profiles.TEST.getProfile();//默认环境返回Test
}
}
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