当前位置: 首页 > news >正文

网站开发技术合同湛江制作网站多少钱

网站开发技术合同,湛江制作网站多少钱,瑞丽网站建设,自己怎么建网站卖东西背景: 下单时有很多情况,有的是用户下单,有的是卡密下单,有的是下游下单,有的是需要唤起支付,有的不需要支付,这样就需要写很多下单接口,下面使用策略模式优化这种情况 代码结构 com.example.order ├── controller │ └── OrderController.java ├── service │ …

背景:

下单时有很多情况,有的是用户下单,有的是卡密下单,有的是下游下单,有的是需要唤起支付,有的不需要支付,这样就需要写很多下单接口,下面使用策略模式优化这种情况

代码结构

com.example.order
├── controller
│   └── OrderController.java
├── service
│   ├── OrderService.java
│   └── impl
│       └── OrderServiceImpl.java
├── strategy
│   ├── OrderStrategy.java
│   ├── factory
│   │   └── OrderStrategyFactory.java
│   ├── impl
│   │   ├── UserOrderStrategy.java
│   │   └── CardOrderStrategy.java
├── dto
│   └── OrderDTO.java
├── vo
│   ├── UserOrderVO.java
│   └── CardOrderVO.java
├── mapper
│   ├── OrderMapper.java
│   └── xml
│       └── OrderMapper.xml
├── domain
│   └── OrderDO.java
@RestController
@RequestMapping("/orders")
public class OrderController {@Autowiredprivate OrderService orderService;@PostMapping("/create")public ResponseEntity<?> createOrder(@RequestBody OrderDTO orderDTO) {Object orderVO = orderService.createOrder(orderDTO);return new ResponseEntity<>(orderVO, HttpStatus.OK);}
}
@Service
public class OrderServiceImpl implements OrderService {@Override@SuppressWarnings("unchecked")public <T> T createOrder(OrderDTO orderDTO) {OrderStrategy<T> strategy = OrderStrategyFactory.getStrategy(orderDTO.getOrderType());return strategy.createOrder(orderDTO);}
}

策略类接口 

public interface OrderStrategy<T> {T createOrder(OrderDTO orderDTO);
}

用户下单策略类 

public class UserOrderStrategy implements OrderStrategy<UserOrderVO> {@Overridepublic UserOrderVO createOrder(OrderDTO orderDTO) {// 用户下单的具体处理逻辑// 生成订单并保存到数据库// 返回UserOrderVO对象UserOrderVO userOrderVO = new UserOrderVO();// 设置相关属性return userOrderVO;}
}

卡密下单策略类 

public class CardOrderStrategy implements OrderStrategy<CardOrderVO> {@Overridepublic CardOrderVO createOrder(OrderDTO orderDTO) {// 卡密下单的具体处理逻辑// 生成订单并保存到数据库// 返回CardOrderVO对象CardOrderVO cardOrderVO = new CardOrderVO();// 设置相关属性return cardOrderVO;}
}

策略类工厂 

import java.util.HashMap;
import java.util.Map;public class OrderStrategyFactory {private static final Map<String, OrderStrategy<?>> strategies = new HashMap<>();static {strategies.put("USER_ORDER", new UserOrderStrategy());strategies.put("CARD_ORDER", new CardOrderStrategy());// 初始化其他订单类型的策略}@SuppressWarnings("unchecked")public static <T> OrderStrategy<T> getStrategy(String orderType) {OrderStrategy<?> strategy = strategies.get(orderType);if (strategy == null) {throw new IllegalArgumentException("Unknown order type: " + orderType);}return (OrderStrategy<T>) strategy;}
}
public class UserOrderVO {private String orderId;private String status;private String userSpecificInfo;// 其他用户订单特有属性// Getters and Setters
}public class CardOrderVO {private String orderId;private String status;private String cardCode;// 其他卡密订单特有属性// Getters and Setters
}

public interface OrderMapper {void insertOrder(OrderDO orderDO);// 其他数据库操作方法
}

<mapper namespace="com.example.mapper.OrderMapper"><insert id="insertOrder" parameterType="OrderDO">INSERT INTO orders (order_id, user_id, order_type, payment_type, status)VALUES (#{orderId}, #{userId}, #{orderType}, #{paymentType}, #{status})</insert><!-- 其他数据库操作的XML定义 -->
</mapper>

http://www.yayakq.cn/news/336018/

相关文章:

  • 做网站时的电话图标营销软文的范文
  • 苏州住房建设局网站首页wordpress squarespace
  • 金华网站建设哪里好网址生成app
  • 商品网站源码做网站开发需要的英语水平
  • 天津开发区建设工程管理中心网站东莞网站推广哪里好
  • 高端网站设计杭州为什么建设文化馆网站
  • 搭建网站需要程序wordpress学院主题
  • 建设网站费用会计分录做一家购物网站要多少钱
  • wordpress版 影视站电商资源网站
  • 平湖市网站建设公司查询天眼官网
  • 网站建设免费建站网站建设实现用户登录
  • 视频网站大数据建设合肥seo按天扣费
  • 建站平台wp建设通网站免费注册
  • 网商网站怎么做无代码网站建设培训
  • 如何用ps做照片模板下载网站seo关键词智能排名
  • 网站制作软件下载泉州网站建设设计
  • 网站毕业设计选题视频网站建设方案
  • 樟木头仿做网站it培训机构哪些比较好
  • 做的好的个人网站知乎wordpress 4.9.5 太卡
  • 怎样用dw做网站主页网站设计抄袭
  • 最新创建的网站用户界面设计软件
  • 百度提交网站入口网址廉江网站建设公司
  • 福州网站建设兼职长宁深圳网站建设公司
  • 专业网站优化seowordpress自动插件
  • jquery网站底部导航效果上海发布公众号
  • 网站标题 空格公司注册地址变更需要多久
  • 水立方建设集团有限公司网站网站集约化建设的目的
  • 海外推广的网站有哪些网站建设需要资料
  • 南宁网站建设产品介绍曲阜市政对过做网站的是那家
  • 商城站时刻表苏州保洁公司排行榜