关于spring:提交商品订单-SysResult

SysResult
个别后端业务解决实现之后,须要给客户端返回无效信息,告知客户端程序执行是否正确

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class SysResult {
 private Integer status;
 private String msp;//服务器提示信息 胜利 失败
 private Object data;//服务器返回值数据
 //利用static的静态方法 将数据动静返回
 public static SysResult fail(){
 return new SysResult(201,"业务执行失败",null);
 }
 public static SysResult success(){
 return new SysResult(200,"业务执行胜利",null);
 }
 public static SysResult success(Object data){
 return new SysResult(200,"业务执行胜利",data);
 }
 public static SysResult success(String msp,Object data){
 return new SysResult(200,msp,data);
 }
}

订单pojo

import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@TableName("tb_order")
@Data
@Accessors(chain=true)
public class Order extends BasePojo{
 @TableField(exist=false) //入库操作疏忽该字段
 private OrderShipping orderShipping;
 //封装订单商品信息  一对多
 @TableField(exist=false) //入库操作疏忽该字段
 private List<OrderItem> orderItems;
 @TableId
 private String orderId;
 private String payment;
 private Integer paymentType;
 private String postFee;
 private Integer status;
 private Date paymentTime;
 private Date consignTime;
 private Date endTime;
 private Date closeTime;
 private String shippingName;
 private String shippingCode;
 private Long userId;
 private String buyerMessage;
 private String buyerNick;
 private Integer buyerRate;
}

订单商品pojo

import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@TableName("tb_order_item")
@Data
@Accessors(chain=true)
public class OrderItem extends BasePojo{
 @TableId(type = IdType.AUTO)
 private String itemId;
  
 private String orderId;
 private Integer num;
 private String title;
 private Long price;
 private Long totalFee;
 private String picPath;
}

订单物流pojo

import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
@TableName("tb_order_shipping")
@Data
@Accessors(chain=true)
public class OrderShipping extends BasePojo{
 @TableId
 private String orderId;
 private String receiverName;
 private String receiverPhone;
 private String receiverMobile;
 private String receiverState;
 private String receiverCity;
 private String receiverDistrict;
 private String receiverAddress;
 private String receiverZip;
  }

实现提交订单

 @RequestMapping("submit")
 @ResponseBody
public SysResult submit(Order order){
 Long userId = UserLocalThread.get().getId();
 String orderId=dubboOrderService.saveOrder(order);
 if(StringUtils.isEmpty(orderId)){
 return SysResult.fail();
 }else {
 return SysResult.success(orderId);
 }
 }
@Autowired
private OrderMapper orderMapper;
@Autowired
private OrderShippingMapper orderShippingMapper;
@Autowired
private OrderItemMapper orderItemMapper;
 @Override
 public String saveOrder(Order order) {
 //1.拼接orderID =用户id加工夫戳
 String orderId=order.getUserId()+""+System.currentTimeMillis();
 order.setOrderId(orderId).setStatus(1);
 int i = orderMapper.insert(order);//订单入库
 //实现订单物流入库
 OrderShipping orderShipping = order.getOrderShipping();
 orderShipping.setOrderId(orderId);//订单物流增加订单id
 orderShippingMapper.insert(orderShipping);
 //实现订单商品入库
 List<OrderItem>orderItems=order.getOrderItems();
 for (OrderItem orderItem:orderItems){
 orderItem.setOrderId(orderId);
 orderItemMapper.insert(orderItem);
 System.out.println("商品入库胜利");
 }
 return orderId;
 }

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理