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

网站设置专栏引流软件

网站设置专栏,引流软件,苏州万浩伟网络科技有限公司,wordpress邮箱社交步骤1#xff1a; 创建orders订单表,子订单表和订单状态表对应的pojo和mappperOrders和OrderItemsMapperOrderItems和OrderItemsMapperOrderStatus和OrderStatusMapper步骤2#xff1a;创建OrderService和对应的实现类 public interface OrderService {/*** 用于创建订单相关…步骤1 创建orders订单表,子订单表和订单状态表对应的pojo和mappperOrders和OrderItemsMapperOrderItems和OrderItemsMapperOrderStatus和OrderStatusMapper步骤2创建OrderService和对应的实现类 public interface OrderService {/*** 用于创建订单相关信息* param submitOrderBO*/public OrderVO createOrder(SubmitOrderBO submitOrderBO); }package com.one.service.order.impl; import com.one.bo.SubmitOrderBO; import com.one.enums.OrderStatusEnum; import com.one.enums.YesOrNo; import com.one.mapper.OrderItemsMapper; import com.one.mapper.OrderStatusMapper; import com.one.mapper.OrdersMapper; import com.one.pojo.*; import com.one.service.address.AddressService; import com.one.service.item.ItemService; import com.one.service.order.OrderService; import com.one.vo.MerchantOrdersVO; import com.one.vo.OrderVO; import org.n3r.idworker.Sid; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.Date;Service public class OrderServiceImpl implements OrderService {Autowiredprivate OrdersMapper ordersMapper;Autowiredprivate OrderItemsMapper orderItemsMapper;Autowiredprivate OrderStatusMapper orderStatusMapper;Autowiredprivate AddressService addressService;Autowiredprivate ItemService itemService;Autowiredprivate Sid sid;Transactional(propagation Propagation.REQUIRED)Overridepublic OrderVO createOrder(SubmitOrderBO submitOrderBO) {String userId submitOrderBO.getUserId();String addressId submitOrderBO.getAddressId();String itemSpecIds submitOrderBO.getItemSpecIds();Integer payMethod submitOrderBO.getPayMethod();String leftMsg submitOrderBO.getLeftMsg();// 包邮费用设置为0Integer postAmount 0;String orderId sid.nextShort();UserAddress address addressService.queryUserAddres(userId, addressId);// 1. 新订单数据保存Orders newOrder new Orders();newOrder.setId(orderId);newOrder.setUserId(userId);newOrder.setReceiverName(address.getReceiver());newOrder.setReceiverMobile(address.getMobile());newOrder.setReceiverAddress(address.getProvince() address.getCity() address.getDistrict() address.getDetail());newOrder.setPostAmount(postAmount);newOrder.setPayMethod(payMethod);newOrder.setLeftMsg(leftMsg);newOrder.setIsComment(YesOrNo.NO.type);newOrder.setIsDelete(YesOrNo.NO.type);newOrder.setCreatedTime(new Date());newOrder.setUpdatedTime(new Date());// 2. 循环根据itemSpecIds保存订单商品信息表String itemSpecIdArr[] itemSpecIds.split(,);Integer totalAmount 0; // 商品原价累计Integer realPayAmount 0; // 优惠后的实际支付价格累计for (String itemSpecId : itemSpecIdArr) {// TODO 整合redis后商品购买的数量重新从redis的购物车中获取int buyCounts 1;// 2.1 根据规格id查询规格的具体信息主要获取价格ItemsSpec itemSpec itemService.queryItemSpecById(itemSpecId);totalAmount itemSpec.getPriceNormal() * buyCounts;realPayAmount itemSpec.getPriceDiscount() * buyCounts;// 2.2 根据商品id获得商品信息以及商品图片String itemId itemSpec.getItemId();Items item itemService.queryItemById(itemId);String imgUrl itemService.queryItemMainImgById(itemId);// 2.3 循环保存子订单数据到数据库String subOrderId sid.nextShort();OrderItems subOrderItem new OrderItems();subOrderItem.setId(subOrderId);subOrderItem.setOrderId(orderId);subOrderItem.setItemId(itemId);subOrderItem.setItemName(item.getItemName());subOrderItem.setItemImg(imgUrl);subOrderItem.setBuyCounts(buyCounts);subOrderItem.setItemSpecId(itemSpecId);subOrderItem.setItemSpecName(itemSpec.getName());subOrderItem.setPrice(itemSpec.getPriceDiscount());orderItemsMapper.insert(subOrderItem);// 2.4 在用户提交订单以后规格表中需要扣除库存itemService.decreaseItemSpecStock(itemSpecId, buyCounts);}newOrder.setTotalAmount(totalAmount);newOrder.setRealPayAmount(realPayAmount);ordersMapper.insert(newOrder);// 3. 保存订单状态表OrderStatus waitPayOrderStatus new OrderStatus();waitPayOrderStatus.setOrderId(orderId);waitPayOrderStatus.setOrderStatus(OrderStatusEnum.WAIT_PAY.type);waitPayOrderStatus.setCreatedTime(new Date());orderStatusMapper.insert(waitPayOrderStatus);// 4. 构建商户订单用于传给支付中心MerchantOrdersVO merchantOrdersVO new MerchantOrdersVO();merchantOrdersVO.setMerchantOrderId(orderId);merchantOrdersVO.setMerchantUserId(userId);merchantOrdersVO.setAmount(realPayAmount postAmount);merchantOrdersVO.setPayMethod(payMethod);// 5. 构建自定义订单voOrderVO orderVO new OrderVO();orderVO.setOrderId(orderId);orderVO.setMerchantOrdersVO(merchantOrdersVO);return orderVO;} }步骤3创建订单使用的的操作方法 3.1接口ItemService中 /*** 根据商品规格id获取规格对象的具体信息* param specId* return*/public ItemsSpec queryItemSpecById(String specId);/*** 根据商品id获得商品图片主图url* param itemId* return*/public String queryItemMainImgById(String itemId);/*** 减少库存* param specId* param buyCounts*/public void decreaseItemSpecStock(String specId, int buyCounts);3.2接口ItemService实现类Transactional(propagation Propagation.SUPPORTS)Overridepublic ItemsSpec queryItemSpecById(String specId) {return itemsSpecMapper.selectByPrimaryKey(specId);}Transactional(propagation Propagation.SUPPORTS)Overridepublic String queryItemMainImgById(String itemId) {ItemsImg itemsImg new ItemsImg();itemsImg.setItemId(itemId);itemsImg.setIsMain(YesOrNo.YES.type);ItemsImg result itemsImgMapper.selectOne(itemsImg);return result ! null ? result.getUrl() : ;}Transactional(propagation Propagation.REQUIRED)Overridepublic void decreaseItemSpecStock(String specId, int buyCounts) {int result itemsMapperCustom.decreaseItemSpecStock(specId, buyCounts);if (result ! 1) {throw new RuntimeException(订单创建失败原因库存不足!);}}3.3 mapper接口中ItemsMapperCustom类public int decreaseItemSpecStock(Param(specId) String specId, Param(pendingCounts) int pendingCounts);update iddecreaseItemSpecStockupdateitems_specsetstock stock - #{pendingCounts}whereid #{specId}andstock #{pendingCounts}/update步骤4:创建对应的bo类和枚举 public enum PayMethod {WEIXIN(1, 微信),ALIPAY(2, 支付宝);public final Integer type;public final String value;PayMethod(Integer type, String value){this.type type;this.value value;} } public enum OrderStatusEnum {WAIT_PAY(10, 待付款),WAIT_DELIVER(20, 已付款待发货),WAIT_RECEIVE(30, 已发货待收货),SUCCESS(40, 交易成功),CLOSE(50, 交易关闭);public final Integer type;public final String value;OrderStatusEnum(Integer type, String value){this.type type;this.value value;} } public class SubmitOrderBO {private String userId;private String itemSpecIds;private String addressId;private Integer payMethod;private String leftMsg; }步骤5创建controller类 package com.one.controller.order; import com.one.bo.SubmitOrderBO; import com.one.controller.BaseController; import com.one.enums.PayMethod; import com.one.service.order.OrderService; import com.one.utils.JSONResult; import com.one.vo.OrderVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; Api(value 订单相关, tags {订单相关的api接口}) RequestMapping(orders) RestController public class OrdersController extends BaseController {final static Logger logger LoggerFactory.getLogger(OrdersController.class);Autowiredprivate OrderService orderService;ApiOperation(value 用户下单, notes 用户下单, httpMethod POST)PostMapping(/create)public JSONResult create(RequestBody SubmitOrderBO submitOrderBO, HttpServletRequest request, HttpServletResponse response) {if (submitOrderBO.getPayMethod() ! PayMethod.WEIXIN.type submitOrderBO.getPayMethod() ! PayMethod.ALIPAY.type ) {return JSONResult.errorMsg(支付方式不支持);}// 1. 创建订单OrderVO orderVO orderService.createOrder(submitOrderBO);String orderId orderVO.getOrderId();// 2. 创建订单以后移除购物车中已结算已提交的商品// 3. 向支付中心发送当前订单用于保存支付中心的订单数据return JSONResult.ok(orderId);} }
http://www.sadfv.cn/news/17363/

