From 7b5e3e05c53f6da8b69630f7e9ec2019eddc436a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 04 七月 2024 10:44:53 +0800
Subject: [PATCH] bug修改

---
 ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java |   97 +++++++++++++++++++++++++++---------------------
 1 files changed, 55 insertions(+), 42 deletions(-)

diff --git a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
index 8b6540c..f703b3d 100644
--- a/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
@@ -88,9 +88,12 @@
 
         // 类型匹配 todo
         if (goodQuery.getType() != null && goodQuery.getType().size() > 0) {
-            for (String s : goodQuery.getType()) {
-                // 将每个类型 ID 应用于 FIND_IN_SET 函数
-                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)").or();
+            for (int i = 0; i < goodQuery.getType().size(); i++) {
+//                if (i == 0){
+//                    wrapper.apply("FIND_IN_SET('" + goodQuery.getType().get(i) + "', typeIds)"); // 将每个类型 ID 应用于 FIND_IN_SET 函数
+//                }else{
+                    wrapper.or().apply("FIND_IN_SET('" + goodQuery.getType().get(i) + "', typeIds)"); // 将每个类型 ID 应用于 FIND_IN_SET 函数
+//                }
             }
         }
         wrapper.eq("isDelete", 0);
@@ -112,10 +115,13 @@
         QueryWrapper<TGoods> wrapper = new QueryWrapper<>();
         wrapper = keywords != null && !"".equals(keywords.trim()) ? wrapper.like("name", keywords) : wrapper;
         // 类型匹配 todo
