Skip to content

Commit 2b83340

Browse files
committed
Merge branch 'master-jdk17' of https://gitee.com/zhijiantianya/yudao-cloud
# Conflicts: # yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/kefu/KeFuMessageController.java # yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/kefu/AppKeFuMessageController.java # yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/kefu/KeFuMessageServiceImpl.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/record/BrokerageRecordBaseVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/user/BrokerageUserBaseVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/user/BrokerageUserClearBrokerageUserReqVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/user/BrokerageUserUpdateBrokerageEnabledReqVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/user/BrokerageUserUpdateBrokerageUserReqVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawBaseVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawRejectReqVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/DeliveryPickUpStoreController.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreBaseVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreCreateReqVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/delivery/vo/pickup/DeliveryPickUpStoreUpdateReqVO.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/TradeOrderController.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreService.java # yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/delivery/DeliveryPickUpStoreServiceImpl.java # yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApi.java # yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/app/vo/PayAppBaseVO.java # yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java # yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClientConfig.java # yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/order/PayOrderUnifiedReqDTO.java # yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/refund/PayRefundUnifiedReqDTO.java # yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferUnifiedReqDTO.java # yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/NonePayClientConfig.java
2 parents 18b63f4 + 50e4743 commit 2b83340

File tree

98 files changed

+1213
-352
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+1213
-352
lines changed

yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/history/ProductBrowseHistoryController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ public CommonResult<PageResult<ProductBrowseHistoryRespVO>> getBrowseHistoryPage
5151
convertSet(pageResult.getList(), ProductBrowseHistoryDO::getSpuId));
5252
return success(BeanUtils.toBean(pageResult, ProductBrowseHistoryRespVO.class,
5353
vo -> Optional.ofNullable(spuMap.get(vo.getSpuId()))
54-
.ifPresent(spu -> vo.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setPrice(spu.getPrice()))));
54+
.ifPresent(spu -> vo.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setPrice(spu.getPrice())
55+
.setSalesCount(spu.getSalesCount()).setStock(spu.getStock()))));
5556
}
5657

5758
}

yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/history/vo/ProductBrowseHistoryRespVO.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package cn.iocoder.yudao.module.product.controller.admin.history.vo;
22

33
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
4-
import com.alibaba.excel.annotation.ExcelProperty;
54
import io.swagger.v3.oas.annotations.media.Schema;
65
import lombok.Data;
76

8-
import java.time.LocalDateTime;
9-
107
import static io.swagger.v3.oas.annotations.media.Schema.RequiredMode.REQUIRED;
118

129
@Schema(description = "管理后台 - 商品浏览记录 Response VO")
@@ -31,4 +28,10 @@ public class ProductBrowseHistoryRespVO {
3128
@Schema(description = "商品单价", example = "100")
3229
private Integer price;
3330

31+
@Schema(description = "商品销量", example = "100")
32+
private Integer salesCount;
33+
34+
@Schema(description = "库存", example = "100")
35+
private Integer stock;
36+
3437
}

yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/history/AppProductBrowseHistoryController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ public CommonResult<PageResult<AppProductBrowseHistoryRespVO>> getBrowseHistoryP
6767
Map<Long, ProductSpuDO> spuMap = convertMap(productSpuService.getSpuList(spuIds), ProductSpuDO::getId);
6868
return success(BeanUtils.toBean(pageResult, AppProductBrowseHistoryRespVO.class,
6969
vo -> Optional.ofNullable(spuMap.get(vo.getSpuId()))
70-
.ifPresent(spu -> vo.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setPrice(spu.getPrice()))));
70+
.ifPresent(spu -> vo.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setPrice(spu.getPrice())
71+
.setSalesCount(spu.getSalesCount()).setStock(spu.getStock()))));
7172
}
7273

7374
}

yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/history/vo/AppProductBrowseHistoryRespVO.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,19 @@ public class AppProductBrowseHistoryRespVO {
1717

1818
// ========== 商品相关字段 ==========
1919

20-
@Schema(description = "商品 SPU 名称", example = "赵六")
20+
@Schema(description = "商品 SPU 名称", requiredMode = REQUIRED, example = "赵六")
2121
private String spuName;
2222

23-
@Schema(description = "商品封面图", example = "https://domain/pic.png")
23+
@Schema(description = "商品封面图", requiredMode = REQUIRED, example = "https://www.iocoder.cn/pic.png")
2424
private String picUrl;
2525

26-
@Schema(description = "商品单价", example = "100")
26+
@Schema(description = "商品单价", requiredMode = REQUIRED, example = "50")
2727
private Integer price;
2828

29+
@Schema(description = "商品销量", requiredMode = REQUIRED, example = "60")
30+
private Integer salesCount;
31+
32+
@Schema(description = "库存", requiredMode = REQUIRED, example = "80")
33+
private Integer stock;
34+
2935
}

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/kefu/KeFuConversationController.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
77
import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.conversation.KeFuConversationRespVO;
88
import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.conversation.KeFuConversationUpdatePinnedReqVO;
9+
import cn.iocoder.yudao.module.promotion.dal.dataobject.kefu.KeFuConversationDO;
910
import cn.iocoder.yudao.module.promotion.service.kefu.KeFuConversationService;
1011
import io.swagger.v3.oas.annotations.Operation;
1112
import io.swagger.v3.oas.annotations.Parameter;
@@ -34,6 +35,25 @@ public class KeFuConversationController {
3435
@Resource
3536
private MemberUserApi memberUserApi;
3637

38+
@GetMapping("/get")
39+
@Operation(summary = "获得客服会话")
40+
@Parameter(name = "id", description = "编号", required = true, example = "1024")
41+
@PreAuthorize("@ss.hasPermission('promotion:kefu-conversation:query')")
42+
public CommonResult<KeFuConversationRespVO> getConversation(@RequestParam("id") Long id) {
43+
KeFuConversationDO conversation = conversationService.getConversation(id);
44+
if (conversation == null) {
45+
return success(null);
46+
}
47+
48+
// 拼接数据
49+
KeFuConversationRespVO result = BeanUtils.toBean(conversation, KeFuConversationRespVO.class);
50+
MemberUserRespDTO memberUser = memberUserApi.getUser(conversation.getUserId()).getCheckedData();
51+
if (memberUser != null) {
52+
result.setUserAvatar(memberUser.getAvatar()).setUserNickname(memberUser.getNickname());
53+
}
54+
return success(result);
55+
}
56+
3757
@PutMapping("/update-conversation-pinned")
3858
@Operation(summary = "置顶/取消置顶客服会话")
3959
@PreAuthorize("@ss.hasPermission('promotion:kefu-conversation:update')")

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/kefu/KeFuMessageController.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,8 @@
22

33
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
44
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5-
import cn.iocoder.yudao.framework.common.pojo.PageResult;
65
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
7-
import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.message.KeFuMessagePageReqVO;
6+
import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.message.KeFuMessageListReqVO;
87
import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.message.KeFuMessageRespVO;
98
import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.message.KeFuMessageSendReqVO;
109
import cn.iocoder.yudao.module.promotion.dal.dataobject.kefu.KeFuMessageDO;
@@ -14,12 +13,13 @@
1413
import io.swagger.v3.oas.annotations.Operation;
1514
import io.swagger.v3.oas.annotations.Parameter;
1615
import io.swagger.v3.oas.annotations.tags.Tag;
16+
import jakarta.annotation.Resource;
17+
import jakarta.validation.Valid;
1718
import org.springframework.security.access.prepost.PreAuthorize;
1819
import org.springframework.validation.annotation.Validated;
1920
import org.springframework.web.bind.annotation.*;
2021

21-
import javax.annotation.Resource;
22-
import javax.validation.Valid;
22+
import java.util.List;
2323
import java.util.Map;
2424

2525
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -56,19 +56,18 @@ public CommonResult<Boolean> updateKeFuMessageReadStatus(@RequestParam("conversa
5656
return success(true);
5757
}
5858

59-
@GetMapping("/page")
60-
@Operation(summary = "获得客服消息分页")
59+
@GetMapping("/list")
60+
@Operation(summary = "获得客服消息列表")
6161
@PreAuthorize("@ss.hasPermission('promotion:kefu-message:query')")
62-
public CommonResult<PageResult<KeFuMessageRespVO>> getKeFuMessagePage(@Valid KeFuMessagePageReqVO pageReqVO) {
62+
public CommonResult<List<KeFuMessageRespVO>> getKeFuMessageList(@Valid KeFuMessageListReqVO pageReqVO) {
6363
// 获得数据
64-
PageResult<KeFuMessageDO> pageResult = messageService.getKeFuMessagePage(pageReqVO);
64+
List<KeFuMessageDO> list = messageService.getKeFuMessageList(pageReqVO);
6565

6666
// 拼接数据
67-
PageResult<KeFuMessageRespVO> result = BeanUtils.toBean(pageResult, KeFuMessageRespVO.class);
68-
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSet(filterList(result.getList(),
67+
List<KeFuMessageRespVO> result = BeanUtils.toBean(list, KeFuMessageRespVO.class);
68+
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSet(filterList(result,
6969
item -> UserTypeEnum.ADMIN.getValue().equals(item.getSenderType())), KeFuMessageRespVO::getSenderId));
70-
result.getList().forEach(item-> findAndThen(userMap, item.getSenderId(),
71-
user -> item.setSenderAvatar(user.getAvatar())));
70+
result.forEach(item -> findAndThen(userMap, item.getSenderId(), user -> item.setSenderAvatar(user.getAvatar())));
7271
return success(result);
7372
}
7473

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.message;
2+
3+
import io.swagger.v3.oas.annotations.media.Schema;
4+
import jakarta.validation.constraints.Max;
5+
import jakarta.validation.constraints.Min;
6+
import jakarta.validation.constraints.NotNull;
7+
import lombok.Data;
8+
import org.springframework.format.annotation.DateTimeFormat;
9+
10+
import java.time.LocalDateTime;
11+
12+
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
13+
14+
@Schema(description = "管理后台 - 客服消息列表 Request VO")
15+
@Data
16+
public class KeFuMessageListReqVO {
17+
18+
private static final Integer LIMIT = 10;
19+
20+
@Schema(description = "会话编号", example = "12580")
21+
@NotNull(message = "会话编号不能为空")
22+
private Long conversationId;
23+
24+
@Schema(description = "发送时间", example = "2024-03-27 12:00:00")
25+
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
26+
private LocalDateTime createTime;
27+
28+
@Schema(description = "每次查询条数,最大值为 100", requiredMode = Schema.RequiredMode.REQUIRED, example = "10")
29+
@NotNull(message = "每次查询条数不能为空")
30+
@Min(value = 1, message = "每次查询条数最小值为 1")
31+
@Max(value = 100, message = "每次查询最大值为 100")
32+
private Integer limit = LIMIT;
33+
34+
}

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/kefu/vo/message/KeFuMessagePageReqVO.java

Lines changed: 0 additions & 16 deletions
This file was deleted.

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/admin/point/vo/activity/PointActivityPageReqVO.java

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,14 @@
55
import lombok.Data;
66
import lombok.EqualsAndHashCode;
77
import lombok.ToString;
8-
import org.springframework.format.annotation.DateTimeFormat;
9-
10-
import java.time.LocalDateTime;
11-
12-
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
138

149
@Schema(description = "管理后台 - 积分商城活动分页 Request VO")
1510
@Data
1611
@EqualsAndHashCode(callSuper = true)
1712
@ToString(callSuper = true)
1813
public class PointActivityPageReqVO extends PageParam {
1914

20-
@Schema(description = "积分商城活动商品", example = "19509")
21-
private Long spuId;
22-
2315
@Schema(description = "活动状态", example = "2")
2416
private Integer status;
2517

26-
@Schema(description = "备注", example = "你说的对")
27-
private String remark;
28-
29-
@Schema(description = "排序")
30-
private Integer sort;
31-
32-
@Schema(description = "创建时间")
33-
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
34-
private LocalDateTime[] createTime;
35-
3618
}

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/kefu/AppKeFuMessageController.java

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,29 @@
22

33
import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
44
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
5-
import cn.iocoder.yudao.framework.common.pojo.PageResult;
65
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
76
import cn.iocoder.yudao.module.promotion.controller.admin.kefu.vo.message.KeFuMessageRespVO;
87
import cn.iocoder.yudao.module.promotion.controller.app.kefu.vo.message.AppKeFuMessagePageReqVO;
98
import cn.iocoder.yudao.module.promotion.controller.app.kefu.vo.message.AppKeFuMessageSendReqVO;
109
import cn.iocoder.yudao.module.promotion.dal.dataobject.kefu.KeFuMessageDO;
1110
import cn.iocoder.yudao.module.promotion.service.kefu.KeFuMessageService;
11+
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
12+
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
1213
import io.swagger.v3.oas.annotations.Operation;
1314
import io.swagger.v3.oas.annotations.Parameter;
1415
import io.swagger.v3.oas.annotations.tags.Tag;
16+
import jakarta.annotation.Resource;
17+
import jakarta.validation.Valid;
1518
import org.springframework.validation.annotation.Validated;
1619
import org.springframework.web.bind.annotation.*;
1720

18-
import javax.annotation.Resource;
19-
import javax.validation.Valid;
21+
import java.util.List;
22+
import java.util.Map;
2023

2124
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
25+
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
26+
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.filterList;
27+
import static cn.iocoder.yudao.framework.common.util.collection.MapUtils.findAndThen;
2228
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
2329

2430
@Tag(name = "用户 APP - 客服消息")
@@ -30,6 +36,9 @@ public class AppKeFuMessageController {
3036
@Resource
3137
private KeFuMessageService kefuMessageService;
3238

39+
@Resource
40+
private AdminUserApi adminUserApi;
41+
3342
@PostMapping("/send")
3443
@Operation(summary = "发送客服消息")
3544
public CommonResult<Long> sendKefuMessage(@Valid @RequestBody AppKeFuMessageSendReqVO sendReqVO) {
@@ -45,11 +54,17 @@ public CommonResult<Boolean> updateKefuMessageReadStatus(@RequestParam("conversa
4554
return success(true);
4655
}
4756

48-
@GetMapping("/page")
49-
@Operation(summary = "获得客服消息分页")
50-
public CommonResult<PageResult<KeFuMessageRespVO>> getKefuMessagePage(@Valid AppKeFuMessagePageReqVO pageReqVO) {
51-
PageResult<KeFuMessageDO> pageResult = kefuMessageService.getKeFuMessagePage(pageReqVO, getLoginUserId());
52-
return success(BeanUtils.toBean(pageResult, KeFuMessageRespVO.class));
57+
@GetMapping("/list")
58+
@Operation(summary = "获得客服消息列表")
59+
public CommonResult<List<KeFuMessageRespVO>> getKefuMessageList(@Valid AppKeFuMessagePageReqVO pageReqVO) {
60+
List<KeFuMessageDO> list = kefuMessageService.getKeFuMessageList(pageReqVO, getLoginUserId());
61+
62+
// 拼接数据
63+
List<KeFuMessageRespVO> result = BeanUtils.toBean(list, KeFuMessageRespVO.class);
64+
Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(convertSet(filterList(result,
65+
item -> UserTypeEnum.ADMIN.getValue().equals(item.getSenderType())), KeFuMessageRespVO::getSenderId));
66+
result.forEach(item -> findAndThen(userMap, item.getSenderId(), user -> item.setSenderAvatar(user.getAvatar())));
67+
return success(result);
5368
}
5469

5570
}

0 commit comments

Comments
 (0)