相关文章:

  • 网站开发绩效指标百度指数排名
  • 网站开发使用的软件广东网站设计公司价格
  • 公司网站报价网络营销产品策略的内容
  • 简述电子商务网站建设的主要步骤龙岗网站建设公司哪家口碑好
  • 杭州手机网站建设手机编程软件哪个好
  • 个人设计师网站建设银行网站打不开用什么浏览器
  • 自建网站做淘宝联盟长春网站建设产品展示
  • 部队网站怎么做营销网站建设与管理
  • 建筑企业网站ui培训怎么样
  • 网站毕设代做贵阳网站建设公
  • 四川省城乡住房建设厅网站新泰网页定制
  • 荆门网站建设514885南昌seo网站推广费用
  • 如何进入优容网站能免费观看所有电视剧的app
  • html5网站后台怎么做如何修改网站备案的域名
  • 肇庆企业做网站福州外文网站建设
  • 个人做网站需要学什么只是网站改版的几个建议
  • 深圳创意设计网站在线工具查看源代码
  • 昆明住房和城乡建设部网站wordpress建站 网盘视频教程
  • 信息技术网站建设专业建材网站设计
  • 个人模板建站网站的意义
  • 丹徒网站建设价格wordpress固定连接出现中文
  • 怎么做网站301转向wordpress使用视频教程
  • 做网站毕业设计存在的问题网上做网站怎么赚钱吗
  • 制作网站时搜索图标如何做wordpress 宣布停止
  • 广州网站优化公司咨询怎么在word里做网站
  • 通化县住房和城乡建设局网站福建龙岩昨天发生的新闻
  • 网站备案需要哪些东西免费网站可以做cpa
  • 洞头建设局网站网站付款链接怎么做的
  • .net 网站开发工程师东莞互联网大公司有哪些
  • 站长之家seo综合查询站酷网页设计分析