无关风月
2024-07-03 a8ab035ff7230b4cc4e218f531ac81c1e3f08398
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
@@ -90,10 +90,18 @@
        if (goodQuery.getType() != null && goodQuery.getType().size() > 0) {
            StringBuilder temp = new StringBuilder("");
            for (String s : goodQuery.getType()) {
                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)"); // 将每个类型 ID 应用于 FIND_IN_SET 函数
                temp.append(s);
                temp.append(",");
            }
            String string = temp.toString();
            String substring = string.substring(0, string.length() - 1);
            wrapper.eq("typeIds",substring);
        }
        wrapper.eq("isDelete", 0);
        // sort排序
        wrapper.orderByAsc("CASE WHEN sort IS NULL THEN 1 ELSE 0 END")
                .orderByAsc("sort")
                .orderByDesc("createTime");
        return R.ok(goodsService.page(new PageInfo<>(goodQuery.getPageNumber(), goodQuery.getPageSize()), wrapper));
    }
@@ -109,13 +117,20 @@
        wrapper = keywords != null && !"".equals(keywords.trim()) ? wrapper.like("name", keywords) : wrapper;
        // 类型匹配 todo
        if (goodQuery.getType() != null && !goodQuery.getType().isEmpty()) {
            StringBuilder temp = new StringBuilder("");
            for (String s : goodQuery.getType()) {
                // 将每个类型 ID 应用于 FIND_IN_SET 函数
                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)");
                temp.append(s);
                temp.append(",");
            }
            String string = temp.toString();
            String substring = string.substring(0, string.length() - 1);
            wrapper.eq("typeIds",substring);
        }
        wrapper.eq("isDelete", 0);
        wrapper.orderByAsc("sort");
        // sort排序
        wrapper.orderByAsc("CASE WHEN sort IS NULL THEN 1 ELSE 0 END")
                .orderByAsc("sort")
                .orderByDesc("createTime");
        return R.ok(goodsService.page(new PageInfo<>(goodQuery.getPageNumber(), goodQuery.getPageSize()), wrapper));
    }
@@ -210,12 +225,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("修改成功");
    }
@@ -752,6 +777,13 @@
                .eq(Recipient::getUserId, tokenService.getLoginUserStudy().getUserid())
                .eq(Recipient::getIsDefault, 1)
                .eq(Recipient::getDisabled, 0).one();
        if (null == recipient) {
            recipient = recipientService.lambdaQuery()
                    .eq(Recipient::getUserId, tokenService.getLoginUserStudy().getUserid())
                    .eq(Recipient::getDisabled, 0)
                    .orderByDesc(Recipient::getCreateTime)
                    .last("limit 1").one();
        }
        GoodDetailVO goodDetailVO = goodsService.redeemNow(goodId, recipient);
        LocalDateTime currentDateTime = LocalDateTime.now();
        // 格式化日期和时间信息
@@ -788,12 +820,11 @@
                .eq(Recipient::getIsDefault, 1).one();
        if (recipient == null) {
            // 随便取一条地址数据
            List<Recipient> list = recipientService.lambdaQuery()
            recipient = recipientService.lambdaQuery()
                    .eq(Recipient::getUserId, tokenService.getLoginUser1().getUserid())
                    .list();
            if (!list.isEmpty()) {
                recipient = list.get(0);
            }
                    .orderByDesc(Recipient::getCreateTime)
                    .eq(Recipient::getDisabled, 0).last("limit 1")
                    .one();
        }
        GoodDetailVO goodDetailVO = goodsService.redeemNow(goodId, recipient);
        LocalDateTime currentDateTime = LocalDateTime.now();