Commit 6ce8d6c2 by chongfu.liang

重构

parent feb18e03
package cn.freemud.demo.adapter;
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.enums.OrderChannelType;
import com.alibaba.fastjson.JSON;
import org.springframework.stereotype.Component;
@Component
......@@ -25,18 +23,18 @@ public class ServiceBOAdapter {
public BaseAddGoodsVO convert2AddGoodsVO(String bizType, BaseAddGoodsBO baseAddGoodsBO) {
BaseAddGoodsVO baseAddGoodsVO;
if (BizTypeEnum.MAIL.getCode().equals(bizType)){
baseAddGoodsVO = createMallBO(baseAddGoodsBO);
baseAddGoodsVO = createMallVO(baseAddGoodsBO);
} else if (BizTypeEnum.MCOFFEE.getCode().equals(bizType)) {
baseAddGoodsVO = createMCoffeeBO(baseAddGoodsBO);
baseAddGoodsVO = createMCoffeeVO(baseAddGoodsBO);
} else {
baseAddGoodsVO = createPlatformBO(baseAddGoodsBO);
baseAddGoodsVO = createPlatformVO(baseAddGoodsBO);
}
return baseAddGoodsVO;
}
private MallAddGoodsBO createPlatformBO(AddGoodsRequestDTO baseRequestDTO) {
MallAddGoodsBO mallAddGoodsBO = new MallAddGoodsBO();
return mallAddGoodsBO;
private PlatformAddGoodsBO createPlatformBO(AddGoodsRequestDTO baseRequestDTO) {
PlatformAddGoodsBO platformAddGoodsBO = new PlatformAddGoodsBO();
return platformAddGoodsBO;
}
private MCoffeeAddGoodsBO createMCoffeeBO(AddGoodsRequestDTO baseRequestDTO) {
......@@ -44,24 +42,24 @@ public class ServiceBOAdapter {
return mCoffeeAddGoodsBO;
}
private BaseAddGoodsBO createMallBO(AddGoodsRequestDTO baseRequestDTO) {
PlatformAddGoodsBO platformAddGoodsBO = new PlatformAddGoodsBO();
return platformAddGoodsBO;
}
private MallAddGoodsBO createPlatformVO(AddGoodsRequestDTO baseRequestDTO) {
private MallAddGoodsBO createMallBO(AddGoodsRequestDTO baseRequestDTO) {
MallAddGoodsBO mallAddGoodsBO = new MallAddGoodsBO();
return mallAddGoodsBO;
}
private MCoffeeAddGoodsBO createMCoffeeVO(AddGoodsRequestDTO baseRequestDTO) {
MCoffeeAddGoodsBO mCoffeeAddGoodsBO = new MCoffeeAddGoodsBO();
return mCoffeeAddGoodsBO;
private PlatformAddGoodsVO createPlatformVO(BaseAddGoodsBO baseAddGoodsBO) {
PlatformAddGoodsVO platformAddGoodsVO = new PlatformAddGoodsVO();
return platformAddGoodsVO;
}
private BaseAddGoodsBO createMallVO(AddGoodsRequestDTO baseRequestDTO) {
PlatformAddGoodsBO platformAddGoodsBO = new PlatformAddGoodsBO();
return platformAddGoodsBO;
private MCoffeeAddGoodsVO createMCoffeeVO(BaseAddGoodsBO baseAddGoodsBO) {
MCoffeeAddGoodsVO mCoffeeAddGoodsVO = new MCoffeeAddGoodsVO();
return mCoffeeAddGoodsVO;
}
private MallAddGoodsVO createMallVO(BaseAddGoodsBO baseAddGoodsBO) {
MallAddGoodsVO mallAddGoodsVO = new MallAddGoodsVO();
return mallAddGoodsVO;
}
}
......@@ -15,6 +15,7 @@ package cn.freemud.demo.controller;
import cn.freemud.base.entity.BaseResponse;
import cn.freemud.demo.adapter.ServiceBOAdapter;
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.enums.BizTypeEnum;
import cn.freemud.demo.factory.ServiceFactory;
......@@ -67,15 +68,18 @@ public class ShoppingCartController {
@ApiAnnotation(logMessage = "addGoods")
@PostMapping(value = "/addGoods")
public BaseResponse addGoods(@LogParams @RequestBody String params) {
AddGoodsRequestDTO baseRequestDTO = JSON.parseObject(params, AddGoodsRequestDTO.class);
BizTypeEnum bizType = BizTypeUtil.getBizType(baseRequestDTO);
BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO);
AbstractAddGoodsService addGoodsServiceInstance = ServiceFactory.createAddGoodsServiceInstance(bizType.getCode());
BaseAddGoodsBO addGoodsBOInstance = serviceBOAdapter.convert2AddGoodsBO(bizType.getCode(), baseRequestDTO);
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;
import cn.freemud.demo.entities.dto.AddGoodsBaseResponseVO;
public class MCoffeeAddGoodsResponseVOAddGoods extends AddGoodsBaseResponseVO {
public class MCoffeeAddGoodsVO extends BaseAddGoodsVO{
}
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;
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.MCoffeeAddGoodsService;
import cn.freemud.demo.service.PlatformAddGoodsService;
import cn.freemud.demo.utils.ApplicationContextWareBean;
import org.springframework.beans.factory.annotation.Autowired;
public class ServiceFactory {
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;
public abstract class AbstractAddGoodsService implements CheckAddGoodsService {
/**
* 组织订单的创建流程
*
......
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