From fd45fcbd496bbeaf9ee18edd8f2f858cf9cebaf3 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 24 一月 2025 16:47:38 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ShoppingCartController.java | 151 +++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 131 insertions(+), 20 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ShoppingCartController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ShoppingCartController.java index e6444db..5be0fba 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ShoppingCartController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/ShoppingCartController.java @@ -1,61 +1,172 @@ package com.ruoyi.order.controller; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.BaseTable; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.account.api.feignClient.AppUserClient; +import com.ruoyi.account.api.model.AppUser; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.order.service.ShoppingCartService; +import com.ruoyi.order.util.payment.model.UniPayCallbackResult; import com.ruoyi.order.vo.*; -import com.ruoyi.other.vo.*; +import com.ruoyi.other.api.domain.GoodsShop; +import com.ruoyi.other.api.domain.Shop; +import com.ruoyi.other.api.feignClient.GoodsShopClient; +import com.ruoyi.other.api.feignClient.ShopClient; +import com.ruoyi.other.api.vo.GetGoodsShopByGoodsIds; +import com.ruoyi.system.api.model.LoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import com.ruoyi.order.model.ShoppingCart; import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; @RestController @RequestMapping("/shopping-cart") @Api(tags = "购物车") -public class ShoppingCartController { +public class ShoppingCartController extends BaseController { + + @Resource + private ShoppingCartService shoppingCartService; + + @Resource + private TokenService tokenService; + + @Resource + private AppUserClient appUserClient; + @ResponseBody @GetMapping("/getMyShoppingCart/{type}/{shopId}") - @ApiOperation(value = "获取购物车列表", tags = {"购物车-小程序"}) + @ApiOperation(value = "获取购物车列表", tags = {"商城-购物车-小程序"}) @ApiImplicitParams({ @ApiImplicitParam(name = "type", value = "商品类型(1=服务商品,2=单品商品)", required = true, dataType = "int"), @ApiImplicitParam(name = "shopId", value = "核销门店id", required = true, dataType = "int") }) - public AjaxResult<BaseTable<MyShoppingCartVo>> getMyShoppingCart(@PathVariable("type") Integer type, @PathVariable("shopId") Integer shopId){ - // todo 待完善 pu - return AjaxResult.success(); + public TableDataInfo<MyShoppingCartVo> getMyShoppingCart(@PathVariable("type") Integer type, @PathVariable("shopId") Integer shopId){ + startPage(); + return getDataTable(shoppingCartService.getMyShoppingCart(type, shopId)); + } + + @PostMapping("/addGoods") + @ApiOperation(value = "添加购物车", tags = {"商城-购物车-小程序"}) + public R<Void> addGoods(@RequestBody ShoppingCart shoppingCart) { + shoppingCartService.addGoods(shoppingCart); + return R.ok(); } @ResponseBody @PostMapping("/setGoodsNumber") - @ApiOperation(value = "修改购物车数量", tags = {"购物车-小程序"}) - public AjaxResult setGoodsNumber(@RequestBody SetGoodsNumber setGoodsNumber){ - // todo 待完善 pu - return AjaxResult.success(); + @ApiOperation(value = "修改购物车数量", tags = {"商城-购物车-小程序"}) + public R setGoodsNumber(@RequestBody SetGoodsNumber setGoodsNumber){ + return shoppingCartService.setGoodsNumber(setGoodsNumber); } + + + + @ResponseBody + @DeleteMapping("/delShoppingCart") + @ApiOperation(value = "删除购物车", tags = {"商城-购物车-小程序"}) + public R delShoppingCart(Long id){ + Long userid = tokenService.getLoginUserApplet().getUserid(); + ShoppingCart shoppingCart = shoppingCartService.getById(id); + if(!userid.equals(shoppingCart.getAppUserId())){ + return R.fail("权限不足,不允许此操作"); + } + shoppingCartService.removeById(id); + return R.ok(); + } + + @ResponseBody @PostMapping("/confirmOrder") - @ApiOperation(value = "确定购物车订单", tags = {"购物车-小程序"}) - public AjaxResult<ConfirmOrderVo> confirmOrder(@RequestBody ConfirmOrder confirmOrder){ - // todo 待完善 pu - return AjaxResult.success(); + @ApiOperation(value = "确定购物车订单", tags = {"商城-购物车-小程序"}) + public R<ConfirmOrderVo> confirmOrder(@RequestBody ConfirmOrder confirmOrder){ + ConfirmOrderVo confirmOrderVo = shoppingCartService.confirmOrder(confirmOrder); + return R.ok(confirmOrderVo); } @ResponseBody @PostMapping("/shoppingCartPayment") - @ApiOperation(value = "购物车订单支付", tags = {"购物车-小程序"}) - public AjaxResult shoppingCartPayment(@RequestBody ShoppingCartPayment shoppingCartPayment){ - // todo 待完善 pu - return AjaxResult.success(); + @ApiOperation(value = "购物车订单支付", tags = {"商城-购物车-小程序"}) + public R<String> shoppingCartPayment(@RequestBody ShoppingCartPayment shoppingCartPayment){ + return shoppingCartService.shoppingCartPayment(shoppingCartPayment); + } + + /** + * 订单支付回调通知 + */ + @ResponseBody + @GetMapping("/shoppingCartPaymentCallback") + public void shoppingCartPaymentCallback(UniPayCallbackResult uniPayCallbackResult, HttpServletResponse response){ + R callback = shoppingCartService.shoppingCartPaymentCallback(uniPayCallbackResult); + if(callback.getCode() == 200){ + response.setStatus(200); + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (IOException e) { + throw new RuntimeException(e); + } + out.println("success"); + out.flush(); + out.close(); + } + } + + + /** + * 快递费支付回调 + * @param uniPayCallbackResult + * @param response + */ + @ResponseBody + @GetMapping("/shoppingCartMaterialFlowPaymentCallback") + public void shoppingCartMaterialFlowPaymentCallback(UniPayCallbackResult uniPayCallbackResult, HttpServletResponse response){ + R callback = shoppingCartService.shoppingCartMaterialFlowPaymentCallback(uniPayCallbackResult); + if(callback.getCode() == 200){ + response.setStatus(200); + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (IOException e) { + throw new RuntimeException(e); + } + out.println("success"); + out.flush(); + out.close(); + } + } + + + + + + + @GetMapping("/getGoodsPrice") + public R<Price> getGoodsPrice(Long appUserId, Integer goodsId, Integer shopId){ + AppUser appUser = appUserClient.getAppUserById(appUserId); + Price price = shoppingCartService.getPrice(appUser, goodsId, 1, shopId); + return R.ok(price); } -- Gitblit v1.7.1