From 402aba359adb4b10cfa98ad7fcb424eb55641129 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 04 七月 2024 15:54:52 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/DolphinEnglish --- ruoyi-service/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/TGoodsController.java | 115 ++++++++++++++++++++++++++++++--------------------------- 1 files changed, 61 insertions(+), 54 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 2330d59..247be0d 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 @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.GlobalException; @@ -88,16 +87,19 @@ // 类型匹配 todo if (goodQuery.getType() != null && goodQuery.getType().size() > 0) { - StringBuilder temp = new StringBuilder(""); - for (String s : goodQuery.getType()) { - temp.append(s); - temp.append(","); + 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 函数 +// } } - 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)); } @@ -112,18 +114,20 @@ QueryWrapper<TGoods> wrapper = new QueryWrapper<>(); 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()) { - temp.append(s); - temp.append(","); + 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 函数 + } } - 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") + .orderByDesc("sort") + .orderByDesc("createTime"); return R.ok(goodsService.page(new PageInfo<>(goodQuery.getPageNumber(), goodQuery.getPageSize()), wrapper)); } @@ -284,33 +288,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); } /** @@ -328,6 +323,7 @@ } TOrder byId = orderService.getById(id); byId.setState(3); + byId.setCompleteTime(new Date()); return R.ok(orderService.updateById(byId)); } @@ -597,13 +593,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.getRecipient()); + order.setConsigneePhone(recipient.getRecipientPhone()); + order.setConsigneeAddress(recipient.getProvince()+recipient.getCity()+recipient.getAddress()); + orderService.updateById(order); + return R.ok(); } @GetMapping("/updateOrderAddress") @@ -625,9 +627,9 @@ if (!Constants.ONE.equals(order.getState())) { throw new GlobalException("订单已发货,无法修改收货地址!"); } - order.setConsigneeName(recipient.getAddress()); + order.setConsigneeName(recipient.getRecipient()); order.setConsigneePhone(recipient.getRecipientPhone()); - order.setConsigneeAddress(recipient.getAddress()); + order.setConsigneeAddress(recipient.getProvince()+recipient.getCity()+recipient.getAddress()); orderService.updateById(order); return R.ok(); } @@ -717,7 +719,6 @@ */ @GetMapping("/goodDetailParent") @ApiOperation(value = "商品详情", tags = {"家长端-商城"}) - @ApiOperationSupport(order = 24) @ApiImplicitParams({ @ApiImplicitParam(value = "商品id", name = "goodId", dataType = "String", required = true) }) @@ -770,6 +771,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(); // 格式化日期和时间信息 @@ -806,12 +814,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(); -- Gitblit v1.7.1