dev-v2 #3
|
@ -31,4 +31,6 @@ public class MessageConstant {
|
||||||
public static final String VERIFICATION_CODE_IS_EMPTY = "请先发送验证码";
|
public static final String VERIFICATION_CODE_IS_EMPTY = "请先发送验证码";
|
||||||
public static final String LOGIN_DTO_IS_EMPTY = "登录参数不能为空";
|
public static final String LOGIN_DTO_IS_EMPTY = "登录参数不能为空";
|
||||||
public static final String TOKEN_IS_EMPTY = "token为空";
|
public static final String TOKEN_IS_EMPTY = "token为空";
|
||||||
|
public static final String DATA_IS_EMPTY = "数据为空";
|
||||||
|
public static final String STOCK_LESS = "库存不足";
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,9 @@ import java.util.List;
|
||||||
|
|
||||||
@FeignClient(value = "service-cart", path = "/api/order/cart")
|
@FeignClient(value = "service-cart", path = "/api/order/cart")
|
||||||
public interface CartFeignClient {
|
public interface CartFeignClient {
|
||||||
@GetMapping(value = "/auth/getAllCkecked")
|
@GetMapping("/auth/getAllCkecked")
|
||||||
Result<List<CartInfo>> getAllChecked();
|
Result<List<CartInfo>> getAllChecked();
|
||||||
|
|
||||||
|
@GetMapping("/auth/deleteChecked")
|
||||||
|
Result<String> deleteChecked();
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ import org.springframework.cloud.openfeign.FeignClient;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
|
||||||
@FeignClient(name = "service-product", path = "/api/product/")
|
@FeignClient(value = "service-product", path = "/api/product/")
|
||||||
public interface ProductFeignClient {
|
public interface ProductFeignClient {
|
||||||
@GetMapping("getBySkuId/{skuId}")
|
@GetMapping("getBySkuId/{skuId}")
|
||||||
Result<ProductSku> getBySkuId(@PathVariable Long skuId);
|
Result<ProductSku> getBySkuId(@PathVariable Long skuId);
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.atguigu.feign.user;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.entity.user.UserAddress;
|
||||||
|
import com.atguigu.spzx.model.vo.result.Result;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
|
||||||
|
@FeignClient(value = "service-user", path = "/api/user/userAddress")
|
||||||
|
public interface UserFeignClient {
|
||||||
|
@GetMapping("getUserAddress/{id}")
|
||||||
|
Result<UserAddress> getUserAddress(@PathVariable Long id);
|
||||||
|
}
|
|
@ -43,15 +43,15 @@ public class CartController {
|
||||||
|
|
||||||
@Operation(summary = "更新购物车商品选中状态")
|
@Operation(summary = "更新购物车商品选中状态")
|
||||||
@GetMapping("/auth/checkCart/{skuId}/{isChecked}")
|
@GetMapping("/auth/checkCart/{skuId}/{isChecked}")
|
||||||
public Result<String> checkCart(@Parameter(name = "skuId", description = "商品skuId", required = true) @PathVariable(value = "skuId") Long skuId,
|
public Result<String> checkCart(@Parameter(name = "skuId", description = "商品skuId", required = true) @PathVariable("skuId") Long skuId,
|
||||||
@Parameter(name = "isChecked", description = "是否选中 1:选中 0:取消选中", required = true) @PathVariable(value = "isChecked") Integer isChecked) {
|
@Parameter(name = "isChecked", description = "是否选中 1:选中 0:取消选中", required = true) @PathVariable("isChecked") Integer isChecked) {
|
||||||
cartService.checkCart(skuId, isChecked);
|
cartService.checkCart(skuId, isChecked);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "更新购物车商品全部选中状态")
|
@Operation(summary = "更新购物车商品全部选中状态")
|
||||||
@GetMapping("/auth/allCheckCart/{isChecked}")
|
@GetMapping("/auth/allCheckCart/{isChecked}")
|
||||||
public Result<String> allCheckCart(@Parameter(name = "isChecked", description = "是否选中 1:选中 0:取消选中", required = true) @PathVariable(value = "isChecked") Integer isChecked) {
|
public Result<String> allCheckCart(@Parameter(name = "isChecked", description = "是否选中 1:选中 0:取消选中", required = true) @PathVariable("isChecked") Integer isChecked) {
|
||||||
cartService.allCheckCart(isChecked);
|
cartService.allCheckCart(isChecked);
|
||||||
return Result.success();
|
return Result.success();
|
||||||
}
|
}
|
||||||
|
@ -64,9 +64,16 @@ public class CartController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "选中的购物车")
|
@Operation(summary = "选中的购物车")
|
||||||
@GetMapping(value = "/auth/getAllCkecked")
|
@GetMapping("/auth/getAllCkecked")
|
||||||
public Result<List<CartInfo>> getAllChecked() {
|
public Result<List<CartInfo>> getAllChecked() {
|
||||||
List<CartInfo> cartInfoList = cartService.getAllChecked();
|
List<CartInfo> cartInfoList = cartService.getAllChecked();
|
||||||
return Result.success(cartInfoList);
|
return Result.success(cartInfoList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "清空提交过的购物车")
|
||||||
|
@GetMapping("/auth/deleteChecked")
|
||||||
|
public Result<String> deleteChecked() {
|
||||||
|
cartService.deleteChecked();
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -53,4 +53,9 @@ public interface CartService {
|
||||||
* @return CartInfo列表
|
* @return CartInfo列表
|
||||||
*/
|
*/
|
||||||
List<CartInfo> getAllChecked();
|
List<CartInfo> getAllChecked();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清空提交过的购物车
|
||||||
|
*/
|
||||||
|
void deleteChecked();
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,4 +180,19 @@ public class CartServiceImpl implements CartService {
|
||||||
}
|
}
|
||||||
return new ArrayList<>();
|
return new ArrayList<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清空提交过的购物车
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteChecked() {
|
||||||
|
Long userId = BaseContext.getUserInfo().getId();
|
||||||
|
String cartKey = RedisUtils.getCartKey(userId);
|
||||||
|
List<Object> objectList = redisTemplate.opsForHash().values(cartKey); // 删除选中的购物项数据
|
||||||
|
if (!CollectionUtils.isEmpty(objectList)) {
|
||||||
|
objectList.stream().map(cartInfoJSON -> JSON.parseObject(cartInfoJSON.toString(), CartInfo.class))
|
||||||
|
.filter(cartInfo -> cartInfo.getIsChecked() == 1)
|
||||||
|
.forEach(cartInfo -> redisTemplate.opsForHash().delete(cartKey, String.valueOf(cartInfo.getSkuId())));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,5 +23,15 @@
|
||||||
<artifactId>service-cart-client</artifactId>
|
<artifactId>service-cart-client</artifactId>
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.atguigu</groupId>
|
||||||
|
<artifactId>service-user-client</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.atguigu</groupId>
|
||||||
|
<artifactId>service-product-client</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableFeignClients(basePackages = {"com.atguigu.feign.cart"})
|
@EnableFeignClients(basePackages = {"com.atguigu.feign.cart", "com.atguigu.feign.user"})
|
||||||
@EnableUserTokenFeignInterceptor
|
@EnableUserTokenFeignInterceptor
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class OrderApplication {
|
public class OrderApplication {
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
package com.atguigu.order.controller;
|
package com.atguigu.order.controller;
|
||||||
|
|
||||||
import com.atguigu.order.service.OrderInfoService;
|
import com.atguigu.order.service.OrderInfoService;
|
||||||
|
import com.atguigu.spzx.model.dto.h5.OrderInfoDto;
|
||||||
import com.atguigu.spzx.model.vo.h5.TradeVo;
|
import com.atguigu.spzx.model.vo.h5.TradeVo;
|
||||||
import com.atguigu.spzx.model.vo.result.Result;
|
import com.atguigu.spzx.model.vo.result.Result;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
@Tag(name = "订单管理")
|
@Tag(name = "订单管理")
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -23,4 +23,11 @@ public class OrderInfoController {
|
||||||
TradeVo tradeVo = orderInfoService.getTrade();
|
TradeVo tradeVo = orderInfoService.getTrade();
|
||||||
return Result.success(tradeVo);
|
return Result.success(tradeVo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Operation(summary = "提交订单")
|
||||||
|
@PostMapping("auth/submitOrder")
|
||||||
|
public Result<Long> submitOrder(@Parameter(name = "orderInfoDto", description = "请求参数实体类", required = true) @RequestBody OrderInfoDto orderInfoDto) {
|
||||||
|
Long orderId = orderInfoService.submitOrder(orderInfoDto);
|
||||||
|
return Result.success(orderId);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,14 @@
|
||||||
package com.atguigu.order.mapper;
|
package com.atguigu.order.mapper;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.entity.order.OrderInfo;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface OrderInfoMapper {
|
public interface OrderInfoMapper {
|
||||||
|
/**
|
||||||
|
* 添加数据到order_info中
|
||||||
|
*
|
||||||
|
* @param orderInfo orderInfo
|
||||||
|
*/
|
||||||
|
void save(OrderInfo orderInfo);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.atguigu.order.mapper;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.entity.order.OrderItem;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface OrderItemMapper {
|
||||||
|
/**
|
||||||
|
* 保存订单明细
|
||||||
|
*
|
||||||
|
* @param orderItem orderItem
|
||||||
|
*/
|
||||||
|
void save(OrderItem orderItem);
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.atguigu.order.mapper;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.entity.order.OrderLog;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface OrderLogMapper {
|
||||||
|
/**
|
||||||
|
* 记录日志
|
||||||
|
*
|
||||||
|
* @param orderLog orderLog
|
||||||
|
*/
|
||||||
|
void save(OrderLog orderLog);
|
||||||
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package com.atguigu.order.service;
|
package com.atguigu.order.service;
|
||||||
|
|
||||||
|
import com.atguigu.spzx.model.dto.h5.OrderInfoDto;
|
||||||
import com.atguigu.spzx.model.vo.h5.TradeVo;
|
import com.atguigu.spzx.model.vo.h5.TradeVo;
|
||||||
|
|
||||||
public interface OrderInfoService {
|
public interface OrderInfoService {
|
||||||
|
@ -9,4 +10,12 @@ public interface OrderInfoService {
|
||||||
* @return 结算实体类
|
* @return 结算实体类
|
||||||
*/
|
*/
|
||||||
TradeVo getTrade();
|
TradeVo getTrade();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交订单
|
||||||
|
*
|
||||||
|
* @param orderInfoDto OrderInfoDto
|
||||||
|
* @return Long
|
||||||
|
*/
|
||||||
|
Long submitOrder(OrderInfoDto orderInfoDto);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +1,55 @@
|
||||||
package com.atguigu.order.service.impl;
|
package com.atguigu.order.service.impl;
|
||||||
|
|
||||||
|
import com.alibaba.nacos.client.naming.utils.CollectionUtils;
|
||||||
|
import com.atguigu.constant.MessageConstant;
|
||||||
|
import com.atguigu.context.BaseContext;
|
||||||
|
import com.atguigu.exception.BunnyException;
|
||||||
|
import com.atguigu.feign.cart.CartFeignClient;
|
||||||
|
import com.atguigu.feign.product.ProductFeignClient;
|
||||||
|
import com.atguigu.feign.user.UserFeignClient;
|
||||||
|
import com.atguigu.order.mapper.OrderInfoMapper;
|
||||||
|
import com.atguigu.order.mapper.OrderItemMapper;
|
||||||
|
import com.atguigu.order.mapper.OrderLogMapper;
|
||||||
import com.atguigu.order.service.OrderInfoService;
|
import com.atguigu.order.service.OrderInfoService;
|
||||||
import com.atguigu.order.service.module.OrderInfoServiceModule;
|
import com.atguigu.order.service.module.OrderInfoServiceModule;
|
||||||
|
import com.atguigu.spzx.model.dto.h5.OrderInfoDto;
|
||||||
|
import com.atguigu.spzx.model.entity.order.OrderInfo;
|
||||||
import com.atguigu.spzx.model.entity.order.OrderItem;
|
import com.atguigu.spzx.model.entity.order.OrderItem;
|
||||||
|
import com.atguigu.spzx.model.entity.order.OrderLog;
|
||||||
|
import com.atguigu.spzx.model.entity.product.ProductSku;
|
||||||
|
import com.atguigu.spzx.model.entity.user.UserAddress;
|
||||||
|
import com.atguigu.spzx.model.entity.user.UserInfo;
|
||||||
import com.atguigu.spzx.model.vo.h5.TradeVo;
|
import com.atguigu.spzx.model.vo.h5.TradeVo;
|
||||||
|
import com.atguigu.spzx.model.vo.result.ResultCodeEnum;
|
||||||
|
import com.atguigu.utils.EmptyUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class OrderInfoServiceImpl implements OrderInfoService {
|
public class OrderInfoServiceImpl implements OrderInfoService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private OrderInfoServiceModule orderInfoServiceModule;
|
private OrderInfoServiceModule orderInfoServiceModule;
|
||||||
|
@Autowired
|
||||||
|
private CartFeignClient cartFeignClient;
|
||||||
|
@Autowired
|
||||||
|
private ProductFeignClient productFeignClient;
|
||||||
|
@Autowired
|
||||||
|
private UserFeignClient userFeignClient;
|
||||||
|
@Autowired
|
||||||
|
private OrderInfoMapper orderInfoMapper;
|
||||||
|
@Autowired
|
||||||
|
private OrderItemMapper orderItemMapper;
|
||||||
|
@Autowired
|
||||||
|
private OrderLogMapper orderLogMapper;
|
||||||
|
@Autowired
|
||||||
|
private EmptyUtil emptyUtil;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 确认下单
|
* 确认下单
|
||||||
|
@ -38,4 +72,81 @@ public class OrderInfoServiceImpl implements OrderInfoService {
|
||||||
|
|
||||||
return tradeVo;
|
return tradeVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交订单
|
||||||
|
*
|
||||||
|
* @param orderInfoDto OrderInfoDto
|
||||||
|
* @return Long
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long submitOrder(OrderInfoDto orderInfoDto) {
|
||||||
|
// 数据校验
|
||||||
|
List<OrderItem> orderItemList = orderInfoDto.getOrderItemList();
|
||||||
|
if (CollectionUtils.isEmpty(orderItemList)) {
|
||||||
|
throw new BunnyException(ResultCodeEnum.DATA_ERROR);
|
||||||
|
}
|
||||||
|
// 检验商品库存是否充足,遍历list集合
|
||||||
|
orderItemList.forEach(orderItem -> {
|
||||||
|
ProductSku productSku = productFeignClient.getBySkuId(orderItem.getSkuId()).getData();
|
||||||
|
if (productSku == null) {
|
||||||
|
throw new BunnyException(MessageConstant.DATA_IS_EMPTY);
|
||||||
|
}
|
||||||
|
// 检验每个库存是否充足
|
||||||
|
if (productSku.getStockNum() < orderItem.getSkuNum()) {
|
||||||
|
throw new BunnyException(MessageConstant.STOCK_LESS);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 添加数据到order_info表
|
||||||
|
// 构建订单数据,保存订单
|
||||||
|
UserInfo userInfo = BaseContext.getUserInfo();
|
||||||
|
OrderInfo orderInfo = new OrderInfo();
|
||||||
|
// 订单编号
|
||||||
|
orderInfo.setOrderNo(String.valueOf(System.currentTimeMillis()));
|
||||||
|
// 用户id
|
||||||
|
orderInfo.setUserId(userInfo.getId());
|
||||||
|
// 用户昵称
|
||||||
|
orderInfo.setNickName(userInfo.getNickName());
|
||||||
|
// 用户收货地址信息
|
||||||
|
UserAddress userAddress = userFeignClient.getUserAddress(orderInfoDto.getUserAddressId()).getData();
|
||||||
|
orderInfo.setReceiverName(userAddress.getName());
|
||||||
|
orderInfo.setReceiverPhone(userAddress.getPhone());
|
||||||
|
orderInfo.setReceiverTagName(userAddress.getTagName());
|
||||||
|
orderInfo.setReceiverProvince(userAddress.getProvinceCode());
|
||||||
|
orderInfo.setReceiverCity(userAddress.getCityCode());
|
||||||
|
orderInfo.setReceiverDistrict(userAddress.getDistrictCode());
|
||||||
|
orderInfo.setReceiverAddress(userAddress.getFullAddress());
|
||||||
|
// 订单金额
|
||||||
|
BigDecimal totalAmount = new BigDecimal(0);
|
||||||
|
for (OrderItem orderItem : orderItemList) {
|
||||||
|
totalAmount = totalAmount.add(orderItem.getSkuPrice().multiply(new BigDecimal(orderItem.getSkuNum())));
|
||||||
|
}
|
||||||
|
orderInfo.setTotalAmount(totalAmount);
|
||||||
|
orderInfo.setCouponAmount(new BigDecimal(0));
|
||||||
|
orderInfo.setOriginalTotalAmount(totalAmount);
|
||||||
|
orderInfo.setFeightFee(orderInfoDto.getFeightFee());
|
||||||
|
orderInfo.setPayType(2);
|
||||||
|
orderInfo.setOrderStatus(0);
|
||||||
|
// 添加数据到order_info中
|
||||||
|
orderInfoMapper.save(orderInfo);
|
||||||
|
|
||||||
|
// 保存订单明细
|
||||||
|
for (OrderItem orderItem : orderItemList) {
|
||||||
|
orderItem.setOrderId(orderInfo.getId());
|
||||||
|
orderItemMapper.save(orderItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 记录日志
|
||||||
|
OrderLog orderLog = new OrderLog();
|
||||||
|
orderLog.setOrderId(orderInfo.getId());
|
||||||
|
orderLog.setProcessStatus(0);
|
||||||
|
orderLog.setNote("提交订单");
|
||||||
|
orderLogMapper.save(orderLog);
|
||||||
|
|
||||||
|
// 5、清空购物车数据
|
||||||
|
cartFeignClient.deleteChecked();
|
||||||
|
// 6、返回订单id
|
||||||
|
return orderInfo.getId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,60 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
<mapper namespace="com.atguigu.order.mapper.OrderInfoMapper">
|
<mapper namespace="com.atguigu.order.mapper.OrderInfoMapper">
|
||||||
|
<!-- 用于select查询公用抽取的列 -->
|
||||||
|
<sql id="columns">
|
||||||
|
id,user_id,nick_name,order_no,coupon_id,total_amount,coupon_amount,original_total_amount,feight_fee,pay_type,order_status,receiver_name,receiver_phone,receiver_tag_name,receiver_province,receiver_city,receiver_district,receiver_address,payment_time,delivery_time,receive_time,remark,cancel_time,cancel_reason,create_time,update_time,is_deleted
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!-- 添加数据到order_info中 -->
|
||||||
|
<insert id="save">
|
||||||
|
insert into order_info (id,
|
||||||
|
user_id,
|
||||||
|
nick_name,
|
||||||
|
order_no,
|
||||||
|
coupon_id,
|
||||||
|
total_amount,
|
||||||
|
coupon_amount,
|
||||||
|
original_total_amount,
|
||||||
|
feight_fee,
|
||||||
|
pay_type,
|
||||||
|
order_status,
|
||||||
|
receiver_name,
|
||||||
|
receiver_phone,
|
||||||
|
receiver_tag_name,
|
||||||
|
receiver_province,
|
||||||
|
receiver_city,
|
||||||
|
receiver_district,
|
||||||
|
receiver_address,
|
||||||
|
payment_time,
|
||||||
|
delivery_time,
|
||||||
|
receive_time,
|
||||||
|
remark,
|
||||||
|
cancel_time,
|
||||||
|
cancel_reason)
|
||||||
|
values (#{id},
|
||||||
|
#{userId},
|
||||||
|
#{nickName},
|
||||||
|
#{orderNo},
|
||||||
|
#{couponId},
|
||||||
|
#{totalAmount},
|
||||||
|
#{couponAmount},
|
||||||
|
#{originalTotalAmount},
|
||||||
|
#{feightFee},
|
||||||
|
#{payType},
|
||||||
|
#{orderStatus},
|
||||||
|
#{receiverName},
|
||||||
|
#{receiverPhone},
|
||||||
|
#{receiverTagName},
|
||||||
|
#{receiverProvince},
|
||||||
|
#{receiverCity},
|
||||||
|
#{receiverDistrict},
|
||||||
|
#{receiverAddress},
|
||||||
|
#{paymentTime},
|
||||||
|
#{deliveryTime},
|
||||||
|
#{receiveTime},
|
||||||
|
#{remark},
|
||||||
|
#{cancelTime},
|
||||||
|
#{cancelReason})
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.atguigu.order.mapper.OrderItemMapper">
|
||||||
|
<!-- 用于select查询公用抽取的列 -->
|
||||||
|
<sql id="columns">
|
||||||
|
id,order_id,sku_id,sku_name,thumb_img,sku_price,sku_num,create_time,update_time,is_deleted
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!-- 保存订单明细 -->
|
||||||
|
<insert id="save">
|
||||||
|
insert into order_item (id,
|
||||||
|
order_id,
|
||||||
|
sku_id,
|
||||||
|
sku_name,
|
||||||
|
thumb_img,
|
||||||
|
sku_price,
|
||||||
|
sku_num)
|
||||||
|
values (#{id},
|
||||||
|
#{orderId},
|
||||||
|
#{skuId},
|
||||||
|
#{skuName},
|
||||||
|
#{thumbImg},
|
||||||
|
#{skuPrice},
|
||||||
|
#{skuNum})
|
||||||
|
</insert>
|
||||||
|
</mapper>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||||
|
<mapper namespace="com.atguigu.order.mapper.OrderLogMapper">
|
||||||
|
<!-- 用于select查询公用抽取的列 -->
|
||||||
|
<sql id="columns">
|
||||||
|
id,order_id,operate_user,process_status,note,create_time,update_time,is_deleted
|
||||||
|
</sql>
|
||||||
|
|
||||||
|
<!-- 记录日志 -->
|
||||||
|
<insert id="save">
|
||||||
|
insert into order_log (id,
|
||||||
|
order_id,
|
||||||
|
operate_user,
|
||||||
|
process_status,
|
||||||
|
note)
|
||||||
|
values (#{id},
|
||||||
|
#{orderId},
|
||||||
|
#{operateUser},
|
||||||
|
#{processStatus},
|
||||||
|
#{note})
|
||||||
|
</insert>
|
||||||
|
</mapper>
|
|
@ -31,7 +31,7 @@ public class UserAddressController {
|
||||||
|
|
||||||
@Operation(summary = "获取地址信息")
|
@Operation(summary = "获取地址信息")
|
||||||
@GetMapping("getUserAddress/{id}")
|
@GetMapping("getUserAddress/{id}")
|
||||||
public UserAddress getUserAddress(@PathVariable Long id) {
|
public Result<UserAddress> getUserAddress(@PathVariable Long id) {
|
||||||
return userAddressService.getById(id);
|
return Result.success(userAddressService.getById(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue