feat(新增/修复): 提交订单结算,删除购物车失效,订单mapper路径错误
Signed-off-by: bunny <1319900154@qq.com>
This commit is contained in:
parent
5b9ef88d53
commit
c36d0c3a4b
|
@ -8,6 +8,7 @@ import com.atguigu.feign.product.ProductFeignClient;
|
|||
import com.atguigu.spzx.model.entity.h5.CartInfo;
|
||||
import com.atguigu.spzx.model.entity.product.ProductSku;
|
||||
import com.atguigu.utils.RedisUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -19,6 +20,7 @@ import java.util.Objects;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class CartServiceImpl implements CartService {
|
||||
@Autowired
|
||||
private RedisTemplate<String, Object> redisTemplate;
|
||||
|
@ -186,11 +188,13 @@ public class CartServiceImpl implements CartService {
|
|||
*/
|
||||
@Override
|
||||
public void deleteChecked() {
|
||||
log.info("清空提交过的购物车");
|
||||
|
||||
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))
|
||||
objectList.stream().map(cartInfoJSON -> JSON.parseObject(JSON.toJSONString(cartInfoJSON), CartInfo.class))
|
||||
.filter(cartInfo -> cartInfo.getIsChecked() == 1)
|
||||
.forEach(cartInfo -> redisTemplate.opsForHash().delete(cartKey, String.valueOf(cartInfo.getSkuId())));
|
||||
}
|
||||
|
|
|
@ -5,10 +5,12 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
@SpringBootApplication
|
||||
@EnableFeignClients(basePackages = {"com.atguigu.feign"})
|
||||
@EnableUserTokenFeignInterceptor
|
||||
@ComponentScan("com.atguigu")
|
||||
@Slf4j
|
||||
public class OrderApplication {
|
||||
public static void main(String[] args) {
|
||||
|
|
|
@ -55,7 +55,7 @@ public class OrderInfoController {
|
|||
@PathVariable Integer page,
|
||||
@Parameter(name = "limit", description = "每页记录数", required = true)
|
||||
@PathVariable Integer limit,
|
||||
@Parameter(name = "orderStatus", description = "订单状态", required = false)
|
||||
@Parameter(name = "orderStatus", description = "订单状态")
|
||||
@RequestParam(required = false, defaultValue = "") Integer orderStatus) {
|
||||
PageInfo<OrderInfo> pageInfo = orderInfoService.findUserPage(page, limit, orderStatus);
|
||||
return Result.success(pageInfo);
|
||||
|
|
|
@ -21,7 +21,6 @@ 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.result.ResultCodeEnum;
|
||||
import com.atguigu.utils.EmptyUtil;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
@ -48,9 +47,6 @@ public class OrderInfoServiceImpl implements OrderInfoService {
|
|||
private OrderItemMapper orderItemMapper;
|
||||
@Autowired
|
||||
private OrderLogMapper orderLogMapper;
|
||||
@Autowired
|
||||
private EmptyUtil emptyUtil;
|
||||
|
||||
|
||||
/**
|
||||
* 确认下单
|
||||
|
@ -85,21 +81,23 @@ public class OrderInfoServiceImpl implements OrderInfoService {
|
|||
// 数据校验
|
||||
List<OrderItem> orderItemList = orderInfoDto.getOrderItemList();
|
||||
if (CollectionUtils.isEmpty(orderItemList)) {
|
||||
log.error("com.atguigu.order.service.impl===>submitOrder,orderItemList为空");
|
||||
throw new BunnyException(ResultCodeEnum.DATA_ERROR);
|
||||
}
|
||||
// 检验商品库存是否充足,遍历list集合
|
||||
orderItemList.forEach(orderItem -> {
|
||||
ProductSku productSku = productFeignClient.getBySkuId(orderItem.getSkuId()).getData();
|
||||
if (productSku == null) {
|
||||
log.error("com.atguigu.order.service.impl===>submitOrder,productSku");
|
||||
throw new BunnyException(MessageConstant.DATA_IS_EMPTY);
|
||||
}
|
||||
// 检验每个库存是否充足
|
||||
if (productSku.getStockNum() < orderItem.getSkuNum()) {
|
||||
log.error("com.atguigu.order.service.impl===>submitOrder,库存不足");
|
||||
throw new BunnyException(MessageConstant.STOCK_LESS);
|
||||
}
|
||||
});
|
||||
|
||||
// 添加数据到order_info表
|
||||
// 构建订单数据,保存订单
|
||||
UserInfo userInfo = BaseContext.getUserInfo();
|
||||
OrderInfo orderInfo = new OrderInfo();
|
||||
|
@ -129,7 +127,6 @@ public class OrderInfoServiceImpl implements OrderInfoService {
|
|||
orderInfo.setFeightFee(orderInfoDto.getFeightFee());
|
||||
orderInfo.setPayType(2);
|
||||
orderInfo.setOrderStatus(0);
|
||||
// 添加数据到order_info中
|
||||
orderInfoMapper.save(orderInfo);
|
||||
|
||||
// 保存订单明细
|
||||
|
@ -159,6 +156,7 @@ public class OrderInfoServiceImpl implements OrderInfoService {
|
|||
*/
|
||||
@Override
|
||||
public OrderInfo getOrderInfo(Long orderId) {
|
||||
log.info("com.atguigu.order.service.impl===>getOrderInfo");
|
||||
return orderInfoMapper.getById(orderId);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
</sql>
|
||||
|
||||
<!-- 添加数据到order_info中 -->
|
||||
<insert id="save">
|
||||
<insert id="save" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into order_info (id,
|
||||
user_id,
|
||||
nick_name,
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.atguigu.pay.controller;
|
||||
|
||||
import com.alipay.api.AlipayApiException;
|
||||
import com.atguigu.pay.service.AlipayService;
|
||||
import com.atguigu.spzx.model.vo.result.Result;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
|
@ -18,7 +19,7 @@ public class AlipayController {
|
|||
@Operation(summary = "支付宝下单")
|
||||
@GetMapping("submitAlipay/{orderNo}")
|
||||
@ResponseBody
|
||||
public Result<String> submitAlipay(@Parameter(name = "orderNo", description = "订单号", required = true) @PathVariable(value = "orderNo") String orderNo) {
|
||||
public Result<String> submitAlipay(@Parameter(name = "orderNo", description = "订单号", required = true) @PathVariable(value = "orderNo") String orderNo) throws AlipayApiException {
|
||||
String form = alipayService.submitAlipay(orderNo);
|
||||
return Result.success(form);
|
||||
}
|
||||
|
|
|
@ -37,7 +37,7 @@ public class AlipayServiceImpl implements AlipayService {
|
|||
* @return 支付表单
|
||||
*/
|
||||
@Override
|
||||
public String submitAlipay(String orderNo) throws AlipayApiException {
|
||||
public String submitAlipay(String orderNo) {
|
||||
// 保存支付记录
|
||||
PaymentInfo paymentInfo = paymentInfoService.savePaymentInfo(orderNo);
|
||||
|
||||
|
@ -54,12 +54,19 @@ public class AlipayServiceImpl implements AlipayService {
|
|||
map.put("out_trade_no", paymentInfo.getOrderNo());
|
||||
map.put("product_code", "QUICK_WAP_WAY");
|
||||
// map.put("total_amount",paymentInfo.getAmount());
|
||||
// TODO 修改金额
|
||||
map.put("total_amount", new BigDecimal("0.01"));
|
||||
map.put("subject", paymentInfo.getContent());
|
||||
alipayRequest.setBizContent(JSON.toJSONString(map));
|
||||
|
||||
// 发送请求
|
||||
AlipayTradeWapPayResponse response = alipayClient.pageExecute(alipayRequest);
|
||||
AlipayTradeWapPayResponse response = null;
|
||||
try {
|
||||
response = alipayClient.pageExecute(alipayRequest);
|
||||
} catch (AlipayApiException exception) {
|
||||
throw new BunnyException(exception.getMessage());
|
||||
}
|
||||
|
||||
if (response.isSuccess()) {
|
||||
log.info("调用成功");
|
||||
return response.getBody();
|
||||
|
|
|
@ -3,5 +3,5 @@ alipay:
|
|||
app_id: 2021000122609658
|
||||
app_private_key: MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCXHXwKl51d5htttzJDQg1Oq+w/RAdjdGlTgGlodWxM5Vszd9IgnEffB2HlsGcpgHDteppONr8rWsEy/LmwaMR9C83YfgFPRbSIYATrQw1VynuwEFwvlW5FBT00QUqmL1AXaFGWLAao8xjRjQiArhnQA+o88DXEVnUwHTWFd8aOymesOUjJGWOId6x1MnK8om66Zxc/QFR/vZoQaE8YrATNGMMd1O1CGsnwgJ1bBOcG1Cv1dF903gllGwkLhSE3LK1/SbUg0fUi8mHU0EUyasbknlFqBdvFvJZZJ0NC+Z2sZqXV57DLa8M7bp6+YsDuc0o0EAVnLx7beYlDjwGDMgqxAgMBAAECggEAJo9UfpNviW1VJGrxvW3WXXPLRd2DESK8WZ1TyF7mMrz3x6tUiBO41zVYCrc3q8RljIOTak/X+iUfVXZdn6EsOkhPz2Vfyi2cQoxV1P54IaMYarXSACZeS+hpVLMwbDV4d3CcGPjE/kmB1L7rI4LJfWXyWHhnD+GL56ocZSFKHlcsY2bx99T+HHKTretBRnLQ8q8/iZLkTbxReaMd3o9dGTqS75d3O1nT4u0A8Pupo2dPrlE7NvtOLJMEKixToJPAfJ0b2/H1nxV19/ZW3xvRPJjSIdx32ULuUIyzkAMlH5jwO3D9NMR8fbLcsewgDAif0sPB3USpUT/4AfmJAdcVrQKBgQDf1DnUXQ/JPH/SS78W1EdUzvhGjead1NCG70gZH9YKWS3+l4wkl7l1bqrXGe17jVnPD0vHQZT7V9MjQpa0n9mGU6jKt7ym27BQwF6CLqLE82ITKKqRhUAY7D/TpXPD+DI4STmRqEWDzCgAeX2B9Y7MtOndlExPh8ZxPKtPxDPsNwKBgQCs1cH8h/nGXMv2I0hLPdIKVAQRPDCVBpzuycxn2ezHDcz5rBrYsjOpdNr3SWzcavduGI4A673uWa5znO2KE4e8Y8Uoi75wI7nx4/VapsnS8IuqpIOpkLR2ovEjxGz1BI6QyIg1Xl3QFF65BBVEucgYeLXvt/dMdUA7Z7id/h9cVwKBgDZkZmE69Dkc4JsEGT28/FCZsy/CEAbOzpXb1BN27xa4sTqrLT0/OaxV5mI7RMC/itGMkAet4jxqDT8GUYU3Sy8faWdJ2yhZPrGA7faIyrk9w9mQClMupHLqBmCyVj2LNPkEol7JG4t5s0baPyuztq38UNCt1xWEky61ZZQOw+dlAoGAQdEhD0bEwlpCPZhQBn8jRlWaOun94jJjfreQRJgDiAXkYcu9aXnrHIPogrUOZJ3DXcSyBv2/FU5HlbVT6/nl/cLMqNUWj2O7grb5jyzmvJJnzXLaxK7bWjZQt/ssNt4mYFJNNG2cMgofzDsW0lYhMdh+CCy5Wv9nl3e3IUtNq/8CgYASPcPdaCBLzCSGlTV9HMhQwRhOpWLOzQNKprebQf0fubNFGd6+yfM6DdejHXf6KH4IgV9l8OPe5ro85tmrBkvMlbh7KHbpYJ/V9cdMKd+kbxoJTkRKCnoZhY5QSuEMoC8OB1qhzJeuoqUvmpi0q569IBXrxZguD29ZqwGxoa1KNg==
|
||||
alipay_public_key: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk41ooyX7utKM9B7jNcc4EzmyVU0Qfs18KFVFwyhl7YQMw/PB2YVQreVSvvb1rS/2YVxcjLK/9ehD//79b8aoxhFlEGqA7fGu0C2UR6pl+PhmRLcHeyN+DOG87Fhqb1t4JXmXQc1LXUfelJoh+r5XnMPWDAlY5JJtH3GZIU+AoBt9PuEtfhh03LL6WtnJMwOnqH94T8qHymLDftEGOWme1iAlenB692cUId20BmLJal621EAN+xpmkeJZEpx1wQ2fGhyTo7pm4v8LVLuqzOXkraffITvfbPl5IU0kjjs/QECwItAI0IBbNsDutezw/a0JobijjoF28uo4gtwmncBoQwIDAQAB
|
||||
return_payment_url: http://192.168.136.142/#/pages/money/paySuccess
|
||||
notify_payment_url: http://127.0.0.1:8500/api/order/alipay/callback/notify
|
||||
return_payment_url: http://localhost/#/pages/money/paySuccess
|
||||
notify_payment_url: http://4c428eff.r7.cpolar.top/api/order/alipay/callback/notify
|
|
@ -43,7 +43,7 @@ logging:
|
|||
|
||||
mybatis:
|
||||
type-aliases-package: com.atguigu.spzx.model
|
||||
mapper-locations: classpath:/mapper/*.xml
|
||||
mapper-locations: classpath:/mapper/*/*.xml
|
||||
configuration:
|
||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
map-underscore-to-camel-case: true
|
||||
|
|
|
@ -55,7 +55,7 @@
|
|||
<select id="getById" resultType="com.atguigu.spzx.model.entity.product.ProductSku">
|
||||
select *
|
||||
from product_sku
|
||||
where id = #{id}
|
||||
where id = #{skuId}
|
||||
</select>
|
||||
|
||||
<!-- 同一个商品下面的sku信息列表 -->
|
||||
|
|
Loading…
Reference in New Issue