无关风月
2024-07-03 a8ab035ff7230b4cc4e218f531ac81c1e3f08398
ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java
@@ -88,10 +88,14 @@
        // 类型匹配 todo
        if (goodQuery.getType() != null && goodQuery.getType().size() > 0) {
            StringBuilder temp = new StringBuilder("");
            for (String s : goodQuery.getType()) {
                // 将每个类型 ID 应用于 FIND_IN_SET 函数
                wrapper.apply("FIND_IN_SET('" + s + "', typeIds)").or();
                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排序
@@ -113,10 +117,14 @@
        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)").or();
                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排序
@@ -217,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("修改成功");
    }