完成订单接口

pull/52/head
riverflow 8 months ago
parent 09cda3409b
commit f9a914bc19

@ -0,0 +1,25 @@
package com.itmk.web.order.controller;
import com.itmk.utils.ResultUtils;
import com.itmk.utils.ResultVo;
import com.itmk.web.order.entity.OrderParm;
import com.itmk.web.order.service.UserOrderService;
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;
@RestController
@RequestMapping("/wxapi/order")
public class UserOrderController {
@Autowired
private UserOrderService userOrderService;
//下单
@PostMapping("/splaceOrder")
public ResultVo splaceOrder(@RequestBody OrderParm parm){
userOrderService.splaceOrder(parm);
return ResultUtils.success("提交成功!");
}
}

@ -0,0 +1,17 @@
package com.itmk.web.order.entity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Data
public class OrderParm {
private String openid;
private String userName;
private String phone;
private String address;
private BigDecimal price;
private List<com.itmk.web.order.entity.ParmDetail> details = new ArrayList<>();
}

@ -0,0 +1,16 @@
package com.itmk.web.order.entity;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ParmDetail {
private Long goodsId;
private String goodsImage;
private String goodsName;
private String goodsUnit;
private String specsName;
private BigDecimal price;
private Integer num;
}

@ -0,0 +1,23 @@
package com.itmk.web.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
@TableName("user_order")
public class UserOrder {
@TableId(type = IdType.AUTO)
private Long orderId;
private String openid;
private String userName;
private String phone;
private String address;
private BigDecimal price;
private Date createTime;
private String status;
}

@ -0,0 +1,7 @@
package com.itmk.web.order.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itmk.web.order.entity.UserOrder;
public interface UserOrderMapper extends BaseMapper<UserOrder> {
}

@ -0,0 +1,9 @@
package com.itmk.web.order.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itmk.web.order.entity.OrderParm;
import com.itmk.web.order.entity.UserOrder;
public interface UserOrderService extends IService<UserOrder> {
void splaceOrder(OrderParm parm);
}

@ -0,0 +1,49 @@
package com.itmk.web.order.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itmk.web.order.entity.OrderParm;
import com.itmk.web.order.entity.ParmDetail;
import com.itmk.web.order.entity.UserOrder;
import com.itmk.web.order.mapper.UserOrderMapper;
import com.itmk.web.order.service.UserOrderService;
import com.itmk.web.order_detail.entity.UserOrderDetail;
import com.itmk.web.order_detail.service.UserOrderDetailService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.ArrayList;
import java.util.List;
@Service
public class UserOrderServiceImpl extends ServiceImpl<UserOrderMapper, UserOrder> implements UserOrderService {
@Autowired
private UserOrderDetailService userOrderDetailService;
@Override
public void splaceOrder(OrderParm parm) {
//操作订单主表
UserOrder order = new UserOrder();
BeanUtils.copyProperties(parm, order);
order.setCreateTime(new Date());
order.setStatus("0");
int ls = this.baseMapper.insert(order);
//操作子表:订单对应的商品
if (ls > 0) {
List<ParmDetail> details = parm.getDetails();
List<UserOrderDetail> list = new ArrayList<>();
if (details.size() > 0) {
for (int i = 0; i < details.size(); i++) {
UserOrderDetail detail = new UserOrderDetail();
BeanUtils.copyProperties(details.get(i), detail);
//设置关联的主表
detail.setOrderId(order.getOrderId());
list.add(detail);
}
}
//批量插入
userOrderDetailService.saveBatch(list);
}
}
}

@ -0,0 +1,23 @@
package com.itmk.web.order_detail.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.math.BigDecimal;
@Data
@TableName("user_order_detail")
public class UserOrderDetail {
@TableId(type = IdType.AUTO)
private Long detailId;
private Long orderId;
private Long goodsId;
private String goodsImage;
private String goodsName;
private String goodsUnit;
private String specsName;
private BigDecimal price;
private Integer num;
}

@ -0,0 +1,7 @@
package com.itmk.web.order_detail.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itmk.web.order_detail.entity.UserOrderDetail;
public interface UserOrderDetailMapper extends BaseMapper<UserOrderDetail> {
}

@ -0,0 +1,7 @@
package com.itmk.web.order_detail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itmk.web.order_detail.entity.UserOrderDetail;
public interface UserOrderDetailService extends IService<UserOrderDetail> {
}

@ -0,0 +1,11 @@
package com.itmk.web.order_detail.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itmk.web.order_detail.entity.UserOrderDetail;
import com.itmk.web.order_detail.mapper.UserOrderDetailMapper;
import com.itmk.web.order_detail.service.UserOrderDetailService;
import org.springframework.stereotype.Service;
@Service
public class UserOrderDetailServiceImpl extends ServiceImpl<UserOrderDetailMapper, UserOrderDetail> implements UserOrderDetailService {
}

@ -1,6 +1,7 @@
package com.itmk.web.address.controller;
package com.itmk.web.wxapi.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.itmk.utils.ResultUtils;
import com.itmk.utils.ResultVo;
import com.itmk.web.address.entity.UserAddress;
@ -11,7 +12,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/address")
@RequestMapping("/wxapi/address")
public class UserAddressController {
@Autowired
private UserAddressService userAddressService;
@ -25,11 +26,26 @@ public class UserAddressController {
return ResultUtils.error("新增地址失败!");
}
//编辑地址
@PutMapping
public ResultVo edit(@RequestBody UserAddress userAddress){
//先全部更新为不是默认
LambdaUpdateWrapper<UserAddress> query = new LambdaUpdateWrapper<>();
query.eq(UserAddress::getOpenid,userAddress.getOpenid()).set(UserAddress::getStatus,"0");
userAddressService.update(query);
//更新当前编辑的这条数据
if(userAddressService.updateById(userAddress)){
return ResultUtils.success("编辑地址成功!");
}
return ResultUtils.error("编辑地址失败!");
}
//列表
@GetMapping("/list")
public ResultVo list(){
public ResultVo list(String openid){
//排序按status排序默认的排在第一条
QueryWrapper<UserAddress> query = new QueryWrapper<>();
query.lambda().eq(UserAddress::getOpenid,openid);
query.lambda().orderByDesc(UserAddress::getStatus);
List<UserAddress> list = userAddressService.list(query);
return ResultUtils.success("查询成功",list);

@ -0,0 +1,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itmk.web.user_order_detail.mapper.UserOrderDetailMapper">
</mapper>

@ -0,0 +1,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itmk.web.user_order.mapper.UserOrderMapper">
</mapper>
Loading…
Cancel
Save