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

青岛市崂山区建设局网站做网站常用哪种语言

青岛市崂山区建设局网站,做网站常用哪种语言,网站建设教程,服务器网站别名设置步骤1: 创建orders订单表,子订单表和订单状态表对应的pojo和mappperOrders和OrderItemsMapperOrderItems和OrderItemsMapperOrderStatus和OrderStatusMapper步骤2:创建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 id="decreaseItemSpecStock">updateitems_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.yayakq.cn/news/616056/

相关文章:

  • 记事本怎么做网站网站制作厦门公司
  • dede网站栏目管理建立局域网的步骤
  • 怎么给网站做logo毕业设计做的网站抄袭
  • 手机网站 案例大学生网络推广实训报告
  • 黄冈网站推广软件视频如何在电脑上做网站
  • 网站开发的技术流程图怎么用别人网站做模板
  • 营销型企业网站的提出陕西seo经理
  • 新的网站做淘宝客个人简历表模板电子版
  • 南城微信网站建设媒体公关
  • 如何做好企业网站建设没有公司做网站可以吗
  • 网站开发需求网建筑人才网哪些
  • 网站设计规划的一般流程域名网站模板
  • 免费在线做网站重庆网站产品推广
  • 海南做网站公司免费源码下载
  • 公司网站服务器维护无锡网络公司可以制作网站
  • 2015做外贸网站好做吗wordpress建站 客户端
  • 做微信的网站有哪些功能青岛网络建站网站推广
  • 江西建网站做优化wordpress 设置关键字
  • 免费建站小程序重庆市建设工程信息网络
  • 长春火车站停运了吗广州越秀区核酸检测点
  • 商业网站建设大纲企业网站建设首选智投未来1
  • 上海锦都建设(集团)有限公司网站平台网站怎么建设
  • 西宁市建设网站企业2022app分类排行
  • 对网站建设课程的心得体会广州网络营销公司有哪些
  • 站长网站优点网站开发交什么税
  • 集团网站建设公司asia 域名 知名网站
  • 怎么建设seo自己网站ui制作网页模板
  • 公司网站建设有哪些免费建站的站点网站
  • 深圳网站制作大运软件小镇灰色行业推广引流
  • 网站安全管理机制建设重庆市工程建设招投标交易中心网站