-        if (goodQuery.getType() != null && !goodQuery.getType().isEmpty()) {
-            for (String s : goodQuery.getType()) {
-                // 将每个类型 ID 应用于 FIND_IN_SET 函数
-                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)").or();
+        if (goodQuery.getType() != null && goodQuery.getType().size() > 0) {
+            for (int i = 0; i < goodQuery.getType().size(); i++) {
+                if (i == 0){
+                    wrapper.apply("FIND_IN_SET('" + goodQuery.getType().get(i) + "', typeIds)"); // 将每个类型 ID 应用于 FIND_IN_SET 函数
+                }else{
+                    wrapper.or().apply("FIND_IN_SET('" + goodQuery.getType().get(i) + "', typeIds)"); // 将每个类型 ID 应用于 FIND_IN_SET 函数
+                }
             }
         }
         wrapper.eq("isDelete", 0);
@@ -217,12 +223,22 @@
     @PostMapping("/updateGoods")
     @ApiOperation(value = "修改", tags = {"后台-商品管理"})
     public R updateGoods(@RequestBody TGoods dto) {
-        if (dto.getTotal() != null) {
-            dto.setSurplus(dto.getTotal());
-        } else {
-            dto.setSurplus(0);
+        TGoods byId = goodsService.getById(dto.getId());
+        if (!Objects.equals(byId.getTotal(), dto.getTotal())){
+            // 如果修改了商品总数 那么需要再判断当前商品已被购买了多少
+            List<TOrder> list = orderService.list(new QueryWrapper<TOrder>()
+                    .eq("goodsId", dto.getId()));
+            Integer temp = 0;
+            for (TOrder tOrder : list) {
+                temp += tOrder.getCount();
+            }
+            if (dto.getTotal()<temp){
+                return R.fail("商品总数不能小于当前商品已兑换数量,"+"当前商品已兑换数量为:"+temp);
+            }
         }
         goodsService.updateById(dto);
+        goodsService.updateOne(dto);
+
         return R.ok("修改成功");
     }
 
@@ -273,33 +289,24 @@
 
     @GetMapping("/exchangeRecordParent")
     @ApiOperation(value = "家长端-兑换记录", tags = {"家长端-兑换记录"})
-    public R<Page<TOrder>> exchangeRecordParent(Integer pageNumber, Integer pageSize) {
+    public R<List<ExchangeRecordVO>> exchangeRecordParent() {
         if (tokenService.getLoginUser1() == null) {
             return R.tokenError("登录失效");
         }
-        Page<TOrder> page = orderService.page(new Page<>(pageNumber, pageSize), new QueryWrapper<TOrder>().eq("userId", tokenService.getLoginUser1().getUserid())
-                .orderByDesc("createTime"));
-        List<TOrder> records = page.getRecords();
-        for (TOrder tOrder : records) {
-            TGoods byId = goodsService.getById(tOrder.getGoodsId());
-            tOrder.setName(byId.getName());
-            tOrder.setImg(byId.getCoverImg());
-            StringBuilder stringBuilder = new StringBuilder();
-            if (StringUtils.hasLength(byId.getTypeIds())) {
-                String[] split = byId.getTypeIds().split(",");
-                for (String s : split) {
-                    TGoodsType byId1 = goodsTypeService.getById(s);
-                    if (byId1 != null) {
-                        stringBuilder.append(byId1.getName()).append("|");
-                    }
-                }
-                // 去除最后一个字符
-                stringBuilder.deleteCharAt(stringBuilder.length() - 1);
-                tOrder.setType(stringBuilder.toString());
+        List<ExchangeRecordVO> exchangeRecord = orderService.exchangeRecord(tokenService.getLoginUser1().getUserid());
+        for (ExchangeRecordVO record : exchangeRecord) {
+            TGoods goods = goodsService.getById(record.getGoodsId());
+            List<String> typeList;
+            if (null != goods) {
+                List<TGoodsType> goodsTypes = goodsTypeService.lambdaQuery().in(TGoodsType::getId, Arrays.stream(goods.getTypeIds().split(",")).collect(Collectors.toList()))
+                        .eq(TGoodsType::getIsDelete, 0).list();
+                typeList = goodsTypes.stream().map(TGoodsType::getName).collect(Collectors.toList());
+            } else {
+                typeList = new ArrayList<>();
             }
+            record.setGoodsType(typeList);
         }
-
-        return R.ok(page);
+        return R.ok(exchangeRecord);
     }
 
     /**
@@ -317,6 +324,7 @@
         }
         TOrder byId = orderService.getById(id);
         byId.setState(3);
+        byId.setCompleteTime(new Date());
         return R.ok(orderService.updateById(byId));
     }
 
@@ -586,13 +594,19 @@
         if (tokenService.getLoginUser1() == null) {
             return R.tokenError("登录失效");
         }
-        Recipient userId = recipientService.getById(recipientId);
-        TOrder byId = orderService.getById(orderId);
-        byId.setConsigneeName(userId.getRecipient());
-        byId.setConsigneePhone(userId.getRecipientPhone());
-        byId.setConsigneeAddress(userId.getAddress());
-        orderService.updateById(byId);
-        return R.ok("修改成功");
+        Recipient recipient = recipientService.getById(recipientId);
+        TOrder order = orderService.getById(orderId);
+        if (null == order) {
+            throw new GlobalException("订单不存在!");
+        }
+        if (!Constants.ONE.equals(order.getState())) {
+            throw new GlobalException("订单已发货,无法修改收货地址!");
+        }
+        order.setConsigneeName(recipient.getAddress());
+        order.setConsigneePhone(recipient.getRecipientPhone());
+        order.setConsigneeAddress(recipient.getProvince()+recipient.getCity()+recipient.getAddress());
+        orderService.updateById(order);
+        return R.ok();
     }
 
     @GetMapping("/updateOrderAddress")
@@ -616,7 +630,7 @@
         }
         order.setConsigneeName(recipient.getAddress());
         order.setConsigneePhone(recipient.getRecipientPhone());
-        order.setConsigneeAddress(recipient.getAddress());
+        order.setConsigneeAddress(recipient.getProvince()+recipient.getCity()+recipient.getAddress());
         orderService.updateById(order);
         return R.ok();
     }
@@ -706,7 +720,6 @@
      */
     @GetMapping("/goodDetailParent")
     @ApiOperation(value = "商品详情", tags = {"家长端-商城"})
-    @ApiOperationSupport(order = 24)
     @ApiImplicitParams({
             @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true)
     })

--
Gitblit v1.7.1