Commit 417707175817e01bfe925bc482f3af2894c8dc65
Committed by
Gitee
!560 todo修改
Merge pull request !560 from QingX/feature/mall_product
Showing
34 changed files
with
431 additions
and
284 deletions
sql/mysql/member_poinit_20230809积分四张表结构调整.sql
0 → 100644
| 1 | +/* | ||
| 2 | + Navicat Premium Data Transfer | ||
| 3 | + | ||
| 4 | + Source Server : docer-master-root(3308) | ||
| 5 | + Source Server Type : MySQL | ||
| 6 | + Source Server Version : 80030 | ||
| 7 | + Source Host : 10.211.55.5:3308 | ||
| 8 | + Source Schema : mall | ||
| 9 | + | ||
| 10 | + Target Server Type : MySQL | ||
| 11 | + Target Server Version : 80030 | ||
| 12 | + File Encoding : 65001 | ||
| 13 | + | ||
| 14 | + Date: 09/08/2023 22:41:36 | ||
| 15 | +*/ | ||
| 16 | + | ||
| 17 | +SET NAMES utf8mb4; | ||
| 18 | +SET FOREIGN_KEY_CHECKS = 0; | ||
| 19 | + | ||
| 20 | +-- ---------------------------- | ||
| 21 | +-- Table structure for member_point_config | ||
| 22 | +-- ---------------------------- | ||
| 23 | +DROP TABLE IF EXISTS `member_point_config`; | ||
| 24 | +CREATE TABLE `member_point_config` ( | ||
| 25 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键', | ||
| 26 | + `trade_deduct_enable` bit(1) DEFAULT NULL COMMENT '1 开启积分抵扣\n0 关闭积分抵扣', | ||
| 27 | + `trade_deduct_unit_price` int DEFAULT NULL COMMENT '积分抵扣(单位:分)', | ||
| 28 | + `trade_deduct_max_price` int DEFAULT NULL COMMENT '积分抵扣最大值', | ||
| 29 | + `trade_give_point` int DEFAULT NULL COMMENT '1元赠送多少分', | ||
| 30 | + `creator` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '创建人', | ||
| 31 | + `create_time` datetime DEFAULT NULL COMMENT '创建时间', | ||
| 32 | + `updater` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人', | ||
| 33 | + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '变更时间', | ||
| 34 | + `tenant_id` varchar(255) DEFAULT NULL COMMENT '租户id', | ||
| 35 | + `deleted` bit(1) DEFAULT b'0' COMMENT '是否被删除 0 未删除 1已删除', | ||
| 36 | + PRIMARY KEY (`id`) | ||
| 37 | +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='会员积分配置表'; | ||
| 38 | + | ||
| 39 | +-- ---------------------------- | ||
| 40 | +-- Records of member_point_config | ||
| 41 | +-- ---------------------------- | ||
| 42 | +BEGIN; | ||
| 43 | +INSERT INTO `member_point_config` (`id`, `trade_deduct_enable`, `trade_deduct_unit_price`, `trade_deduct_max_price`, `trade_give_point`, `creator`, `create_time`, `updater`, `update_time`, `tenant_id`, `deleted`) VALUES (5, b'1', 12504, 1234, 1234, '1', '2023-08-09 22:27:42', '1', '2023-08-09 22:32:55', '1', b'0'); | ||
| 44 | +COMMIT; | ||
| 45 | + | ||
| 46 | +-- ---------------------------- | ||
| 47 | +-- Table structure for member_point_record | ||
| 48 | +-- ---------------------------- | ||
| 49 | +DROP TABLE IF EXISTS `member_point_record`; | ||
| 50 | +CREATE TABLE `member_point_record` ( | ||
| 51 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键', | ||
| 52 | + `biz_id` varchar(255) DEFAULT NULL COMMENT '业务编码', | ||
| 53 | + `biz_type` varchar(255) DEFAULT NULL COMMENT '业务类型', | ||
| 54 | + `title` varchar(255) DEFAULT NULL COMMENT '积分标题', | ||
| 55 | + `description` varchar(5000) DEFAULT NULL COMMENT '积分描述', | ||
| 56 | + `point` int DEFAULT NULL COMMENT '积分', | ||
| 57 | + `total_point` int NOT NULL COMMENT '变动后的积分', | ||
| 58 | + `status` int DEFAULT NULL COMMENT '状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款)\n', | ||
| 59 | + `user_id` bigint DEFAULT NULL COMMENT '用户id', | ||
| 60 | + `freezing_time` datetime DEFAULT NULL COMMENT '冻结时间', | ||
| 61 | + `thawing_time` datetime DEFAULT NULL COMMENT '解冻时间', | ||
| 62 | + `create_time` datetime DEFAULT NULL COMMENT '发生时间', | ||
| 63 | + `tenant_id` varchar(255) DEFAULT NULL COMMENT '租户', | ||
| 64 | + `deleted` int DEFAULT '0' COMMENT '是否删除', | ||
| 65 | + `creator` varchar(255) DEFAULT NULL COMMENT '创建用户', | ||
| 66 | + `updater` varchar(255) DEFAULT NULL COMMENT '更新用户', | ||
| 67 | + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', | ||
| 68 | + PRIMARY KEY (`id`), | ||
| 69 | + KEY `index_userId` (`user_id`), | ||
| 70 | + KEY `index_title` (`title`) USING BTREE | ||
| 71 | +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户积分记录'; | ||
| 72 | + | ||
| 73 | +-- ---------------------------- | ||
| 74 | +-- Records of member_point_record | ||
| 75 | +-- ---------------------------- | ||
| 76 | +BEGIN; | ||
| 77 | +INSERT INTO `member_point_record` (`id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `status`, `user_id`, `freezing_time`, `thawing_time`, `create_time`, `tenant_id`, `deleted`, `creator`, `updater`, `update_time`) VALUES (1, '1', '1', '12', NULL, 212, 12, 1, 247, '2023-06-13 00:00:00', '2023-06-20 00:00:00', '2023-06-10 12:38:48', '1', 1, '1', '1', '2023-08-09 12:30:36'); | ||
| 78 | +INSERT INTO `member_point_record` (`id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `status`, `user_id`, `freezing_time`, `thawing_time`, `create_time`, `tenant_id`, `deleted`, `creator`, `updater`, `update_time`) VALUES (2, '12', '1', '这是一个测试', '我是描述', 1212, 12, 2, 247, '2023-06-28 00:00:00', NULL, '2023-06-10 12:42:48', '1', 0, '1', '1', '2023-08-09 12:31:45'); | ||
| 79 | +INSERT INTO `member_point_record` (`id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `status`, `user_id`, `freezing_time`, `thawing_time`, `create_time`, `tenant_id`, `deleted`, `creator`, `updater`, `update_time`) VALUES (3, '12', '1', '12', '我是一个描述', 12, 12, 1, 248, '2023-06-27 00:00:00', '2023-06-23 00:00:00', '2023-06-10 20:06:48', '1', 0, '1', '1', '2023-08-09 12:31:41'); | ||
| 80 | +INSERT INTO `member_point_record` (`id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `status`, `user_id`, `freezing_time`, `thawing_time`, `create_time`, `tenant_id`, `deleted`, `creator`, `updater`, `update_time`) VALUES (4, '12', '1', '描述2', '我是一个描述', -12, 12, 1, 248, '2023-08-09 11:21:00', '2023-09-13 00:00:00', '2023-06-10 20:06:48', '1', 0, '1', '1', '2023-08-09 12:57:28'); | ||
| 81 | +COMMIT; | ||
| 82 | + | ||
| 83 | +-- ---------------------------- | ||
| 84 | +-- Table structure for member_sign_in_config | ||
| 85 | +-- ---------------------------- | ||
| 86 | +DROP TABLE IF EXISTS `member_sign_in_config`; | ||
| 87 | +CREATE TABLE `member_sign_in_config` ( | ||
| 88 | + `id` int NOT NULL AUTO_INCREMENT COMMENT '规则自增主键', | ||
| 89 | + `day` int DEFAULT NULL COMMENT '签到第x天', | ||
| 90 | + `point` int DEFAULT NULL COMMENT '签到天数对应分数', | ||
| 91 | + `create_time` datetime DEFAULT NULL COMMENT '创建时间', | ||
| 92 | + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '变更时间', | ||
| 93 | + `tenant_id` varchar(255) DEFAULT NULL COMMENT '租户id', | ||
| 94 | + `is_enable` tinyint(1) DEFAULT NULL COMMENT '是否启用 1启用,0未启动', | ||
| 95 | + `deleted` int DEFAULT '0' COMMENT '是否删除', | ||
| 96 | + `creator` varchar(255) DEFAULT NULL COMMENT '创建人', | ||
| 97 | + `updater` varchar(255) DEFAULT NULL COMMENT '变更人', | ||
| 98 | + PRIMARY KEY (`id`) | ||
| 99 | +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='积分签到规则'; | ||
| 100 | + | ||
| 101 | +-- ---------------------------- | ||
| 102 | +-- Records of member_sign_in_config | ||
| 103 | +-- ---------------------------- | ||
| 104 | +BEGIN; | ||
| 105 | +INSERT INTO `member_sign_in_config` (`id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `is_enable`, `deleted`, `creator`, `updater`) VALUES (1, 4, 10, '2023-06-10 11:34:43', '2023-08-08 15:10:03', '1', 1, 0, '1', '1'); | ||
| 106 | +INSERT INTO `member_sign_in_config` (`id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `is_enable`, `deleted`, `creator`, `updater`) VALUES (2, 2, 20, '2023-06-10 11:34:59', '2023-08-08 13:39:54', '1', 1, 1, '1', '1'); | ||
| 107 | +INSERT INTO `member_sign_in_config` (`id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `is_enable`, `deleted`, `creator`, `updater`) VALUES (3, 7, 1001, '2023-06-10 17:47:45', '2023-08-08 15:09:55', '1', 0, 0, '1', '1'); | ||
| 108 | +INSERT INTO `member_sign_in_config` (`id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `is_enable`, `deleted`, `creator`, `updater`) VALUES (4, 6, 12121, '2023-06-10 17:47:55', '2023-08-08 15:09:47', '1', 0, 0, '1', '1'); | ||
| 109 | +INSERT INTO `member_sign_in_config` (`id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `is_enable`, `deleted`, `creator`, `updater`) VALUES (5, 2, 12, '2023-06-10 19:54:52', '2023-08-08 15:10:03', '1', 1, 0, '1', '1'); | ||
| 110 | +COMMIT; | ||
| 111 | + | ||
| 112 | +-- ---------------------------- | ||
| 113 | +-- Table structure for member_sign_in_record | ||
| 114 | +-- ---------------------------- | ||
| 115 | +DROP TABLE IF EXISTS `member_sign_in_record`; | ||
| 116 | +CREATE TABLE `member_sign_in_record` ( | ||
| 117 | + `id` bigint NOT NULL AUTO_INCREMENT COMMENT '签到自增id', | ||
| 118 | + `user_id` bigint DEFAULT NULL COMMENT '签到用户', | ||
| 119 | + `day` int DEFAULT NULL COMMENT '第几天签到', | ||
| 120 | + `point` int DEFAULT NULL COMMENT '签到的分数', | ||
| 121 | + `create_time` datetime DEFAULT NULL COMMENT '签到时间', | ||
| 122 | + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '变更时间', | ||
| 123 | + `tenant_id` varchar(255) DEFAULT NULL COMMENT '租户id', | ||
| 124 | + `deleted` int DEFAULT '0' COMMENT '是否删除', | ||
| 125 | + `creator` varchar(255) DEFAULT NULL COMMENT '创建人', | ||
| 126 | + `updater` varchar(255) DEFAULT NULL COMMENT '更新人', | ||
| 127 | + PRIMARY KEY (`id`) | ||
| 128 | +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='用户签到积分'; | ||
| 129 | + | ||
| 130 | +-- ---------------------------- | ||
| 131 | +-- Records of member_sign_in_record | ||
| 132 | +-- ---------------------------- | ||
| 133 | +BEGIN; | ||
| 134 | +INSERT INTO `member_sign_in_record` (`id`, `user_id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `deleted`, `creator`, `updater`) VALUES (1, 247, 1, 123, '2023-06-10 12:58:18', '2023-08-09 08:51:31', '1', 1, '1', '1'); | ||
| 135 | +INSERT INTO `member_sign_in_record` (`id`, `user_id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `deleted`, `creator`, `updater`) VALUES (2, 247, 12, 12, '2023-06-10 19:56:39', '2023-08-09 08:51:32', '1', 1, '1', '1'); | ||
| 136 | +INSERT INTO `member_sign_in_record` (`id`, `user_id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `deleted`, `creator`, `updater`) VALUES (3, 1, 12, 1212, '2023-06-10 20:01:17', '2023-08-09 08:05:07', '1', 1, '1', '1'); | ||
| 137 | +INSERT INTO `member_sign_in_record` (`id`, `user_id`, `day`, `point`, `create_time`, `update_time`, `tenant_id`, `deleted`, `creator`, `updater`) VALUES (4, 247, 12, 1212, '2023-06-10 20:01:27', '2023-08-09 08:51:34', '1', 0, '1', '1'); | ||
| 138 | +COMMIT; | ||
| 139 | + | ||
| 140 | +SET FOREIGN_KEY_CHECKS = 1; |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/MemberPointRecordController.java
| @@ -2,22 +2,28 @@ package cn.iocoder.yudao.module.member.controller.admin.point; | @@ -2,22 +2,28 @@ package cn.iocoder.yudao.module.member.controller.admin.point; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; | ||
| 6 | +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; | ||
| 5 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; | 7 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; |
| 6 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO; | 8 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO; |
| 7 | -import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordUpdateReqVO; | ||
| 8 | import cn.iocoder.yudao.module.member.convert.point.MemberPointRecordConvert; | 9 | import cn.iocoder.yudao.module.member.convert.point.MemberPointRecordConvert; |
| 9 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; | 10 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; |
| 11 | +import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; | ||
| 10 | import cn.iocoder.yudao.module.member.service.point.MemberPointRecordService; | 12 | import cn.iocoder.yudao.module.member.service.point.MemberPointRecordService; |
| 11 | import io.swagger.v3.oas.annotations.Operation; | 13 | import io.swagger.v3.oas.annotations.Operation; |
| 12 | -import io.swagger.v3.oas.annotations.Parameter; | ||
| 13 | import io.swagger.v3.oas.annotations.tags.Tag; | 14 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 15 | +import org.apache.commons.lang3.StringUtils; | ||
| 14 | import org.springframework.security.access.prepost.PreAuthorize; | 16 | import org.springframework.security.access.prepost.PreAuthorize; |
| 17 | +import org.springframework.util.CollectionUtils; | ||
| 15 | import org.springframework.validation.annotation.Validated; | 18 | import org.springframework.validation.annotation.Validated; |
| 16 | import org.springframework.web.bind.annotation.*; | 19 | import org.springframework.web.bind.annotation.*; |
| 17 | 20 | ||
| 18 | import javax.annotation.Resource; | 21 | import javax.annotation.Resource; |
| 19 | import javax.validation.Valid; | 22 | import javax.validation.Valid; |
| 20 | 23 | ||
| 24 | +import java.util.List; | ||
| 25 | +import java.util.stream.Collectors; | ||
| 26 | + | ||
| 21 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 27 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 22 | 28 | ||
| 23 | @Tag(name = "管理后台 - 用户积分记录") | 29 | @Tag(name = "管理后台 - 用户积分记录") |
| @@ -28,31 +34,34 @@ public class MemberPointRecordController { | @@ -28,31 +34,34 @@ public class MemberPointRecordController { | ||
| 28 | 34 | ||
| 29 | @Resource | 35 | @Resource |
| 30 | private MemberPointRecordService recordService; | 36 | private MemberPointRecordService recordService; |
| 31 | - | ||
| 32 | - // TODO @xiaqing:积分应该没有更新操作呀?可以删除哈; | ||
| 33 | - @PutMapping("/update") | ||
| 34 | - @Operation(summary = "更新用户积分记录") | ||
| 35 | - @PreAuthorize("@ss.hasPermission('point:record:update')") | ||
| 36 | - public CommonResult<Boolean> updateRecord(@Valid @RequestBody MemberPointRecordUpdateReqVO updateReqVO) { | ||
| 37 | - recordService.updateRecord(updateReqVO); | ||
| 38 | - return success(true); | ||
| 39 | - } | ||
| 40 | - | ||
| 41 | - @GetMapping("/get") | ||
| 42 | - @Operation(summary = "获得用户积分记录") | ||
| 43 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 44 | - @PreAuthorize("@ss.hasPermission('point:record:query')") | ||
| 45 | - public CommonResult<MemberPointRecordRespVO> getRecord(@RequestParam("id") Long id) { | ||
| 46 | - MemberPointRecordDO record = recordService.getRecord(id); | ||
| 47 | - return success(MemberPointRecordConvert.INSTANCE.convert(record)); | ||
| 48 | - } | 37 | + @Resource |
| 38 | + MemberUserApi memberUserApi; | ||
| 49 | 39 | ||
| 50 | @GetMapping("/page") | 40 | @GetMapping("/page") |
| 51 | @Operation(summary = "获得用户积分记录分页") | 41 | @Operation(summary = "获得用户积分记录分页") |
| 52 | @PreAuthorize("@ss.hasPermission('point:record:query')") | 42 | @PreAuthorize("@ss.hasPermission('point:record:query')") |
| 53 | - public CommonResult<PageResult<MemberPointRecordRespVO>> getRecordPage(@Valid MemberPointRecordPageReqVO pageVO) { | ||
| 54 | - PageResult<MemberPointRecordDO> pageResult = recordService.getRecordPage(pageVO); | ||
| 55 | - return success(MemberPointRecordConvert.INSTANCE.convertPage(pageResult)); | 43 | + public CommonResult <PageResult <MemberPointRecordRespVO>> getRecordPage(@Valid MemberPointRecordPageReqVO pageVO) { |
| 44 | + //根据用户昵称查询出用户ids | ||
| 45 | + List <Long> userIds = null; | ||
| 46 | + if (StringUtils.isNotBlank(pageVO.getNickName())) { | ||
| 47 | + List <MemberUserRespDTO> users = memberUserApi.getUserListByNickname(pageVO.getNickName()); | ||
| 48 | + //如果查询用户结果为空直接返回无需继续查询 | ||
| 49 | + if (CollectionUtils.isEmpty(users)) { | ||
| 50 | + return success(new PageResult <>()); | ||
| 51 | + } | ||
| 52 | + userIds=users.stream().map(user->user.getId()).collect(Collectors.toList()); | ||
| 53 | + pageVO.setUserIds(userIds); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + PageResult <MemberPointRecordDO> pageResult = recordService.getRecordPage(pageVO); | ||
| 57 | + //根据查询的userId转换成nickName | ||
| 58 | + List <MemberPointRecordDO> result = pageResult.getList(); | ||
| 59 | + List <MemberUserRespDTO> users = null; | ||
| 60 | + if (!CollectionUtils.isEmpty(result)) { | ||
| 61 | + List <Long> ids = result.stream().map(user -> user.getUserId()).collect(Collectors.toList()); | ||
| 62 | + users = memberUserApi.getUsers(ids); | ||
| 63 | + } | ||
| 64 | + return success(MemberPointRecordConvert.INSTANCE.convertPage(pageResult,users)); | ||
| 56 | } | 65 | } |
| 57 | 66 | ||
| 58 | } | 67 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/config/MemberPointConfigBaseVO.java
| @@ -18,12 +18,12 @@ public class MemberPointConfigBaseVO { | @@ -18,12 +18,12 @@ public class MemberPointConfigBaseVO { | ||
| 18 | private Boolean tradeDeductEnable; | 18 | private Boolean tradeDeductEnable; |
| 19 | 19 | ||
| 20 | @Schema(description = "积分抵扣,单位:分", example = "13506") | 20 | @Schema(description = "积分抵扣,单位:分", example = "13506") |
| 21 | - private BigDecimal tradeDeductUnitPrice; | 21 | + private Integer tradeDeductUnitPrice; |
| 22 | 22 | ||
| 23 | @Schema(description = "积分抵扣最大值", example = "32428") | 23 | @Schema(description = "积分抵扣最大值", example = "32428") |
| 24 | - private Long tradeDeductMaxPrice; | 24 | + private Integer tradeDeductMaxPrice; |
| 25 | 25 | ||
| 26 | @Schema(description = "1 元赠送多少分") | 26 | @Schema(description = "1 元赠送多少分") |
| 27 | - private Long tradeGivePoint; | 27 | + private Integer tradeGivePoint; |
| 28 | 28 | ||
| 29 | } | 29 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordBaseVO.java
| @@ -24,10 +24,6 @@ public class MemberPointRecordBaseVO { | @@ -24,10 +24,6 @@ public class MemberPointRecordBaseVO { | ||
| 24 | @NotNull(message = "业务类型不能为空") | 24 | @NotNull(message = "业务类型不能为空") |
| 25 | private String bizType; | 25 | private String bizType; |
| 26 | 26 | ||
| 27 | - @Schema(description = "1增加 0扣减", example = "1") | ||
| 28 | - @NotNull(message = "操作类型不能为空") | ||
| 29 | - private String type; | ||
| 30 | - | ||
| 31 | @Schema(description = "积分标题") | 27 | @Schema(description = "积分标题") |
| 32 | @NotNull(message = "积分标题不能为空") | 28 | @NotNull(message = "积分标题不能为空") |
| 33 | private String title; | 29 | private String title; |
| @@ -47,10 +43,6 @@ public class MemberPointRecordBaseVO { | @@ -47,10 +43,6 @@ public class MemberPointRecordBaseVO { | ||
| 47 | @NotNull(message = "积分状态不能为空") | 43 | @NotNull(message = "积分状态不能为空") |
| 48 | private Integer status; | 44 | private Integer status; |
| 49 | 45 | ||
| 50 | - @Schema(description = "用户id", example = "31169") | ||
| 51 | - @NotNull(message = "用户ID不能为空") | ||
| 52 | - private Integer userId; | ||
| 53 | - | ||
| 54 | @Schema(description = "冻结时间") | 46 | @Schema(description = "冻结时间") |
| 55 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | 47 | @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) |
| 56 | @NotNull(message = "冻结时间不能为空") | 48 | @NotNull(message = "冻结时间不能为空") |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordCreateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod; | ||
| 2 | - | ||
| 3 | -import lombok.*; | ||
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | - | ||
| 6 | -@Schema(description = "管理后台 - 用户积分记录创建 Request VO") | ||
| 7 | -@Data | ||
| 8 | -@EqualsAndHashCode(callSuper = true) | ||
| 9 | -@ToString(callSuper = true) | ||
| 10 | -public class MemberPointRecordCreateReqVO extends MemberPointRecordBaseVO { | ||
| 11 | - | ||
| 12 | -} |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordExportReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod; | ||
| 2 | - | ||
| 3 | -import lombok.*; | ||
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | - | ||
| 6 | -@Schema(description = "管理后台 - 用户积分记录 Excel 导出 Request VO,参数和 PointRecordPageReqVO 是一致的") | ||
| 7 | -@Data | ||
| 8 | -public class MemberPointRecordExportReqVO { | ||
| 9 | - | ||
| 10 | - @Schema(description = "业务编码", example = "22706") | ||
| 11 | - private String bizId; | ||
| 12 | - | ||
| 13 | - @Schema(description = "业务类型", example = "1") | ||
| 14 | - private String bizType; | ||
| 15 | - | ||
| 16 | - @Schema(description = "1增加 0扣减", example = "1") | ||
| 17 | - private String type; | ||
| 18 | - | ||
| 19 | - @Schema(description = "积分标题") | ||
| 20 | - private String title; | ||
| 21 | - | ||
| 22 | - @Schema(description = "状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) ", example = "1") | ||
| 23 | - private Integer status; | ||
| 24 | - | ||
| 25 | -} |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordPageReqVO.java
| @@ -4,25 +4,28 @@ import lombok.*; | @@ -4,25 +4,28 @@ import lombok.*; | ||
| 4 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | import cn.iocoder.yudao.framework.common.pojo.PageParam; | 5 | import cn.iocoder.yudao.framework.common.pojo.PageParam; |
| 6 | 6 | ||
| 7 | +import java.util.List; | ||
| 8 | + | ||
| 7 | @Schema(description = "管理后台 - 用户积分记录分页 Request VO") | 9 | @Schema(description = "管理后台 - 用户积分记录分页 Request VO") |
| 8 | @Data | 10 | @Data |
| 9 | @EqualsAndHashCode(callSuper = true) | 11 | @EqualsAndHashCode(callSuper = true) |
| 10 | @ToString(callSuper = true) | 12 | @ToString(callSuper = true) |
| 11 | public class MemberPointRecordPageReqVO extends PageParam { | 13 | public class MemberPointRecordPageReqVO extends PageParam { |
| 12 | 14 | ||
| 13 | - @Schema(description = "业务编码", example = "22706") | ||
| 14 | - private String bizId; | 15 | + @Schema(description = "用户昵称", example = "张三") |
| 16 | + private String nickName; | ||
| 17 | + | ||
| 18 | + //用户id集合,用户将nickName查询转换成user_ids查询 | ||
| 19 | + private List<Long> userIds; | ||
| 15 | 20 | ||
| 16 | @Schema(description = "业务类型", example = "1") | 21 | @Schema(description = "业务类型", example = "1") |
| 17 | private String bizType; | 22 | private String bizType; |
| 18 | 23 | ||
| 19 | - @Schema(description = "1增加 0扣减", example = "1") | ||
| 20 | - private String type; | ||
| 21 | - | ||
| 22 | @Schema(description = "积分标题") | 24 | @Schema(description = "积分标题") |
| 23 | private String title; | 25 | private String title; |
| 24 | 26 | ||
| 25 | @Schema(description = "状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) ", example = "1") | 27 | @Schema(description = "状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) ", example = "1") |
| 26 | private Integer status; | 28 | private Integer status; |
| 27 | 29 | ||
| 30 | + | ||
| 28 | } | 31 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordRespVO.java
| @@ -16,4 +16,7 @@ public class MemberPointRecordRespVO extends MemberPointRecordBaseVO { | @@ -16,4 +16,7 @@ public class MemberPointRecordRespVO extends MemberPointRecordBaseVO { | ||
| 16 | @Schema(description = "发生时间") | 16 | @Schema(description = "发生时间") |
| 17 | private LocalDateTime createTime; | 17 | private LocalDateTime createTime; |
| 18 | 18 | ||
| 19 | + //昵称 | ||
| 20 | + private String nickName; | ||
| 21 | + | ||
| 19 | } | 22 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/point/vo/recrod/MemberPointRecordUpdateReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod; | ||
| 2 | - | ||
| 3 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 4 | -import lombok.*; | ||
| 5 | - | ||
| 6 | -import javax.validation.constraints.*; | ||
| 7 | - | ||
| 8 | -@Schema(description = "管理后台 - 用户积分记录更新 Request VO") | ||
| 9 | -@Data | ||
| 10 | -@EqualsAndHashCode(callSuper = true) | ||
| 11 | -@ToString(callSuper = true) | ||
| 12 | -public class MemberPointRecordUpdateReqVO extends MemberPointRecordBaseVO { | ||
| 13 | - | ||
| 14 | - @Schema(description = "自增主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "31457") | ||
| 15 | - @NotNull(message = "自增主键不能为空") | ||
| 16 | - private Long id; | ||
| 17 | - | ||
| 18 | -} |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInConfigController.java
| @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.member.controller.admin.signin; | @@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.member.controller.admin.signin; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; | 5 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; |
| 6 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | ||
| 7 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigRespVO; | 6 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigRespVO; |
| 8 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; | 7 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; |
| 9 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; | 8 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; |
| @@ -19,6 +18,8 @@ import org.springframework.web.bind.annotation.*; | @@ -19,6 +18,8 @@ import org.springframework.web.bind.annotation.*; | ||
| 19 | import javax.annotation.Resource; | 18 | import javax.annotation.Resource; |
| 20 | import javax.validation.Valid; | 19 | import javax.validation.Valid; |
| 21 | 20 | ||
| 21 | +import java.util.List; | ||
| 22 | + | ||
| 22 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 23 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 23 | 24 | ||
| 24 | @Tag(name = "管理后台 - 积分签到规则") | 25 | @Tag(name = "管理后台 - 积分签到规则") |
| @@ -63,12 +64,12 @@ public class MemberSignInConfigController { | @@ -63,12 +64,12 @@ public class MemberSignInConfigController { | ||
| 63 | return success(MemberSignInConfigConvert.INSTANCE.convert(signInConfig)); | 64 | return success(MemberSignInConfigConvert.INSTANCE.convert(signInConfig)); |
| 64 | } | 65 | } |
| 65 | 66 | ||
| 66 | - @GetMapping("/page") | 67 | + @GetMapping("/list") |
| 67 | @Operation(summary = "获得积分签到规则分页") | 68 | @Operation(summary = "获得积分签到规则分页") |
| 68 | @PreAuthorize("@ss.hasPermission('point:sign-in-config:query')") | 69 | @PreAuthorize("@ss.hasPermission('point:sign-in-config:query')") |
| 69 | - public CommonResult<PageResult<MemberSignInConfigRespVO>> getSignInConfigPage(@Valid MemberSignInConfigPageReqVO pageVO) { | ||
| 70 | - PageResult<MemberSignInConfigDO> pageResult = memberSignInConfigService.getSignInConfigPage(pageVO); | ||
| 71 | - return success(MemberSignInConfigConvert.INSTANCE.convertPage(pageResult)); | 70 | + public CommonResult<List<MemberSignInConfigRespVO>> getSignInConfigPage() { |
| 71 | + List<MemberSignInConfigDO> pageResult = memberSignInConfigService.getSignInConfigList(); | ||
| 72 | + return success(MemberSignInConfigConvert.INSTANCE.convertList(pageResult)); | ||
| 72 | } | 73 | } |
| 73 | 74 | ||
| 74 | } | 75 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/MemberSignInRecordController.java
| @@ -2,21 +2,30 @@ package cn.iocoder.yudao.module.member.controller.admin.signin; | @@ -2,21 +2,30 @@ package cn.iocoder.yudao.module.member.controller.admin.signin; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.CommonResult; |
| 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 4 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 5 | +import cn.iocoder.yudao.module.member.api.user.MemberUserApi; | ||
| 6 | +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; | ||
| 5 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; | 7 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; |
| 6 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordRespVO; | 8 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordRespVO; |
| 7 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInRecordConvert; | 9 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInRecordConvert; |
| 8 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; | 10 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; |
| 9 | import cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordService; | 11 | import cn.iocoder.yudao.module.member.service.signin.MemberSignInRecordService; |
| 12 | +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | ||
| 13 | +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | ||
| 10 | import io.swagger.v3.oas.annotations.Operation; | 14 | import io.swagger.v3.oas.annotations.Operation; |
| 11 | import io.swagger.v3.oas.annotations.Parameter; | 15 | import io.swagger.v3.oas.annotations.Parameter; |
| 12 | import io.swagger.v3.oas.annotations.tags.Tag; | 16 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 17 | +import org.apache.commons.lang3.StringUtils; | ||
| 13 | import org.springframework.security.access.prepost.PreAuthorize; | 18 | import org.springframework.security.access.prepost.PreAuthorize; |
| 19 | +import org.springframework.util.CollectionUtils; | ||
| 14 | import org.springframework.validation.annotation.Validated; | 20 | import org.springframework.validation.annotation.Validated; |
| 15 | import org.springframework.web.bind.annotation.*; | 21 | import org.springframework.web.bind.annotation.*; |
| 16 | 22 | ||
| 17 | import javax.annotation.Resource; | 23 | import javax.annotation.Resource; |
| 18 | import javax.validation.Valid; | 24 | import javax.validation.Valid; |
| 19 | 25 | ||
| 26 | +import java.util.List; | ||
| 27 | +import java.util.stream.Collectors; | ||
| 28 | + | ||
| 20 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | 29 | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; |
| 21 | 30 | ||
| 22 | @Tag(name = "管理后台 - 用户签到积分") | 31 | @Tag(name = "管理后台 - 用户签到积分") |
| @@ -27,31 +36,33 @@ public class MemberSignInRecordController { | @@ -27,31 +36,33 @@ public class MemberSignInRecordController { | ||
| 27 | 36 | ||
| 28 | @Resource | 37 | @Resource |
| 29 | private MemberSignInRecordService memberSignInRecordService; | 38 | private MemberSignInRecordService memberSignInRecordService; |
| 39 | + @Resource | ||
| 40 | + MemberUserApi memberUserApi; | ||
| 30 | 41 | ||
| 31 | - // TODO @xiaqing:签到是不是不用删除? | ||
| 32 | - @DeleteMapping("/delete") | ||
| 33 | - @Operation(summary = "删除用户签到积分") | ||
| 34 | - @Parameter(name = "id", description = "编号", required = true) | ||
| 35 | - @PreAuthorize("@ss.hasPermission('point:sign-in-record:delete')") | ||
| 36 | - public CommonResult<Boolean> deleteSignInRecord(@RequestParam("id") Long id) { | ||
| 37 | - memberSignInRecordService.deleteSignInRecord(id); | ||
| 38 | - return success(true); | ||
| 39 | - } | ||
| 40 | - | ||
| 41 | - @GetMapping("/get") | ||
| 42 | - @Operation(summary = "获得用户签到积分") | ||
| 43 | - @Parameter(name = "id", description = "编号", required = true, example = "1024") | ||
| 44 | - @PreAuthorize("@ss.hasPermission('point:sign-in-record:query')") | ||
| 45 | - public CommonResult<MemberSignInRecordRespVO> getSignInRecord(@RequestParam("id") Long id) { | ||
| 46 | - MemberSignInRecordDO signInRecord = memberSignInRecordService.getSignInRecord(id); | ||
| 47 | - return success(MemberSignInRecordConvert.INSTANCE.convert(signInRecord)); | ||
| 48 | - } | ||
| 49 | 42 | ||
| 50 | @GetMapping("/page") | 43 | @GetMapping("/page") |
| 51 | @Operation(summary = "获得用户签到积分分页") | 44 | @Operation(summary = "获得用户签到积分分页") |
| 52 | @PreAuthorize("@ss.hasPermission('point:sign-in-record:query')") | 45 | @PreAuthorize("@ss.hasPermission('point:sign-in-record:query')") |
| 53 | - public CommonResult<PageResult<MemberSignInRecordRespVO>> getSignInRecordPage(@Valid MemberSignInRecordPageReqVO pageVO) { | ||
| 54 | - PageResult<MemberSignInRecordDO> pageResult = memberSignInRecordService.getSignInRecordPage(pageVO); | ||
| 55 | - return success(MemberSignInRecordConvert.INSTANCE.convertPage(pageResult)); | 46 | + public CommonResult <PageResult <MemberSignInRecordRespVO>> getSignInRecordPage(@Valid MemberSignInRecordPageReqVO pageVO) { |
| 47 | + //请求中如果有nickName,需要根据nickName查询出userId | ||
| 48 | + if(StringUtils.isNotBlank(pageVO.getNickName())){ | ||
| 49 | + List<Long> users= memberUserApi.getUserListByNickname(pageVO.getNickName()).stream() | ||
| 50 | + .map(user->user.getId()).collect(Collectors.toList()); | ||
| 51 | + //如果根据昵称查出来的用户为空,则无需继续查找 | ||
| 52 | + if(CollectionUtils.isEmpty(users)){ | ||
| 53 | + return success(new PageResult <>()); | ||
| 54 | + } | ||
| 55 | + pageVO.setUserIds(users); | ||
| 56 | + } | ||
| 57 | + //处理查询结果首先将数据信息查询,然后将userId转换为nickName | ||
| 58 | + PageResult <MemberSignInRecordDO> pageResult = memberSignInRecordService.getSignInRecordPage(pageVO); | ||
| 59 | + List <MemberSignInRecordDO> result = pageResult.getList(); | ||
| 60 | + //设置获取的用户信息 | ||
| 61 | + List <MemberUserRespDTO> users = null; | ||
| 62 | + if (!CollectionUtils.isEmpty(result)) { | ||
| 63 | + List <Long> ids = result.stream().map(user -> user.getUserId()).collect(Collectors.toList()); | ||
| 64 | + users = memberUserApi.getUsers(ids); | ||
| 65 | + } | ||
| 66 | + return success(MemberSignInRecordConvert.INSTANCE.convertPage(pageResult, users)); | ||
| 56 | } | 67 | } |
| 57 | } | 68 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigBaseVO.java
| @@ -16,4 +16,8 @@ public class MemberSignInConfigBaseVO { | @@ -16,4 +16,8 @@ public class MemberSignInConfigBaseVO { | ||
| 16 | @Schema(description = "签到天数对应分数", example = "10") | 16 | @Schema(description = "签到天数对应分数", example = "10") |
| 17 | private Integer point; | 17 | private Integer point; |
| 18 | 18 | ||
| 19 | + @Schema(description = "是否启用", example = "1") | ||
| 20 | + private Boolean isEnable; | ||
| 21 | + | ||
| 22 | + | ||
| 19 | } | 23 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInConfigPageReqVO.java deleted
| 1 | -package cn.iocoder.yudao.module.member.controller.admin.signin.vo; | ||
| 2 | - | ||
| 3 | -import lombok.*; | ||
| 4 | -import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | -import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 6 | - | ||
| 7 | -@Schema(description = "管理后台 - 积分签到规则分页 Request VO") | ||
| 8 | -@Data | ||
| 9 | -@EqualsAndHashCode(callSuper = true) | ||
| 10 | -@ToString(callSuper = true) | ||
| 11 | -public class MemberSignInConfigPageReqVO extends PageParam { | ||
| 12 | - | ||
| 13 | - @Schema(description = "签到第x天", example = "7") | ||
| 14 | - private Integer day; | ||
| 15 | - | ||
| 16 | -} |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordBaseVO.java
| @@ -11,7 +11,7 @@ import lombok.Data; | @@ -11,7 +11,7 @@ import lombok.Data; | ||
| 11 | public class MemberSignInRecordBaseVO { | 11 | public class MemberSignInRecordBaseVO { |
| 12 | 12 | ||
| 13 | @Schema(description = "签到用户", example = "6507") | 13 | @Schema(description = "签到用户", example = "6507") |
| 14 | - private Integer userId; | 14 | + private Long userId; |
| 15 | 15 | ||
| 16 | @Schema(description = "第几天签到") | 16 | @Schema(description = "第几天签到") |
| 17 | private Integer day; | 17 | private Integer day; |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordPageReqVO.java
| @@ -8,6 +8,7 @@ import lombok.ToString; | @@ -8,6 +8,7 @@ import lombok.ToString; | ||
| 8 | import org.springframework.format.annotation.DateTimeFormat; | 8 | import org.springframework.format.annotation.DateTimeFormat; |
| 9 | 9 | ||
| 10 | import java.time.LocalDateTime; | 10 | import java.time.LocalDateTime; |
| 11 | +import java.util.List; | ||
| 11 | 12 | ||
| 12 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | 13 | import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; |
| 13 | 14 | ||
| @@ -17,8 +18,11 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | @@ -17,8 +18,11 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_ | ||
| 17 | @ToString(callSuper = true) | 18 | @ToString(callSuper = true) |
| 18 | public class MemberSignInRecordPageReqVO extends PageParam { | 19 | public class MemberSignInRecordPageReqVO extends PageParam { |
| 19 | 20 | ||
| 21 | + //用户前台模糊查询 | ||
| 20 | @Schema(description = "签到用户", example = "6507") | 22 | @Schema(description = "签到用户", example = "6507") |
| 21 | - private Integer userId; | 23 | + private String nickName; |
| 24 | + | ||
| 25 | + private List<Long>userIds; | ||
| 22 | 26 | ||
| 23 | @Schema(description = "第几天签到") | 27 | @Schema(description = "第几天签到") |
| 24 | private Integer day; | 28 | private Integer day; |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/signin/vo/MemberSignInRecordRespVO.java
| @@ -19,4 +19,7 @@ public class MemberSignInRecordRespVO extends MemberSignInRecordBaseVO { | @@ -19,4 +19,7 @@ public class MemberSignInRecordRespVO extends MemberSignInRecordBaseVO { | ||
| 19 | @Schema(description = "签到时间") | 19 | @Schema(description = "签到时间") |
| 20 | private LocalDateTime createTime; | 20 | private LocalDateTime createTime; |
| 21 | 21 | ||
| 22 | + //昵称,用于前台展示 | ||
| 23 | + private String nickName; | ||
| 24 | + | ||
| 22 | } | 25 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointConfigConvert.java
| @@ -2,9 +2,7 @@ package cn.iocoder.yudao.module.member.convert.point; | @@ -2,9 +2,7 @@ package cn.iocoder.yudao.module.member.convert.point; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigRespVO; | 3 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigRespVO; |
| 4 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigSaveReqVO; | 4 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigSaveReqVO; |
| 5 | -import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordUpdateReqVO; | ||
| 6 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; |
| 7 | -import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; | ||
| 8 | import org.mapstruct.Mapper; | 6 | import org.mapstruct.Mapper; |
| 9 | import org.mapstruct.factory.Mappers; | 7 | import org.mapstruct.factory.Mappers; |
| 10 | 8 |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/point/MemberPointRecordConvert.java
| 1 | package cn.iocoder.yudao.module.member.convert.point; | 1 | package cn.iocoder.yudao.module.member.convert.point; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordCreateReqVO; | 4 | +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; |
| 5 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO; | 5 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordRespVO; |
| 6 | -import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordUpdateReqVO; | ||
| 7 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; | 6 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; |
| 8 | import org.mapstruct.Mapper; | 7 | import org.mapstruct.Mapper; |
| 9 | import org.mapstruct.factory.Mappers; | 8 | import org.mapstruct.factory.Mappers; |
| 9 | +import org.springframework.util.CollectionUtils; | ||
| 10 | + | ||
| 11 | +import java.util.ArrayList; | ||
| 12 | +import java.util.List; | ||
| 13 | +import java.util.Map; | ||
| 14 | +import java.util.stream.Collectors; | ||
| 10 | 15 | ||
| 11 | /** | 16 | /** |
| 12 | * 用户积分记录 Convert | 17 | * 用户积分记录 Convert |
| @@ -18,12 +23,62 @@ public interface MemberPointRecordConvert { | @@ -18,12 +23,62 @@ public interface MemberPointRecordConvert { | ||
| 18 | 23 | ||
| 19 | MemberPointRecordConvert INSTANCE = Mappers.getMapper(MemberPointRecordConvert.class); | 24 | MemberPointRecordConvert INSTANCE = Mappers.getMapper(MemberPointRecordConvert.class); |
| 20 | 25 | ||
| 21 | - MemberPointRecordDO convert(MemberPointRecordCreateReqVO bean); | 26 | + default PageResult <MemberPointRecordRespVO> convertPage(PageResult <MemberPointRecordDO> page, List <MemberUserRespDTO> users) { |
| 27 | + if (page == null) { | ||
| 28 | + return null; | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + PageResult <MemberPointRecordRespVO> pageResult = new PageResult <MemberPointRecordRespVO>(); | ||
| 32 | + | ||
| 33 | + pageResult.setList(memberPointRecordDOListToMemberPointRecordRespVOList(page.getList(), users)); | ||
| 34 | + pageResult.setTotal(page.getTotal()); | ||
| 35 | + | ||
| 36 | + return pageResult; | ||
| 37 | + } | ||
| 38 | + | ||
| 39 | + default List <MemberPointRecordRespVO> memberPointRecordDOListToMemberPointRecordRespVOList(List <MemberPointRecordDO> list, List <MemberUserRespDTO> users) { | ||
| 40 | + if (list == null) { | ||
| 41 | + return null; | ||
| 42 | + } | ||
| 43 | + Map <Long, String> maps = null; | ||
| 44 | + //是否需要转换用户标志 | ||
| 45 | + boolean userNickFlag = !CollectionUtils.isEmpty(users); | ||
| 46 | + if (userNickFlag) { | ||
| 47 | + maps = users.stream() | ||
| 48 | + .collect(Collectors.toMap(MemberUserRespDTO::getId, MemberUserRespDTO::getNickname, (key1, key2) -> key2)); | ||
| 49 | + } | ||
| 50 | + List <MemberPointRecordRespVO> list1 = new ArrayList <MemberPointRecordRespVO>(list.size()); | ||
| 51 | + for (MemberPointRecordDO memberPointRecordDO : list) { | ||
| 52 | + MemberPointRecordRespVO recordRespVO = memberPointRecordDOToMemberPointRecordRespVO(memberPointRecordDO); | ||
| 53 | + recordRespVO.setNickName(maps.get(memberPointRecordDO.getUserId())); | ||
| 54 | + list1.add(recordRespVO); | ||
| 55 | + } | ||
| 56 | + | ||
| 57 | + return list1; | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + default MemberPointRecordRespVO memberPointRecordDOToMemberPointRecordRespVO(MemberPointRecordDO memberPointRecordDO) { | ||
| 61 | + if (memberPointRecordDO == null) { | ||
| 62 | + return null; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + MemberPointRecordRespVO memberPointRecordRespVO = new MemberPointRecordRespVO(); | ||
| 22 | 66 | ||
| 23 | - MemberPointRecordDO convert(MemberPointRecordUpdateReqVO bean); | 67 | + memberPointRecordRespVO.setBizId(memberPointRecordDO.getBizId()); |
| 68 | + memberPointRecordRespVO.setBizType(memberPointRecordDO.getBizType()); | ||
| 69 | + memberPointRecordRespVO.setType(memberPointRecordDO.getType()); | ||
| 70 | + memberPointRecordRespVO.setTitle(memberPointRecordDO.getTitle()); | ||
| 71 | + memberPointRecordRespVO.setDescription(memberPointRecordDO.getDescription()); | ||
| 72 | + memberPointRecordRespVO.setPoint(memberPointRecordDO.getPoint()); | ||
| 73 | + memberPointRecordRespVO.setTotalPoint(memberPointRecordDO.getTotalPoint()); | ||
| 74 | + memberPointRecordRespVO.setStatus(memberPointRecordDO.getStatus()); | ||
| 75 | + memberPointRecordRespVO.setFreezingTime(memberPointRecordDO.getFreezingTime()); | ||
| 76 | + memberPointRecordRespVO.setThawingTime(memberPointRecordDO.getThawingTime()); | ||
| 77 | + memberPointRecordRespVO.setId(memberPointRecordDO.getId()); | ||
| 78 | + memberPointRecordRespVO.setCreateTime(memberPointRecordDO.getCreateTime()); | ||
| 24 | 79 | ||
| 25 | - MemberPointRecordRespVO convert(MemberPointRecordDO bean); | 80 | + return memberPointRecordRespVO; |
| 81 | + } | ||
| 26 | 82 | ||
| 27 | - PageResult<MemberPointRecordRespVO> convertPage(PageResult<MemberPointRecordDO> page); | ||
| 28 | 83 | ||
| 29 | } | 84 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/convert/signin/MemberSignInRecordConvert.java
| 1 | package cn.iocoder.yudao.module.member.convert.signin; | 1 | package cn.iocoder.yudao.module.member.convert.signin; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordCreateReqVO; | 4 | +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO; |
| 5 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordRespVO; | 5 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordRespVO; |
| 6 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordUpdateReqVO; | ||
| 7 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; | 6 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; |
| 7 | +import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; | ||
| 8 | import org.mapstruct.Mapper; | 8 | import org.mapstruct.Mapper; |
| 9 | import org.mapstruct.factory.Mappers; | 9 | import org.mapstruct.factory.Mappers; |
| 10 | +import org.springframework.util.CollectionUtils; | ||
| 11 | + | ||
| 12 | +import java.util.ArrayList; | ||
| 13 | +import java.util.List; | ||
| 14 | +import java.util.Map; | ||
| 15 | +import java.util.function.Function; | ||
| 16 | +import java.util.stream.Collectors; | ||
| 10 | 17 | ||
| 11 | /** | 18 | /** |
| 12 | * 用户签到积分 Convert | 19 | * 用户签到积分 Convert |
| @@ -18,12 +25,57 @@ public interface MemberSignInRecordConvert { | @@ -18,12 +25,57 @@ public interface MemberSignInRecordConvert { | ||
| 18 | 25 | ||
| 19 | MemberSignInRecordConvert INSTANCE = Mappers.getMapper(MemberSignInRecordConvert.class); | 26 | MemberSignInRecordConvert INSTANCE = Mappers.getMapper(MemberSignInRecordConvert.class); |
| 20 | 27 | ||
| 21 | - MemberSignInRecordDO convert(MemberSignInRecordCreateReqVO bean); | 28 | + default public MemberSignInRecordRespVO convert(MemberSignInRecordDO bean) { |
| 29 | + if (bean == null) { | ||
| 30 | + return null; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + MemberSignInRecordRespVO memberSignInRecordRespVO = new MemberSignInRecordRespVO(); | ||
| 34 | + | ||
| 35 | + memberSignInRecordRespVO.setUserId(bean.getUserId()); | ||
| 36 | + memberSignInRecordRespVO.setDay(bean.getDay()); | ||
| 37 | + memberSignInRecordRespVO.setPoint(bean.getPoint()); | ||
| 38 | + memberSignInRecordRespVO.setId(bean.getId()); | ||
| 39 | + memberSignInRecordRespVO.setCreateTime(bean.getCreateTime()); | ||
| 40 | + | ||
| 41 | + return memberSignInRecordRespVO; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + default PageResult <MemberSignInRecordRespVO> convertPage(PageResult <MemberSignInRecordDO> page, List <MemberUserRespDTO> userRespDTOS) { | ||
| 45 | + if (page == null) { | ||
| 46 | + return null; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + PageResult <MemberSignInRecordRespVO> pageResult = new PageResult <MemberSignInRecordRespVO>(); | ||
| 50 | + | ||
| 51 | + pageResult.setList(memberSignInRecordDOListToMemberSignInRecordRespVOList(page.getList(),userRespDTOS)); | ||
| 52 | + pageResult.setTotal(page.getTotal()); | ||
| 53 | + | ||
| 54 | + return pageResult; | ||
| 55 | + } | ||
| 22 | 56 | ||
| 23 | - MemberSignInRecordDO convert(MemberSignInRecordUpdateReqVO bean); | 57 | + default List <MemberSignInRecordRespVO> memberSignInRecordDOListToMemberSignInRecordRespVOList(List <MemberSignInRecordDO> list,List <MemberUserRespDTO> userRespDTOS) { |
| 58 | + if (list == null) { | ||
| 59 | + return null; | ||
| 60 | + } | ||
| 61 | + Map <Long, String> maps=null; | ||
| 62 | + //是否需要转换用户标志 | ||
| 63 | + boolean userNickFlag = !CollectionUtils.isEmpty(userRespDTOS); | ||
| 64 | + if(userNickFlag){ | ||
| 65 | + maps = userRespDTOS.stream() | ||
| 66 | + .collect(Collectors.toMap(MemberUserRespDTO::getId, MemberUserRespDTO::getNickname, (key1, key2) -> key2)); | ||
| 67 | + } | ||
| 68 | + List <MemberSignInRecordRespVO> list1 = new ArrayList <MemberSignInRecordRespVO>(list.size()); | ||
| 69 | + for (MemberSignInRecordDO memberSignInRecordDO : list) { | ||
| 70 | + MemberSignInRecordRespVO recordRespVO = convert(memberSignInRecordDO); | ||
| 71 | + if(userNickFlag){ | ||
| 72 | + recordRespVO.setNickName(maps.get(recordRespVO.getUserId())); | ||
| 73 | + } | ||
| 74 | + list1.add(recordRespVO); | ||
| 75 | + } | ||
| 24 | 76 | ||
| 25 | - MemberSignInRecordRespVO convert(MemberSignInRecordDO bean); | 77 | + return list1; |
| 78 | + } | ||
| 26 | 79 | ||
| 27 | - PageResult<MemberSignInRecordRespVO> convertPage(PageResult<MemberSignInRecordDO> page); | ||
| 28 | 80 | ||
| 29 | } | 81 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointConfigDO.java
| @@ -27,7 +27,7 @@ public class MemberPointConfigDO extends BaseDO { | @@ -27,7 +27,7 @@ public class MemberPointConfigDO extends BaseDO { | ||
| 27 | * 自增主键 | 27 | * 自增主键 |
| 28 | */ | 28 | */ |
| 29 | @TableId | 29 | @TableId |
| 30 | - private Integer id; | 30 | + private Long id; |
| 31 | /** | 31 | /** |
| 32 | * 积分抵扣开关 | 32 | * 积分抵扣开关 |
| 33 | */ | 33 | */ |
| @@ -37,7 +37,7 @@ public class MemberPointConfigDO extends BaseDO { | @@ -37,7 +37,7 @@ public class MemberPointConfigDO extends BaseDO { | ||
| 37 | * | 37 | * |
| 38 | * 1 积分抵扣多少分 | 38 | * 1 积分抵扣多少分 |
| 39 | */ | 39 | */ |
| 40 | - private BigDecimal tradeDeductUnitPrice; | 40 | + private Integer tradeDeductUnitPrice; |
| 41 | /** | 41 | /** |
| 42 | * 积分抵扣最大值 | 42 | * 积分抵扣最大值 |
| 43 | */ | 43 | */ |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/point/MemberPointRecordDO.java
| @@ -39,11 +39,6 @@ public class MemberPointRecordDO extends BaseDO { | @@ -39,11 +39,6 @@ public class MemberPointRecordDO extends BaseDO { | ||
| 39 | */ | 39 | */ |
| 40 | private String bizType; | 40 | private String bizType; |
| 41 | /** | 41 | /** |
| 42 | - * 1增加 0扣减 | ||
| 43 | - */ | ||
| 44 | - // TODO @xiaqing:要不把 type 合并到 point 里?增加 point 是正数,减少 point 是负数? | ||
| 45 | - private String type; | ||
| 46 | - /** | ||
| 47 | * 积分标题 | 42 | * 积分标题 |
| 48 | */ | 43 | */ |
| 49 | private String title; | 44 | private String title; |
| @@ -52,7 +47,7 @@ public class MemberPointRecordDO extends BaseDO { | @@ -52,7 +47,7 @@ public class MemberPointRecordDO extends BaseDO { | ||
| 52 | */ | 47 | */ |
| 53 | private String description; | 48 | private String description; |
| 54 | /** | 49 | /** |
| 55 | - * 积分 | 50 | + * 积分 正数表示获得积分 负数表示消耗积分 |
| 56 | */ | 51 | */ |
| 57 | private Integer point; | 52 | private Integer point; |
| 58 | /** | 53 | /** |
| @@ -62,13 +57,13 @@ public class MemberPointRecordDO extends BaseDO { | @@ -62,13 +57,13 @@ public class MemberPointRecordDO extends BaseDO { | ||
| 62 | /** | 57 | /** |
| 63 | * 状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) | 58 | * 状态:1-订单创建,2-冻结期,3-完成,4-失效(订单退款) |
| 64 | * | 59 | * |
| 65 | - * 枚举 {@link TODO point_status 对应的类} | 60 | + * 枚举 {@link point_status 对应的类} |
| 66 | */ | 61 | */ |
| 67 | private Integer status; | 62 | private Integer status; |
| 68 | /** | 63 | /** |
| 69 | * 用户id | 64 | * 用户id |
| 70 | */ | 65 | */ |
| 71 | - private Integer userId; | 66 | + private Long userId; |
| 72 | /** | 67 | /** |
| 73 | * 冻结时间 | 68 | * 冻结时间 |
| 74 | */ | 69 | */ |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInConfigDO.java
| @@ -34,5 +34,8 @@ public class MemberSignInConfigDO extends BaseDO { | @@ -34,5 +34,8 @@ public class MemberSignInConfigDO extends BaseDO { | ||
| 34 | * 签到天数对应分数 | 34 | * 签到天数对应分数 |
| 35 | */ | 35 | */ |
| 36 | private Integer point; | 36 | private Integer point; |
| 37 | - | 37 | + /** |
| 38 | + * 是否启用 | ||
| 39 | + */ | ||
| 40 | + private Boolean isEnable; | ||
| 38 | } | 41 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/signin/MemberSignInRecordDO.java
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/point/MemberPointRecordMapper.java
| @@ -17,7 +17,7 @@ public interface MemberPointRecordMapper extends BaseMapperX<MemberPointRecordDO | @@ -17,7 +17,7 @@ public interface MemberPointRecordMapper extends BaseMapperX<MemberPointRecordDO | ||
| 17 | 17 | ||
| 18 | default PageResult<MemberPointRecordDO> selectPage(MemberPointRecordPageReqVO reqVO) { | 18 | default PageResult<MemberPointRecordDO> selectPage(MemberPointRecordPageReqVO reqVO) { |
| 19 | return selectPage(reqVO, new LambdaQueryWrapperX<MemberPointRecordDO>() | 19 | return selectPage(reqVO, new LambdaQueryWrapperX<MemberPointRecordDO>() |
| 20 | - .eqIfPresent(MemberPointRecordDO::getBizId, reqVO.getBizId()) | 20 | + .inIfPresent(MemberPointRecordDO::getUserId,reqVO.getUserIds()) |
| 21 | .eqIfPresent(MemberPointRecordDO::getBizType, reqVO.getBizType()) | 21 | .eqIfPresent(MemberPointRecordDO::getBizType, reqVO.getBizType()) |
| 22 | .eqIfPresent(MemberPointRecordDO::getType, reqVO.getType()) | 22 | .eqIfPresent(MemberPointRecordDO::getType, reqVO.getType()) |
| 23 | .eqIfPresent(MemberPointRecordDO::getTitle, reqVO.getTitle()) | 23 | .eqIfPresent(MemberPointRecordDO::getTitle, reqVO.getTitle()) |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInConfigMapper.java
| 1 | package cn.iocoder.yudao.module.member.dal.mysql.signin; | 1 | package cn.iocoder.yudao.module.member.dal.mysql.signin; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | 3 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | 4 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | ||
| 7 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; | ||
| 8 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; |
| 6 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||
| 9 | import org.apache.ibatis.annotations.Mapper; | 7 | import org.apache.ibatis.annotations.Mapper; |
| 10 | 8 | ||
| 9 | +import java.util.List; | ||
| 10 | + | ||
| 11 | /** | 11 | /** |
| 12 | * 积分签到规则 Mapper | 12 | * 积分签到规则 Mapper |
| 13 | * | 13 | * |
| @@ -16,18 +16,32 @@ import org.apache.ibatis.annotations.Mapper; | @@ -16,18 +16,32 @@ import org.apache.ibatis.annotations.Mapper; | ||
| 16 | @Mapper | 16 | @Mapper |
| 17 | public interface MemberSignInConfigMapper extends BaseMapperX<MemberSignInConfigDO> { | 17 | public interface MemberSignInConfigMapper extends BaseMapperX<MemberSignInConfigDO> { |
| 18 | 18 | ||
| 19 | - default PageResult<MemberSignInConfigDO> selectPage(MemberSignInConfigPageReqVO reqVO) { | ||
| 20 | - return selectPage(reqVO, new LambdaQueryWrapperX<MemberSignInConfigDO>() | ||
| 21 | - .eqIfPresent(MemberSignInConfigDO::getDay, reqVO.getDay()) | ||
| 22 | - .orderByAsc(MemberSignInConfigDO::getDay)); | 19 | + /** |
| 20 | + * 描述 :选择性更新对象属性,如果不为空则更新。 | ||
| 21 | + * Author :xiaqing | ||
| 22 | + * Date :2023-08-08 23:38:48 | ||
| 23 | + */ | ||
| 24 | + default int updateIfPresent(MemberSignInConfigDO updateObj){ | ||
| 25 | + LambdaUpdateWrapper <MemberSignInConfigDO> wrapper = new LambdaUpdateWrapper <>(); | ||
| 26 | + wrapper.eq(MemberSignInConfigDO::getId, updateObj.getId()) | ||
| 27 | + .set(updateObj.getDay() != null, MemberSignInConfigDO::getDay, updateObj.getDay()) | ||
| 28 | + .set(updateObj.getPoint() != null, MemberSignInConfigDO::getPoint, updateObj.getPoint()) | ||
| 29 | + .set(updateObj.getIsEnable() != null, MemberSignInConfigDO::getIsEnable, updateObj.getIsEnable()); | ||
| 30 | + return update(null,wrapper); | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + default List <MemberSignInConfigDO> getList(){ | ||
| 34 | + return selectList(new LambdaQueryWrapperX <MemberSignInConfigDO>().orderByAsc(MemberSignInConfigDO::getDay)); | ||
| 23 | } | 35 | } |
| 24 | 36 | ||
| 25 | - // | ||
| 26 | - default long selectSameDayNotSelf(MemberSignInConfigUpdateReqVO reqVO){ | ||
| 27 | - return selectCount(new LambdaQueryWrapperX <MemberSignInConfigDO>() | ||
| 28 | - .ne(MemberSignInConfigDO::getId, reqVO.getId()) | ||
| 29 | - .eq(MemberSignInConfigDO::getDay,reqVO.getDay()) | ||
| 30 | - ); | 37 | + /** |
| 38 | + * 描述 :根据天数查询对应记录 | ||
| 39 | + * Date :2023-08-09 00:07:11 | ||
| 40 | + */ | ||
| 41 | + default MemberSignInConfigDO selectByDay(Integer day){ | ||
| 42 | + return selectOne(new LambdaQueryWrapperX <MemberSignInConfigDO>() | ||
| 43 | + .eq(MemberSignInConfigDO::getDay,day)); | ||
| 44 | + | ||
| 31 | } | 45 | } |
| 32 | 46 | ||
| 33 | } | 47 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/signin/MemberSignInRecordMapper.java
| @@ -17,7 +17,7 @@ public interface MemberSignInRecordMapper extends BaseMapperX<MemberSignInRecord | @@ -17,7 +17,7 @@ public interface MemberSignInRecordMapper extends BaseMapperX<MemberSignInRecord | ||
| 17 | 17 | ||
| 18 | default PageResult<MemberSignInRecordDO> selectPage(MemberSignInRecordPageReqVO reqVO) { | 18 | default PageResult<MemberSignInRecordDO> selectPage(MemberSignInRecordPageReqVO reqVO) { |
| 19 | return selectPage(reqVO, new LambdaQueryWrapperX<MemberSignInRecordDO>() | 19 | return selectPage(reqVO, new LambdaQueryWrapperX<MemberSignInRecordDO>() |
| 20 | - .eqIfPresent(MemberSignInRecordDO::getUserId, reqVO.getUserId()) | 20 | + .inIfPresent(MemberSignInRecordDO::getUserId, reqVO.getUserIds()) |
| 21 | .eqIfPresent(MemberSignInRecordDO::getDay, reqVO.getDay()) | 21 | .eqIfPresent(MemberSignInRecordDO::getDay, reqVO.getDay()) |
| 22 | .betweenIfPresent(MemberSignInRecordDO::getCreateTime, reqVO.getCreateTime()) | 22 | .betweenIfPresent(MemberSignInRecordDO::getCreateTime, reqVO.getCreateTime()) |
| 23 | .orderByDesc(MemberSignInRecordDO::getId)); | 23 | .orderByDesc(MemberSignInRecordDO::getId)); |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointConfigServiceImpl.java
| 1 | package cn.iocoder.yudao.module.member.service.point; | 1 | package cn.iocoder.yudao.module.member.service.point; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | ||
| 4 | +import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; | ||
| 3 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigSaveReqVO; | 5 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.config.MemberPointConfigSaveReqVO; |
| 4 | import cn.iocoder.yudao.module.member.convert.point.MemberPointConfigConvert; | 6 | import cn.iocoder.yudao.module.member.convert.point.MemberPointConfigConvert; |
| 5 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; | 7 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointConfigDO; |
| @@ -24,13 +26,15 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService { | @@ -24,13 +26,15 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService { | ||
| 24 | 26 | ||
| 25 | @Override | 27 | @Override |
| 26 | public void saveConfig(MemberPointConfigSaveReqVO saveReqVO) { | 28 | public void saveConfig(MemberPointConfigSaveReqVO saveReqVO) { |
| 27 | - // TODO @xiaqing:直接 getConfig() 查询,如果不存在,则插入;存在,则进行更新; | ||
| 28 | - long total = pointConfigMapper.selectCount(); | 29 | + //获取当前记录 |
| 30 | + MemberPointConfigDO configDO = getConfig(); | ||
| 29 | MemberPointConfigDO pointConfigDO = MemberPointConfigConvert.INSTANCE.convert(saveReqVO); | 31 | MemberPointConfigDO pointConfigDO = MemberPointConfigConvert.INSTANCE.convert(saveReqVO); |
| 30 | - //大于0存在记录,则更新,否则插入 | ||
| 31 | - if (total > 0) { | 32 | + //当前存在记录,则更新,否则插入 |
| 33 | + if (configDO != null) { | ||
| 34 | + pointConfigDO.setId(configDO.getId()); | ||
| 32 | pointConfigMapper.updateById(pointConfigDO); | 35 | pointConfigMapper.updateById(pointConfigDO); |
| 33 | } else { | 36 | } else { |
| 37 | + pointConfigDO.setId(null); | ||
| 34 | pointConfigMapper.insert(pointConfigDO); | 38 | pointConfigMapper.insert(pointConfigDO); |
| 35 | } | 39 | } |
| 36 | } | 40 | } |
| @@ -38,8 +42,7 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService { | @@ -38,8 +42,7 @@ public class MemberPointConfigServiceImpl implements MemberPointConfigService { | ||
| 38 | @Override | 42 | @Override |
| 39 | public MemberPointConfigDO getConfig() { | 43 | public MemberPointConfigDO getConfig() { |
| 40 | List <MemberPointConfigDO> list = pointConfigMapper.selectList(); | 44 | List <MemberPointConfigDO> list = pointConfigMapper.selectList(); |
| 41 | - // TODO @xiaqing:可以使用 CollUtil.getFirst() | ||
| 42 | - return list == null ? null : list.get(0); | 45 | + return CollectionUtils.getFirst(list); |
| 43 | } | 46 | } |
| 44 | 47 | ||
| 45 | } | 48 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordService.java
| @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.member.service.point; | @@ -2,7 +2,6 @@ package cn.iocoder.yudao.module.member.service.point; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; | 4 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; |
| 5 | -import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordUpdateReqVO; | ||
| 6 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; |
| 7 | 6 | ||
| 8 | import javax.validation.Valid; | 7 | import javax.validation.Valid; |
| @@ -13,23 +12,6 @@ import javax.validation.Valid; | @@ -13,23 +12,6 @@ import javax.validation.Valid; | ||
| 13 | * @author QingX | 12 | * @author QingX |
| 14 | */ | 13 | */ |
| 15 | public interface MemberPointRecordService { | 14 | public interface MemberPointRecordService { |
| 16 | - // TODO @xiaqing:方法和方法之间,是空一行哈; | ||
| 17 | - | ||
| 18 | - /** | ||
| 19 | - * 更新用户积分记录 | ||
| 20 | - * | ||
| 21 | - * @param updateReqVO 更新信息 | ||
| 22 | - */ | ||
| 23 | - void updateRecord(@Valid MemberPointRecordUpdateReqVO updateReqVO); | ||
| 24 | - | ||
| 25 | - | ||
| 26 | - /** | ||
| 27 | - * 获得用户积分记录 | ||
| 28 | - * | ||
| 29 | - * @param id 编号 | ||
| 30 | - * @return 用户积分记录 | ||
| 31 | - */ | ||
| 32 | - MemberPointRecordDO getRecord(Long id); | ||
| 33 | 15 | ||
| 34 | /** | 16 | /** |
| 35 | * 获得用户积分记录分页 | 17 | * 获得用户积分记录分页 |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/point/MemberPointRecordServiceImpl.java
| @@ -2,19 +2,12 @@ package cn.iocoder.yudao.module.member.service.point; | @@ -2,19 +2,12 @@ package cn.iocoder.yudao.module.member.service.point; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; | 4 | import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordPageReqVO; |
| 5 | -import cn.iocoder.yudao.module.member.controller.admin.point.vo.recrod.MemberPointRecordUpdateReqVO; | ||
| 6 | -import cn.iocoder.yudao.module.member.convert.point.MemberPointRecordConvert; | ||
| 7 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.point.MemberPointRecordDO; |
| 8 | import cn.iocoder.yudao.module.member.dal.mysql.point.MemberPointRecordMapper; | 6 | import cn.iocoder.yudao.module.member.dal.mysql.point.MemberPointRecordMapper; |
| 9 | -import cn.iocoder.yudao.module.member.enums.ErrorCodeConstants; | ||
| 10 | import org.springframework.stereotype.Service; | 7 | import org.springframework.stereotype.Service; |
| 11 | import org.springframework.validation.annotation.Validated; | 8 | import org.springframework.validation.annotation.Validated; |
| 12 | 9 | ||
| 13 | import javax.annotation.Resource; | 10 | import javax.annotation.Resource; |
| 14 | -import java.util.Collection; | ||
| 15 | -import java.util.List; | ||
| 16 | - | ||
| 17 | -import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | ||
| 18 | 11 | ||
| 19 | 12 | ||
| 20 | /** | 13 | /** |
| @@ -30,26 +23,6 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService { | @@ -30,26 +23,6 @@ public class MemberPointRecordServiceImpl implements MemberPointRecordService { | ||
| 30 | private MemberPointRecordMapper recordMapper; | 23 | private MemberPointRecordMapper recordMapper; |
| 31 | 24 | ||
| 32 | @Override | 25 | @Override |
| 33 | - public void updateRecord(MemberPointRecordUpdateReqVO updateReqVO) { | ||
| 34 | - // 校验存在 | ||
| 35 | - validateRecordExists(updateReqVO.getId()); | ||
| 36 | - // 更新 | ||
| 37 | - MemberPointRecordDO updateObj = MemberPointRecordConvert.INSTANCE.convert(updateReqVO); | ||
| 38 | - recordMapper.updateById(updateObj); | ||
| 39 | - } | ||
| 40 | - | ||
| 41 | - private void validateRecordExists(Long id) { | ||
| 42 | - if (recordMapper.selectById(id) == null) { | ||
| 43 | - throw exception(ErrorCodeConstants.RECORD_NOT_EXISTS); | ||
| 44 | - } | ||
| 45 | - } | ||
| 46 | - | ||
| 47 | - @Override | ||
| 48 | - public MemberPointRecordDO getRecord(Long id) { | ||
| 49 | - return recordMapper.selectById(id); | ||
| 50 | - } | ||
| 51 | - | ||
| 52 | - @Override | ||
| 53 | public PageResult<MemberPointRecordDO> getRecordPage(MemberPointRecordPageReqVO pageReqVO) { | 26 | public PageResult<MemberPointRecordDO> getRecordPage(MemberPointRecordPageReqVO pageReqVO) { |
| 54 | return recordMapper.selectPage(pageReqVO); | 27 | return recordMapper.selectPage(pageReqVO); |
| 55 | } | 28 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigService.java
| 1 | package cn.iocoder.yudao.module.member.service.signin; | 1 | package cn.iocoder.yudao.module.member.service.signin; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; | 3 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; |
| 5 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | ||
| 6 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; | 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; |
| 7 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; |
| 8 | 6 | ||
| 9 | import javax.validation.Valid; | 7 | import javax.validation.Valid; |
| 8 | +import java.util.List; | ||
| 10 | 9 | ||
| 11 | /** | 10 | /** |
| 12 | * 积分签到规则 Service 接口 | 11 | * 积分签到规则 Service 接口 |
| @@ -48,9 +47,8 @@ public interface MemberSignInConfigService { | @@ -48,9 +47,8 @@ public interface MemberSignInConfigService { | ||
| 48 | /** | 47 | /** |
| 49 | * 获得积分签到规则分页 | 48 | * 获得积分签到规则分页 |
| 50 | * | 49 | * |
| 51 | - * @param pageReqVO 分页查询 | ||
| 52 | * @return 积分签到规则分页 | 50 | * @return 积分签到规则分页 |
| 53 | */ | 51 | */ |
| 54 | - PageResult<MemberSignInConfigDO> getSignInConfigPage(MemberSignInConfigPageReqVO pageReqVO); | 52 | + List<MemberSignInConfigDO> getSignInConfigList(); |
| 55 | 53 | ||
| 56 | } | 54 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInConfigServiceImpl.java
| 1 | package cn.iocoder.yudao.module.member.service.signin; | 1 | package cn.iocoder.yudao.module.member.service.signin; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; | 3 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigCreateReqVO; |
| 5 | -import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigPageReqVO; | ||
| 6 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; | 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInConfigUpdateReqVO; |
| 7 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; | 5 | import cn.iocoder.yudao.module.member.convert.signin.MemberSignInConfigConvert; |
| 8 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; | 6 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInConfigDO; |
| 9 | import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInConfigMapper; | 7 | import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInConfigMapper; |
| 8 | +import com.baomidou.mybatisplus.core.conditions.Wrapper; | ||
| 9 | +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||
| 10 | +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; | ||
| 10 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
| 11 | import org.springframework.validation.annotation.Validated; | 12 | import org.springframework.validation.annotation.Validated; |
| 12 | 13 | ||
| 13 | import javax.annotation.Resource; | 14 | import javax.annotation.Resource; |
| 14 | 15 | ||
| 16 | +import java.util.List; | ||
| 17 | + | ||
| 15 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; | 18 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 16 | import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_EXISTS; | 19 | import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_EXISTS; |
| 17 | import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_NOT_EXISTS; | 20 | import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.SIGN_IN_CONFIG_NOT_EXISTS; |
| @@ -28,30 +31,28 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService | @@ -28,30 +31,28 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService | ||
| 28 | @Resource | 31 | @Resource |
| 29 | private MemberSignInConfigMapper memberSignInConfigMapper; | 32 | private MemberSignInConfigMapper memberSignInConfigMapper; |
| 30 | 33 | ||
| 31 | - // TODO @xiaqing:这种写的逻辑,最好按照 校验 - 更新这样的顺序写;类似这里,37 要放到 34 前面;updateSignInConfig 也是一样的思路 | ||
| 32 | @Override | 34 | @Override |
| 33 | public Integer createSignInConfig(MemberSignInConfigCreateReqVO createReqVO) { | 35 | public Integer createSignInConfig(MemberSignInConfigCreateReqVO createReqVO) { |
| 36 | + // 判断是否重复插入签到天数 | ||
| 37 | + validateSignInConfigExistsDay(createReqVO.getDay()); | ||
| 38 | + | ||
| 34 | // 插入 | 39 | // 插入 |
| 35 | MemberSignInConfigDO signInConfig = MemberSignInConfigConvert.INSTANCE.convert(createReqVO); | 40 | MemberSignInConfigDO signInConfig = MemberSignInConfigConvert.INSTANCE.convert(createReqVO); |
| 36 | - // 判断是否重复插入签到天数 | ||
| 37 | - validateSignInConfigExistsDay(signInConfig.getDay()); | ||
| 38 | memberSignInConfigMapper.insert(signInConfig); | 41 | memberSignInConfigMapper.insert(signInConfig); |
| 39 | // 返回 | 42 | // 返回 |
| 40 | return signInConfig.getId(); | 43 | return signInConfig.getId(); |
| 41 | } | 44 | } |
| 42 | 45 | ||
| 43 | - // TODO @xiaqing:这个逻辑的空行要注意;52 到 53 是没必要的空行;而 49 和 50 之间有个空行会好点,可以区分出是 校验 - 更新这样的逻辑间隔 | ||
| 44 | @Override | 46 | @Override |
| 45 | public void updateSignInConfig(MemberSignInConfigUpdateReqVO updateReqVO) { | 47 | public void updateSignInConfig(MemberSignInConfigUpdateReqVO updateReqVO) { |
| 46 | // 校验存在 | 48 | // 校验存在 |
| 47 | validateSignInConfigExists(updateReqVO.getId()); | 49 | validateSignInConfigExists(updateReqVO.getId()); |
| 48 | //判断是否重复插入签到天数 | 50 | //判断是否重复插入签到天数 |
| 49 | validateSignInConfigSameDayNotSelf(updateReqVO); | 51 | validateSignInConfigSameDayNotSelf(updateReqVO); |
| 50 | - // 判断更新的 | ||
| 51 | - MemberSignInConfigDO updateObj = MemberSignInConfigConvert.INSTANCE.convert(updateReqVO); | ||
| 52 | - | ||
| 53 | 52 | ||
| 54 | - memberSignInConfigMapper.updateById(updateObj); | 53 | + // 判断更新 |
| 54 | + MemberSignInConfigDO updateObj = MemberSignInConfigConvert.INSTANCE.convert(updateReqVO); | ||
| 55 | + memberSignInConfigMapper.updateIfPresent(updateObj); | ||
| 55 | } | 56 | } |
| 56 | 57 | ||
| 57 | @Override | 58 | @Override |
| @@ -68,18 +69,18 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService | @@ -68,18 +69,18 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService | ||
| 68 | } | 69 | } |
| 69 | } | 70 | } |
| 70 | 71 | ||
| 71 | - // TODO @xiaqing:这个唯一判断,也可以参考下别的模块哈; | ||
| 72 | //根据签到天数判断是否存在一个相同的天数 | 72 | //根据签到天数判断是否存在一个相同的天数 |
| 73 | private void validateSignInConfigExistsDay(Integer day) { | 73 | private void validateSignInConfigExistsDay(Integer day) { |
| 74 | - if (memberSignInConfigMapper.selectCount(MemberSignInConfigDO::getDay,day)>0) { | 74 | + MemberSignInConfigDO configDO = memberSignInConfigMapper.selectByDay(day); |
| 75 | + if (configDO != null) { | ||
| 75 | throw exception(SIGN_IN_CONFIG_EXISTS); | 76 | throw exception(SIGN_IN_CONFIG_EXISTS); |
| 76 | } | 77 | } |
| 77 | } | 78 | } |
| 78 | 79 | ||
| 79 | - // TODO @xiaqing:参考下别的模块,判断唯一,排除自己怎么写的哈; | ||
| 80 | // 更新天数时判断是否有重复的天数,需要去除自己 | 80 | // 更新天数时判断是否有重复的天数,需要去除自己 |
| 81 | private void validateSignInConfigSameDayNotSelf(MemberSignInConfigUpdateReqVO reqVO) { | 81 | private void validateSignInConfigSameDayNotSelf(MemberSignInConfigUpdateReqVO reqVO) { |
| 82 | - if (memberSignInConfigMapper.selectSameDayNotSelf(reqVO)>0) { | 82 | + MemberSignInConfigDO configDO = memberSignInConfigMapper.selectByDay(reqVO.getDay()); |
| 83 | + if (configDO != null && configDO.getId() != reqVO.getId()) { | ||
| 83 | throw exception(SIGN_IN_CONFIG_EXISTS); | 84 | throw exception(SIGN_IN_CONFIG_EXISTS); |
| 84 | } | 85 | } |
| 85 | } | 86 | } |
| @@ -90,8 +91,8 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService | @@ -90,8 +91,8 @@ public class MemberSignInConfigServiceImpl implements MemberSignInConfigService | ||
| 90 | } | 91 | } |
| 91 | 92 | ||
| 92 | @Override | 93 | @Override |
| 93 | - public PageResult<MemberSignInConfigDO> getSignInConfigPage(MemberSignInConfigPageReqVO pageReqVO) { | ||
| 94 | - return memberSignInConfigMapper.selectPage(pageReqVO); | 94 | + public List <MemberSignInConfigDO> getSignInConfigList() { |
| 95 | + return memberSignInConfigMapper.getList(); | ||
| 95 | } | 96 | } |
| 96 | 97 | ||
| 97 | } | 98 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordService.java
| @@ -11,20 +11,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO | @@ -11,20 +11,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO | ||
| 11 | */ | 11 | */ |
| 12 | public interface MemberSignInRecordService { | 12 | public interface MemberSignInRecordService { |
| 13 | 13 | ||
| 14 | - /** | ||
| 15 | - * 删除用户签到积分 | ||
| 16 | - * | ||
| 17 | - * @param id 编号 | ||
| 18 | - */ | ||
| 19 | - void deleteSignInRecord(Long id); | ||
| 20 | 14 | ||
| 21 | - /** | ||
| 22 | - * 获得用户签到积分 | ||
| 23 | - * | ||
| 24 | - * @param id 编号 | ||
| 25 | - * @return 用户签到积分 | ||
| 26 | - */ | ||
| 27 | - MemberSignInRecordDO getSignInRecord(Long id); | ||
| 28 | 15 | ||
| 29 | /** | 16 | /** |
| 30 | * 获得用户签到积分分页 | 17 | * 获得用户签到积分分页 |
| @@ -34,4 +21,5 @@ public interface MemberSignInRecordService { | @@ -34,4 +21,5 @@ public interface MemberSignInRecordService { | ||
| 34 | */ | 21 | */ |
| 35 | PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO); | 22 | PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO); |
| 36 | 23 | ||
| 24 | + | ||
| 37 | } | 25 | } |
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/signin/MemberSignInRecordServiceImpl.java
| @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | @@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; | 4 | import cn.iocoder.yudao.module.member.controller.admin.signin.vo.MemberSignInRecordPageReqVO; |
| 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; | 5 | import cn.iocoder.yudao.module.member.dal.dataobject.signin.MemberSignInRecordDO; |
| 6 | import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInRecordMapper; | 6 | import cn.iocoder.yudao.module.member.dal.mysql.signin.MemberSignInRecordMapper; |
| 7 | +import cn.iocoder.yudao.module.system.api.user.AdminUserApi; | ||
| 7 | import org.springframework.stereotype.Service; | 8 | import org.springframework.stereotype.Service; |
| 8 | import org.springframework.validation.annotation.Validated; | 9 | import org.springframework.validation.annotation.Validated; |
| 9 | 10 | ||
| @@ -23,25 +24,10 @@ public class MemberSignInRecordServiceImpl implements MemberSignInRecordService | @@ -23,25 +24,10 @@ public class MemberSignInRecordServiceImpl implements MemberSignInRecordService | ||
| 23 | 24 | ||
| 24 | @Resource | 25 | @Resource |
| 25 | private MemberSignInRecordMapper memberSignInRecordMapper; | 26 | private MemberSignInRecordMapper memberSignInRecordMapper; |
| 27 | + @Resource | ||
| 28 | + AdminUserApi adminUserApi; | ||
| 26 | 29 | ||
| 27 | - @Override | ||
| 28 | - public void deleteSignInRecord(Long id) { | ||
| 29 | - // 校验存在 | ||
| 30 | - validateSignInRecordExists(id); | ||
| 31 | - // 删除 | ||
| 32 | - memberSignInRecordMapper.deleteById(id); | ||
| 33 | - } | ||
| 34 | 30 | ||
| 35 | - private void validateSignInRecordExists(Long id) { | ||
| 36 | - if (memberSignInRecordMapper.selectById(id) == null) { | ||
| 37 | - throw exception(SIGN_IN_RECORD_NOT_EXISTS); | ||
| 38 | - } | ||
| 39 | - } | ||
| 40 | - | ||
| 41 | - @Override | ||
| 42 | - public MemberSignInRecordDO getSignInRecord(Long id) { | ||
| 43 | - return memberSignInRecordMapper.selectById(id); | ||
| 44 | - } | ||
| 45 | 31 | ||
| 46 | @Override | 32 | @Override |
| 47 | public PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO) { | 33 | public PageResult<MemberSignInRecordDO> getSignInRecordPage(MemberSignInRecordPageReqVO pageReqVO) { |
yudao-server/src/main/resources/application-local.yaml
| @@ -51,24 +51,24 @@ spring: | @@ -51,24 +51,24 @@ spring: | ||
| 51 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 | 51 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 52 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 | 52 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.master.name} # SQLServer 连接的示例 |
| 53 | username: root | 53 | username: root |
| 54 | - password: 123456 | 54 | + password: 1qaz!QAZ |
| 55 | # username: sa | 55 | # username: sa |
| 56 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W | 56 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 57 | slave: # 模拟从库,可根据自己需要修改 | 57 | slave: # 模拟从库,可根据自己需要修改 |
| 58 | name: ruoyi-vue-pro | 58 | name: ruoyi-vue-pro |
| 59 | - url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 | 59 | + url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true # MySQL Connector/J 8.X 连接的示例 |
| 60 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 | 60 | # url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT # MySQL Connector/J 5.X 连接的示例 |
| 61 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 | 61 | # url: jdbc:postgresql://127.0.0.1:5432/${spring.datasource.dynamic.datasource.slave.name} # PostgreSQL 连接的示例 |
| 62 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 | 62 | # url: jdbc:oracle:thin:@127.0.0.1:1521:xe # Oracle 连接的示例 |
| 63 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 | 63 | # url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=${spring.datasource.dynamic.datasource.slave.name} # SQLServer 连接的示例 |
| 64 | username: root | 64 | username: root |
| 65 | - password: 123456 | 65 | + password: 1qaz!QAZ |
| 66 | # username: sa | 66 | # username: sa |
| 67 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W | 67 | # password: JSm:g(*%lU4ZAkz06cd52KqT3)i1?H7W |
| 68 | 68 | ||
| 69 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 | 69 | # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优 |
| 70 | redis: | 70 | redis: |
| 71 | - host: 127.0.0.1 # 地址 | 71 | + host: 10.211.55.5 # 地址 |
| 72 | port: 6379 # 端口 | 72 | port: 6379 # 端口 |
| 73 | database: 0 # 数据库索引 | 73 | database: 0 # 数据库索引 |
| 74 | # password: dev # 密码,建议生产环境开启 | 74 | # password: dev # 密码,建议生产环境开启 |