Commit bf92727b279e534577bd527c5bc67be183df09b6

Authored by YunaiV
2 parents e4b153a8 fcca69d2

Merge branch 'master' of https://gitee.com/zhijiantianya/ruoyi-vue-pro into feature/mall_product

 Conflicts:
	yudao-module-member/yudao-module-member-biz/src/test/resources/sql/create_tables.sql
Showing 26 changed files with 192 additions and 88 deletions
.gitignore
@@ -8,6 +8,8 @@ @@ -8,6 +8,8 @@
8 target/ 8 target/
9 !.mvn/wrapper/maven-wrapper.jar 9 !.mvn/wrapper/maven-wrapper.jar
10 10
  11 +.flattened-pom.xml
  12 +
11 ###################################################################### 13 ######################################################################
12 # IDE 14 # IDE
13 15
@@ -30,13 +30,14 @@ @@ -30,13 +30,14 @@
30 <url>https://github.com/YunaiV/ruoyi-vue-pro</url> 30 <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
31 31
32 <properties> 32 <properties>
33 - <revision>1.8.0-snapshot</revision> 33 + <revision>1.8.1-snapshot</revision>
34 <!-- Maven 相关 --> 34 <!-- Maven 相关 -->
35 <java.version>1.8</java.version> 35 <java.version>1.8</java.version>
36 <maven.compiler.source>${java.version}</maven.compiler.source> 36 <maven.compiler.source>${java.version}</maven.compiler.source>
37 <maven.compiler.target>${java.version}</maven.compiler.target> 37 <maven.compiler.target>${java.version}</maven.compiler.target>
38 <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> 38 <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
39 <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> 39 <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
  40 + <flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
40 <!-- 看看咋放到 bom 里 --> 41 <!-- 看看咋放到 bom 里 -->
41 <lombok.version>1.18.28</lombok.version> 42 <lombok.version>1.18.28</lombok.version>
42 <spring.boot.version>2.7.14</spring.boot.version> 43 <spring.boot.version>2.7.14</spring.boot.version>
@@ -92,8 +93,41 @@ @@ -92,8 +93,41 @@
92 </annotationProcessorPaths> 93 </annotationProcessorPaths>
93 </configuration> 94 </configuration>
94 </plugin> 95 </plugin>
  96 + <plugin>
  97 + <groupId>org.codehaus.mojo</groupId>
  98 + <artifactId>flatten-maven-plugin</artifactId>
  99 + </plugin>
95 </plugins> 100 </plugins>
96 </pluginManagement> 101 </pluginManagement>
  102 +
  103 + <plugins>
  104 + <!-- 统一 revision 版本 -->
  105 + <plugin>
  106 + <groupId>org.codehaus.mojo</groupId>
  107 + <artifactId>flatten-maven-plugin</artifactId>
  108 + <version>${flatten-maven-plugin.version}</version>
  109 + <configuration>
  110 + <flattenMode>resolveCiFriendliesOnly</flattenMode>
  111 + <updatePomFile>true</updatePomFile>
  112 + </configuration>
  113 + <executions>
  114 + <execution>
  115 + <goals>
  116 + <goal>flatten</goal>
  117 + </goals>
  118 + <id>flatten</id>
  119 + <phase>process-resources</phase>
  120 + </execution>
  121 + <execution>
  122 + <goals>
  123 + <goal>clean</goal>
  124 + </goals>
  125 + <id>flatten.clean</id>
  126 + <phase>clean</phase>
  127 + </execution>
  128 + </executions>
  129 + </plugin>
  130 + </plugins>
97 </build> 131 </build>
98 132
99 <!-- 使用 huawei / aliyun 的 Maven 源,提升下载速度 --> 133 <!-- 使用 huawei / aliyun 的 Maven 源,提升下载速度 -->
sql/mysql/ruoyi-vue-pro.sql
@@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@
11 Target Server Version : 80034 11 Target Server Version : 80034
12 File Encoding : 65001 12 File Encoding : 65001
13 13
14 - Date: 31/08/2023 20:40:45 14 + Date: 03/09/2023 19:13:55
15 */ 15 */
16 16
17 SET NAMES utf8mb4; 17 SET NAMES utf8mb4;
@@ -715,7 +715,7 @@ CREATE TABLE `member_experience_record` ( @@ -715,7 +715,7 @@ CREATE TABLE `member_experience_record` (
715 PRIMARY KEY (`id`) USING BTREE, 715 PRIMARY KEY (`id`) USING BTREE,
716 INDEX `idx_user_id`(`user_id` ASC) USING BTREE COMMENT '会员经验记录-用户编号', 716 INDEX `idx_user_id`(`user_id` ASC) USING BTREE COMMENT '会员经验记录-用户编号',
717 INDEX `idx_user_biz_type`(`user_id` ASC, `biz_type` ASC) USING BTREE COMMENT '会员经验记录-用户业务类型' 717 INDEX `idx_user_biz_type`(`user_id` ASC, `biz_type` ASC) USING BTREE COMMENT '会员经验记录-用户业务类型'
718 -) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会员经验记录'; 718 +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会员经验记录';
719 719
720 -- ---------------------------- 720 -- ----------------------------
721 -- Records of member_experience_record 721 -- Records of member_experience_record
@@ -725,6 +725,8 @@ INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, ` @@ -725,6 +725,8 @@ INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `
725 INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 247, '0', 0, '管理员调整', '管理员调整获得100经验', -50, 100, '1', '2023-08-22 21:52:44', '1', '2023-08-22 21:52:44', b'0', 1); 725 INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (2, 247, '0', 0, '管理员调整', '管理员调整获得100经验', -50, 100, '1', '2023-08-22 21:52:44', '1', '2023-08-22 21:52:44', b'0', 1);
726 INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 247, '78', 2, '下单奖励', '下单获得 27 经验', 27, 127, NULL, '2023-08-30 18:46:52', NULL, '2023-08-30 18:46:52', b'0', 1); 726 INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 247, '78', 2, '下单奖励', '下单获得 27 经验', 27, 127, NULL, '2023-08-30 18:46:52', NULL, '2023-08-30 18:46:52', b'0', 1);
727 INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 247, 'null', 3, '退单扣除', '退单获得 -6 经验', -6, 121, NULL, '2023-08-31 19:56:21', NULL, '2023-08-31 19:56:21', b'0', 1); 727 INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 247, 'null', 3, '退单扣除', '退单获得 -6 经验', -6, 121, NULL, '2023-08-31 19:56:21', NULL, '2023-08-31 19:56:21', b'0', 1);
  728 +INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, 247, '80', 2, '下单奖励', '下单获得 699906 经验', 699906, 700027, NULL, '2023-08-31 23:43:29', NULL, '2023-08-31 23:43:29', b'0', 1);
  729 +INSERT INTO `member_experience_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `experience`, `total_experience`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, 247, '81', 2, '下单奖励', '下单获得 2799606 经验', 2799606, 3499633, NULL, '2023-08-31 23:46:17', NULL, '2023-08-31 23:46:17', b'0', 1);
728 COMMIT; 730 COMMIT;
729 731
730 -- ---------------------------- 732 -- ----------------------------
@@ -801,7 +803,7 @@ CREATE TABLE `member_level_record` ( @@ -801,7 +803,7 @@ CREATE TABLE `member_level_record` (
801 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', 803 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
802 PRIMARY KEY (`id`) USING BTREE, 804 PRIMARY KEY (`id`) USING BTREE,
803 INDEX `idx_user_id`(`user_id` ASC) USING BTREE COMMENT '会员等级记录-用户编号' 805 INDEX `idx_user_id`(`user_id` ASC) USING BTREE COMMENT '会员等级记录-用户编号'
804 -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会员等级记录'; 806 +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '会员等级记录';
805 807
806 -- ---------------------------- 808 -- ----------------------------
807 -- Records of member_level_record 809 -- Records of member_level_record
@@ -857,7 +859,7 @@ CREATE TABLE `member_point_record` ( @@ -857,7 +859,7 @@ CREATE TABLE `member_point_record` (
857 PRIMARY KEY (`id`) USING BTREE, 859 PRIMARY KEY (`id`) USING BTREE,
858 INDEX `index_userId`(`user_id` ASC) USING BTREE, 860 INDEX `index_userId`(`user_id` ASC) USING BTREE,
859 INDEX `index_title`(`title` ASC) USING BTREE 861 INDEX `index_title`(`title` ASC) USING BTREE
860 -) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户积分记录'; 862 +) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户积分记录';
861 863
862 -- ---------------------------- 864 -- ----------------------------
863 -- Records of member_point_record 865 -- Records of member_point_record
@@ -868,6 +870,8 @@ INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title @@ -868,6 +870,8 @@ INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title
868 INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 247, '12', 1, '12', NULL, -12, 12, '', '2023-07-02 14:50:55', '', '2023-08-21 14:19:29', b'0', 1); 870 INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (3, 247, '12', 1, '12', NULL, -12, 12, '', '2023-07-02 14:50:55', '', '2023-08-21 14:19:29', b'0', 1);
869 INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 247, '78', 10, '订单消费', '下单获得 81 积分', 81, 91, NULL, '2023-08-30 18:46:52', NULL, '2023-08-30 18:46:52', b'0', 1); 871 INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (4, 247, '78', 10, '订单消费', '下单获得 81 积分', 81, 91, NULL, '2023-08-30 18:46:52', NULL, '2023-08-30 18:46:52', b'0', 1);
870 INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, 247, 'null', 11, '订单取消', '退单获得 -18 积分', -18, 73, NULL, '2023-08-31 19:56:21', NULL, '2023-08-31 19:56:21', b'0', 1); 872 INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (5, 247, 'null', 11, '订单取消', '退单获得 -18 积分', -18, 73, NULL, '2023-08-31 19:56:21', NULL, '2023-08-31 19:56:21', b'0', 1);
  873 +INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (6, 247, '80', 10, '订单消费', '下单获得 2099718 积分', 2099718, 2099791, NULL, '2023-08-31 23:43:29', NULL, '2023-08-31 23:43:29', b'0', 1);
  874 +INSERT INTO `member_point_record` (`id`, `user_id`, `biz_id`, `biz_type`, `title`, `description`, `point`, `total_point`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (7, 247, '81', 10, '订单消费', '下单获得 8398818 积分', 8398818, 10498609, NULL, '2023-08-31 23:46:17', NULL, '2023-08-31 23:46:17', b'0', 1);
871 COMMIT; 875 COMMIT;
872 876
873 -- ---------------------------- 877 -- ----------------------------
@@ -1055,7 +1059,7 @@ CREATE TABLE `system_dict_data` ( @@ -1055,7 +1059,7 @@ CREATE TABLE `system_dict_data` (
1055 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', 1059 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
1056 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', 1060 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
1057 PRIMARY KEY (`id`) USING BTREE 1061 PRIMARY KEY (`id`) USING BTREE
1058 -) ENGINE = InnoDB AUTO_INCREMENT = 1358 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典数据表'; 1062 +) ENGINE = InnoDB AUTO_INCREMENT = 1359 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '字典数据表';
1059 1063
1060 -- ---------------------------- 1064 -- ----------------------------
1061 -- Records of system_dict_data 1065 -- Records of system_dict_data
@@ -1184,8 +1188,8 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st @@ -1184,8 +1188,8 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st
1184 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1166, 2, '折扣', '2', 'promotion_discount_type', 0, 'primary', '', '优惠类型 - 折扣', '1', '2022-11-01 12:46:51', '1', '2022-11-01 12:50:08', b'0'); 1188 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1166, 2, '折扣', '2', 'promotion_discount_type', 0, 'primary', '', '优惠类型 - 折扣', '1', '2022-11-01 12:46:51', '1', '2022-11-01 12:50:08', b'0');
1185 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1167, 1, '固定日期', '1', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 固定日期', '1', '2022-11-02 00:07:34', '1', '2022-11-04 00:07:49', b'0'); 1189 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1167, 1, '固定日期', '1', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 固定日期', '1', '2022-11-02 00:07:34', '1', '2022-11-04 00:07:49', b'0');
1186 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1168, 2, '领取之后', '2', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 领取之后', '1', '2022-11-02 00:07:54', '1', '2022-11-04 00:07:52', b'0'); 1190 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1168, 2, '领取之后', '2', 'promotion_coupon_template_validity_type', 0, 'default', '', '优惠劵模板的有限期类型 - 领取之后', '1', '2022-11-02 00:07:54', '1', '2022-11-04 00:07:52', b'0');
1187 -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1169, 1, '全部商品参与', '1', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 全部商品参与', '1', '2022-11-02 00:28:22', '1', '2022-11-02 00:28:22', b'0');  
1188 -INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1170, 2, '指定商品参与', '2', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 指定商品参与', '1', '2022-11-02 00:28:34', '1', '2022-11-02 00:28:40', b'0'); 1191 +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1169, 1, '通用卷', '1', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 全部商品参与', '1', '2022-11-02 00:28:22', '1', '2023-09-01 23:42:49', b'0');
  1192 +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1170, 2, '商品卷', '2', 'promotion_product_scope', 0, 'default', '', '营销的商品范围 - 指定商品参与', '1', '2022-11-02 00:28:34', '1', '2023-09-01 23:42:54', b'0');
1189 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1171, 1, '已领取', '1', 'promotion_coupon_status', 0, 'primary', '', '优惠劵的状态 - 已领取', '1', '2022-11-04 00:15:08', '1', '2022-11-04 19:16:04', b'0'); 1193 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1171, 1, '已领取', '1', 'promotion_coupon_status', 0, 'primary', '', '优惠劵的状态 - 已领取', '1', '2022-11-04 00:15:08', '1', '2022-11-04 19:16:04', b'0');
1190 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1172, 2, '已使用', '2', 'promotion_coupon_status', 0, 'success', '', '优惠劵的状态 - 已使用', '1', '2022-11-04 00:15:21', '1', '2022-11-04 19:16:08', b'0'); 1194 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1172, 2, '已使用', '2', 'promotion_coupon_status', 0, 'success', '', '优惠劵的状态 - 已使用', '1', '2022-11-04 00:15:21', '1', '2022-11-04 19:16:08', b'0');
1191 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1173, 3, '已过期', '3', 'promotion_coupon_status', 0, 'info', '', '优惠劵的状态 - 已过期', '1', '2022-11-04 00:15:43', '1', '2022-11-04 19:16:12', b'0'); 1195 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1173, 3, '已过期', '3', 'promotion_coupon_status', 0, 'info', '', '优惠劵的状态 - 已过期', '1', '2022-11-04 00:15:43', '1', '2022-11-04 19:16:12', b'0');
@@ -1280,6 +1284,7 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st @@ -1280,6 +1284,7 @@ INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `st
1280 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1355, 5, '抽奖奖励', '5', 'member_experience_biz_type', 0, '', '', NULL, '', '2023-08-22 12:41:01', '', '2023-08-22 12:41:01', b'0'); 1284 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1355, 5, '抽奖奖励', '5', 'member_experience_biz_type', 0, '', '', NULL, '', '2023-08-22 12:41:01', '', '2023-08-22 12:41:01', b'0');
1281 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1356, 1, '快递发货', '1', 'trade_delivery_type', 0, '', '', '', '1', '2023-08-23 00:04:55', '1', '2023-08-23 00:04:55', b'0'); 1285 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1356, 1, '快递发货', '1', 'trade_delivery_type', 0, '', '', '', '1', '2023-08-23 00:04:55', '1', '2023-08-23 00:04:55', b'0');
1282 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1357, 2, '用户自提', '2', 'trade_delivery_type', 0, '', '', '', '1', '2023-08-23 00:05:05', '1', '2023-08-23 00:05:05', b'0'); 1286 INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1357, 2, '用户自提', '2', 'trade_delivery_type', 0, '', '', '', '1', '2023-08-23 00:05:05', '1', '2023-08-23 00:05:05', b'0');
  1287 +INSERT INTO `system_dict_data` (`id`, `sort`, `label`, `value`, `dict_type`, `status`, `color_type`, `css_class`, `remark`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (1358, 3, '品类卷', '3', 'promotion_product_scope', 0, 'default', '', '', '1', '2023-09-01 23:43:07', '1', '2023-09-01 23:43:07', b'0');
1283 COMMIT; 1288 COMMIT;
1284 1289
1285 -- ---------------------------- 1290 -- ----------------------------
@@ -1413,7 +1418,7 @@ CREATE TABLE `system_login_log` ( @@ -1413,7 +1418,7 @@ CREATE TABLE `system_login_log` (
1413 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', 1418 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
1414 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', 1419 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
1415 PRIMARY KEY (`id`) USING BTREE 1420 PRIMARY KEY (`id`) USING BTREE
1416 -) ENGINE = InnoDB AUTO_INCREMENT = 2372 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统访问记录'; 1421 +) ENGINE = InnoDB AUTO_INCREMENT = 2375 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '系统访问记录';
1417 1422
1418 -- ---------------------------- 1423 -- ----------------------------
1419 -- Records of system_login_log 1424 -- Records of system_login_log
@@ -1543,7 +1548,7 @@ CREATE TABLE `system_menu` ( @@ -1543,7 +1548,7 @@ CREATE TABLE `system_menu` (
1543 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', 1548 `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
1544 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', 1549 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
1545 PRIMARY KEY (`id`) USING BTREE 1550 PRIMARY KEY (`id`) USING BTREE
1546 -) ENGINE = InnoDB AUTO_INCREMENT = 2341 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表'; 1551 +) ENGINE = InnoDB AUTO_INCREMENT = 2342 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '菜单权限表';
1547 1552
1548 -- ---------------------------- 1553 -- ----------------------------
1549 -- Records of system_menu 1554 -- Records of system_menu
@@ -1994,6 +1999,7 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i @@ -1994,6 +1999,7 @@ INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_i
1994 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2338, '添加自评', 'product:comment:create', 3, 2, 2336, '', '', '', '', 0, b'1', b'1', b'1', '1', '2023-08-26 11:04:23', '1', '2023-08-26 11:08:18', b'0'); 1999 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2338, '添加自评', 'product:comment:create', 3, 2, 2336, '', '', '', '', 0, b'1', b'1', b'1', '1', '2023-08-26 11:04:23', '1', '2023-08-26 11:08:18', b'0');
1995 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2339, '商家回复', 'product:comment:update', 3, 3, 2336, '', '', '', '', 0, b'1', b'1', b'1', '1', '2023-08-26 11:04:37', '1', '2023-08-26 11:04:37', b'0'); 2000 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2339, '商家回复', 'product:comment:update', 3, 3, 2336, '', '', '', '', 0, b'1', b'1', b'1', '1', '2023-08-26 11:04:37', '1', '2023-08-26 11:04:37', b'0');
1996 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2340, '显隐评论', 'product:comment:update', 3, 4, 2336, '', '', '', '', 0, b'1', b'1', b'1', '1', '2023-08-26 11:04:55', '1', '2023-08-26 11:04:55', b'0'); 2001 INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2340, '显隐评论', 'product:comment:update', 3, 4, 2336, '', '', '', '', 0, b'1', b'1', b'1', '1', '2023-08-26 11:04:55', '1', '2023-08-26 11:04:55', b'0');
  2002 +INSERT INTO `system_menu` (`id`, `name`, `permission`, `type`, `sort`, `parent_id`, `path`, `icon`, `component`, `component_name`, `status`, `visible`, `keep_alive`, `always_show`, `creator`, `create_time`, `updater`, `update_time`, `deleted`) VALUES (2341, '优惠劵发送', 'promotion:coupon:send', 3, 2, 2038, '', '', '', '', 0, b'1', b'1', b'1', '1', '2023-09-02 00:03:14', '1', '2023-09-02 00:03:14', b'0');
1997 COMMIT; 2003 COMMIT;
1998 2004
1999 -- ---------------------------- 2005 -- ----------------------------
@@ -2110,7 +2116,7 @@ CREATE TABLE `system_oauth2_access_token` ( @@ -2110,7 +2116,7 @@ CREATE TABLE `system_oauth2_access_token` (
2110 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', 2116 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
2111 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', 2117 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
2112 PRIMARY KEY (`id`) USING BTREE 2118 PRIMARY KEY (`id`) USING BTREE
2113 -) ENGINE = InnoDB AUTO_INCREMENT = 2590 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 访问令牌'; 2119 +) ENGINE = InnoDB AUTO_INCREMENT = 2597 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 访问令牌';
2114 2120
2115 -- ---------------------------- 2121 -- ----------------------------
2116 -- Records of system_oauth2_access_token 2122 -- Records of system_oauth2_access_token
@@ -2232,7 +2238,7 @@ CREATE TABLE `system_oauth2_refresh_token` ( @@ -2232,7 +2238,7 @@ CREATE TABLE `system_oauth2_refresh_token` (
2232 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', 2238 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
2233 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', 2239 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
2234 PRIMARY KEY (`id`) USING BTREE 2240 PRIMARY KEY (`id`) USING BTREE
2235 -) ENGINE = InnoDB AUTO_INCREMENT = 894 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 刷新令牌'; 2241 +) ENGINE = InnoDB AUTO_INCREMENT = 896 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'OAuth2 刷新令牌';
2236 2242
2237 -- ---------------------------- 2243 -- ----------------------------
2238 -- Records of system_oauth2_refresh_token 2244 -- Records of system_oauth2_refresh_token
@@ -2272,7 +2278,7 @@ CREATE TABLE `system_operate_log` ( @@ -2272,7 +2278,7 @@ CREATE TABLE `system_operate_log` (
2272 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除', 2278 `deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除',
2273 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号', 2279 `tenant_id` bigint NOT NULL DEFAULT 0 COMMENT '租户编号',
2274 PRIMARY KEY (`id`) USING BTREE 2280 PRIMARY KEY (`id`) USING BTREE
2275 -) ENGINE = InnoDB AUTO_INCREMENT = 8312 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志记录'; 2281 +) ENGINE = InnoDB AUTO_INCREMENT = 8321 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志记录';
2276 2282
2277 -- ---------------------------- 2283 -- ----------------------------
2278 -- Records of system_operate_log 2284 -- Records of system_operate_log
@@ -3596,7 +3602,7 @@ CREATE TABLE `system_users` ( @@ -3596,7 +3602,7 @@ CREATE TABLE `system_users` (
3596 -- Records of system_users 3602 -- Records of system_users
3597 -- ---------------------------- 3603 -- ----------------------------
3598 BEGIN; 3604 BEGIN;
3599 -INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/e1fdd7271685ec143a0900681606406621717a666ad0b2798b096df41422b32f.png', 0, '0:0:0:0:0:0:0:1', '2023-08-31 19:55:42', 'admin', '2021-01-05 17:03:47', NULL, '2023-08-31 19:55:42', b'0', 1); 3605 +INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (1, 'admin', '$2a$10$mRMIYLDtRHlf6.9ipiqH1.Z.bh/R9dO9d5iHiGYPigi6r5KOoR2Wm', '芋道源码', '管理员', 103, '[1]', 'aoteman@126.com', '15612345678', 1, 'http://test.yudao.iocoder.cn/e1fdd7271685ec143a0900681606406621717a666ad0b2798b096df41422b32f.png', 0, '0:0:0:0:0:0:0:1', '2023-09-02 00:03:37', 'admin', '2021-01-05 17:03:47', NULL, '2023-09-02 00:03:37', b'0', 1);
3600 INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', NULL, '2022-07-09 23:03:33', b'0', 1); 3606 INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (100, 'yudao', '$2a$10$11U48RhyJ5pSBYWSn12AD./ld671.ycSzJHbyrtpeoMeYiw31eo8a', '芋道', '不要吓我', 104, '[1]', 'yudao@iocoder.cn', '15601691300', 1, '', 1, '127.0.0.1', '2022-07-09 23:03:33', '', '2021-01-07 09:07:17', NULL, '2022-07-09 23:03:33', b'0', 1);
3601 INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '127.0.0.1', '2022-07-08 01:26:27', '', '2021-01-13 23:50:35', NULL, '2022-07-08 01:26:27', b'0', 1); 3607 INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (103, 'yuanma', '$2a$10$YMpimV4T6BtDhIaA8jSW.u8UTGBeGhc/qwXP4oxoMr4mOw9.qttt6', '源码', NULL, 106, NULL, 'yuanma@iocoder.cn', '15601701300', 0, '', 0, '127.0.0.1', '2022-07-08 01:26:27', '', '2021-01-13 23:50:35', NULL, '2022-07-08 01:26:27', b'0', 1);
3602 INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$10$GP8zvqHB//TekuzYZSBYAuBQJiNq1.fxQVDYJ.uBCOnWCtDVKE4H6', '测试号', NULL, 107, '[1,2]', '111@qq.com', '15601691200', 1, '', 0, '127.0.0.1', '2022-05-28 15:43:17', '', '2021-01-21 02:13:53', NULL, '2022-07-09 09:00:33', b'0', 1); 3608 INSERT INTO `system_users` (`id`, `username`, `password`, `nickname`, `remark`, `dept_id`, `post_ids`, `email`, `mobile`, `sex`, `avatar`, `status`, `login_ip`, `login_date`, `creator`, `create_time`, `updater`, `update_time`, `deleted`, `tenant_id`) VALUES (104, 'test', '$2a$10$GP8zvqHB//TekuzYZSBYAuBQJiNq1.fxQVDYJ.uBCOnWCtDVKE4H6', '测试号', NULL, 107, '[1,2]', '111@qq.com', '15601691200', 1, '', 0, '127.0.0.1', '2022-05-28 15:43:17', '', '2021-01-21 02:13:53', NULL, '2022-07-09 09:00:33', b'0', 1);
yudao-dependencies/pom.xml
@@ -14,7 +14,8 @@ @@ -14,7 +14,8 @@
14 <url>https://github.com/YunaiV/ruoyi-vue-pro</url> 14 <url>https://github.com/YunaiV/ruoyi-vue-pro</url>
15 15
16 <properties> 16 <properties>
17 - <revision>1.8.0-snapshot</revision> 17 + <revision>1.8.1-snapshot</revision>
  18 + <flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
18 <!-- 统一依赖管理 --> 19 <!-- 统一依赖管理 -->
19 <spring.boot.version>2.7.14</spring.boot.version> 20 <spring.boot.version>2.7.14</spring.boot.version>
20 <!-- Web 相关 --> 21 <!-- Web 相关 -->
@@ -645,4 +646,35 @@ @@ -645,4 +646,35 @@
645 </dependencies> 646 </dependencies>
646 </dependencyManagement> 647 </dependencyManagement>
647 648
  649 + <build>
  650 + <plugins>
  651 + <!-- 统一 revision 版本 -->
  652 + <plugin>
  653 + <groupId>org.codehaus.mojo</groupId>
  654 + <artifactId>flatten-maven-plugin</artifactId>
  655 + <version>${flatten-maven-plugin.version}</version>
  656 + <configuration>
  657 + <flattenMode>resolveCiFriendliesOnly</flattenMode>
  658 + <updatePomFile>true</updatePomFile>
  659 + </configuration>
  660 + <executions>
  661 + <execution>
  662 + <goals>
  663 + <goal>flatten</goal>
  664 + </goals>
  665 + <id>flatten</id>
  666 + <phase>process-resources</phase>
  667 + </execution>
  668 + <execution>
  669 + <goals>
  670 + <goal>clean</goal>
  671 + </goals>
  672 + <id>flatten.clean</id>
  673 + <phase>clean</phase>
  674 + </execution>
  675 + </executions>
  676 + </plugin>
  677 + </plugins>
  678 + </build>
  679 +
648 </project> 680 </project>
yudao-framework/yudao-spring-boot-starter-biz-data-permission/src/main/java/cn/iocoder/yudao/framework/datapermission/core/db/DataPermissionDatabaseInterceptor.java
@@ -5,7 +5,6 @@ import cn.iocoder.yudao.framework.common.util.collection.SetUtils; @@ -5,7 +5,6 @@ import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
5 import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule; 5 import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRule;
6 import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFactory; 6 import cn.iocoder.yudao.framework.datapermission.core.rule.DataPermissionRuleFactory;
7 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils; 7 import cn.iocoder.yudao.framework.mybatis.core.util.MyBatisUtils;
8 -import com.alibaba.ttl.TransmittableThreadLocal;  
9 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 8 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
10 import com.baomidou.mybatisplus.core.toolkit.PluginUtils; 9 import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
11 import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport; 10 import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport;
@@ -508,6 +507,9 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme @@ -508,6 +507,9 @@ public class DataPermissionDatabaseInterceptor extends JsqlParserSupport impleme
508 // 单条规则的条件 507 // 单条规则的条件
509 String tableName = MyBatisUtils.getTableName(table); 508 String tableName = MyBatisUtils.getTableName(table);
510 Expression oneExpress = rule.getExpression(tableName, table.getAlias()); 509 Expression oneExpress = rule.getExpression(tableName, table.getAlias());
  510 + if (oneExpress == null){
  511 + continue;
  512 + }
511 // 拼接到 allExpression 中 513 // 拼接到 allExpression 中
512 allExpression = allExpression == null ? oneExpress 514 allExpression = allExpression == null ? oneExpress
513 : new AndExpression(allExpression, oneExpress); 515 : new AndExpression(allExpression, oneExpress);
yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java
@@ -56,7 +56,7 @@ public abstract class AbstractWxPayClient extends AbstractPayClient&lt;WxPayClientC @@ -56,7 +56,7 @@ public abstract class AbstractWxPayClient extends AbstractPayClient&lt;WxPayClientC
56 protected void doInit(String tradeType) { 56 protected void doInit(String tradeType) {
57 // 创建 config 配置 57 // 创建 config 配置
58 WxPayConfig payConfig = new WxPayConfig(); 58 WxPayConfig payConfig = new WxPayConfig();
59 - BeanUtil.copyProperties(config, payConfig, "keyContent"); 59 + BeanUtil.copyProperties(config, payConfig, "keyContent", "privateKeyContent", "privateCertContent");
60 payConfig.setTradeType(tradeType); 60 payConfig.setTradeType(tradeType);
61 // weixin-pay-java 无法设置内容,只允许读取文件,所以这里要创建临时文件来解决 61 // weixin-pay-java 无法设置内容,只允许读取文件,所以这里要创建临时文件来解决
62 if (Base64.isBase64(config.getKeyContent())) { 62 if (Base64.isBase64(config.getKeyContent())) {
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/group/MemberGroupServiceImpl.java
@@ -32,6 +32,7 @@ public class MemberGroupServiceImpl implements MemberGroupService { @@ -32,6 +32,7 @@ public class MemberGroupServiceImpl implements MemberGroupService {
32 32
33 @Resource 33 @Resource
34 private MemberGroupMapper memberGroupMapper; 34 private MemberGroupMapper memberGroupMapper;
  35 +
35 @Resource 36 @Resource
36 private MemberUserService memberUserService; 37 private MemberUserService memberUserService;
37 38
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/level/MemberLevelServiceImpl.java
@@ -43,6 +43,7 @@ public class MemberLevelServiceImpl implements MemberLevelService { @@ -43,6 +43,7 @@ public class MemberLevelServiceImpl implements MemberLevelService {
43 43
44 @Resource 44 @Resource
45 private MemberLevelMapper memberLevelMapper; 45 private MemberLevelMapper memberLevelMapper;
  46 +
46 @Resource 47 @Resource
47 private MemberLevelRecordService memberLevelRecordService; 48 private MemberLevelRecordService memberLevelRecordService;
48 @Resource 49 @Resource
yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/tag/MemberTagServiceImpl.java
@@ -32,6 +32,7 @@ public class MemberTagServiceImpl implements MemberTagService { @@ -32,6 +32,7 @@ public class MemberTagServiceImpl implements MemberTagService {
32 32
33 @Resource 33 @Resource
34 private MemberTagMapper memberTagMapper; 34 private MemberTagMapper memberTagMapper;
  35 +
35 @Resource 36 @Resource
36 private MemberUserService memberUserService; 37 private MemberUserService memberUserService;
37 38
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/group/MemberGroupServiceImplTest.java
1 package cn.iocoder.yudao.module.member.service.group; 1 package cn.iocoder.yudao.module.member.service.group;
2 2
3 -import cn.hutool.core.util.RandomUtil;  
4 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
5 import cn.iocoder.yudao.framework.common.pojo.PageResult; 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
@@ -8,11 +7,10 @@ import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupCreat @@ -8,11 +7,10 @@ import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupCreat
8 import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageReqVO; 7 import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupPageReqVO;
9 import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUpdateReqVO; 8 import cn.iocoder.yudao.module.member.controller.admin.group.vo.MemberGroupUpdateReqVO;
10 import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO; 9 import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO;
11 -import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;  
12 import cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper; 10 import cn.iocoder.yudao.module.member.dal.mysql.group.MemberGroupMapper;
13 -import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;  
14 -import cn.iocoder.yudao.module.system.enums.common.SexEnum; 11 +import cn.iocoder.yudao.module.member.service.user.MemberUserService;
15 import org.junit.jupiter.api.Test; 12 import org.junit.jupiter.api.Test;
  13 +import org.springframework.boot.test.mock.mockito.MockBean;
16 import org.springframework.context.annotation.Import; 14 import org.springframework.context.annotation.Import;
17 15
18 import javax.annotation.Resource; 16 import javax.annotation.Resource;
@@ -26,7 +24,10 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*; @@ -26,7 +24,10 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
26 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.GROUP_HAS_USER; 24 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.GROUP_HAS_USER;
27 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.GROUP_NOT_EXISTS; 25 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.GROUP_NOT_EXISTS;
28 import static org.junit.jupiter.api.Assertions.*; 26 import static org.junit.jupiter.api.Assertions.*;
  27 +import static org.mockito.ArgumentMatchers.eq;
  28 +import static org.mockito.Mockito.when;
29 29
  30 +// TODO 芋艿:完全 review 完,在去 review 单测
30 /** 31 /**
31 * {@link MemberGroupServiceImpl} 的单元测试类 32 * {@link MemberGroupServiceImpl} 的单元测试类
32 * 33 *
@@ -40,13 +41,15 @@ public class MemberGroupServiceImplTest extends BaseDbUnitTest { @@ -40,13 +41,15 @@ public class MemberGroupServiceImplTest extends BaseDbUnitTest {
40 41
41 @Resource 42 @Resource
42 private MemberGroupMapper groupMapper; 43 private MemberGroupMapper groupMapper;
43 - @Resource  
44 - private MemberUserMapper memberUserMapper; 44 +
  45 + @MockBean
  46 + private MemberUserService memberUserService;
45 47
46 @Test 48 @Test
47 public void testCreateGroup_success() { 49 public void testCreateGroup_success() {
48 // 准备参数 50 // 准备参数
49 - MemberGroupCreateReqVO reqVO = randomPojo(MemberGroupCreateReqVO.class); 51 + MemberGroupCreateReqVO reqVO = randomPojo(MemberGroupCreateReqVO.class,
  52 + o -> o.setStatus(randomCommonStatus()));
50 53
51 // 调用 54 // 调用
52 Long groupId = groupService.createGroup(reqVO); 55 Long groupId = groupService.createGroup(reqVO);
@@ -65,6 +68,7 @@ public class MemberGroupServiceImplTest extends BaseDbUnitTest { @@ -65,6 +68,7 @@ public class MemberGroupServiceImplTest extends BaseDbUnitTest {
65 // 准备参数 68 // 准备参数
66 MemberGroupUpdateReqVO reqVO = randomPojo(MemberGroupUpdateReqVO.class, o -> { 69 MemberGroupUpdateReqVO reqVO = randomPojo(MemberGroupUpdateReqVO.class, o -> {
67 o.setId(dbGroup.getId()); // 设置更新的 ID 70 o.setId(dbGroup.getId()); // 设置更新的 ID
  71 + o.setStatus(randomCommonStatus());
68 }); 72 });
69 73
70 // 调用 74 // 调用
@@ -115,11 +119,7 @@ public class MemberGroupServiceImplTest extends BaseDbUnitTest { @@ -115,11 +119,7 @@ public class MemberGroupServiceImplTest extends BaseDbUnitTest {
115 Long id = dbGroup.getId(); 119 Long id = dbGroup.getId();
116 120
117 // mock 会员数据 121 // mock 会员数据
118 - MemberUserDO dbUser = randomPojo(MemberUserDO.class, o -> {  
119 - o.setGroupId(id);  
120 - o.setSex(RandomUtil.randomEle(SexEnum.values()).getSex());  
121 - });  
122 - memberUserMapper.insert(dbUser); 122 + when(memberUserService.getUserCountByGroupId(eq(id))).thenReturn(1L);
123 123
124 // 调用, 并断言异常 124 // 调用, 并断言异常
125 assertServiceException(() -> groupService.deleteGroup(id), GROUP_HAS_USER); 125 assertServiceException(() -> groupService.deleteGroup(id), GROUP_HAS_USER);
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/level/MemberLevelServiceImplTest.java
1 package cn.iocoder.yudao.module.member.service.level; 1 package cn.iocoder.yudao.module.member.service.level;
2 2
3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; 3 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
4 -import cn.iocoder.yudao.framework.common.pojo.PageResult;  
5 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils; 4 import cn.iocoder.yudao.framework.common.util.collection.ArrayUtils;
6 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest; 5 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
7 import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelCreateReqVO; 6 import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelCreateReqVO;
@@ -9,6 +8,7 @@ import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLeve @@ -9,6 +8,7 @@ import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLeve
9 import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelUpdateReqVO; 8 import cn.iocoder.yudao.module.member.controller.admin.level.vo.level.MemberLevelUpdateReqVO;
10 import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO; 9 import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
11 import cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper; 10 import cn.iocoder.yudao.module.member.dal.mysql.level.MemberLevelMapper;
  11 +import cn.iocoder.yudao.module.member.service.user.MemberUserService;
12 import org.junit.jupiter.api.Test; 12 import org.junit.jupiter.api.Test;
13 import org.springframework.boot.test.mock.mockito.MockBean; 13 import org.springframework.boot.test.mock.mockito.MockBean;
14 import org.springframework.context.annotation.Import; 14 import org.springframework.context.annotation.Import;
@@ -38,12 +38,14 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -38,12 +38,14 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
38 private MemberLevelServiceImpl levelService; 38 private MemberLevelServiceImpl levelService;
39 39
40 @Resource 40 @Resource
41 - private MemberLevelMapper levelMapper; 41 + private MemberLevelMapper memberlevelMapper;
42 42
43 @MockBean 43 @MockBean
44 private MemberLevelRecordService memberLevelRecordService; 44 private MemberLevelRecordService memberLevelRecordService;
45 @MockBean 45 @MockBean
46 private MemberExperienceRecordService memberExperienceRecordService; 46 private MemberExperienceRecordService memberExperienceRecordService;
  47 + @MockBean
  48 + private MemberUserService memberUserService;
47 49
48 @Test 50 @Test
49 public void testCreateLevel_success() { 51 public void testCreateLevel_success() {
@@ -52,6 +54,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -52,6 +54,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
52 o.setDiscountPercent(randomInt()); 54 o.setDiscountPercent(randomInt());
53 o.setIcon(randomURL()); 55 o.setIcon(randomURL());
54 o.setBackgroundUrl(randomURL()); 56 o.setBackgroundUrl(randomURL());
  57 + o.setStatus(randomCommonStatus());
55 }); 58 });
56 59
57 // 调用 60 // 调用
@@ -59,7 +62,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -59,7 +62,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
59 // 断言 62 // 断言
60 assertNotNull(levelId); 63 assertNotNull(levelId);
61 // 校验记录的属性是否正确 64 // 校验记录的属性是否正确
62 - MemberLevelDO level = levelMapper.selectById(levelId); 65 + MemberLevelDO level = memberlevelMapper.selectById(levelId);
63 assertPojoEquals(reqVO, level); 66 assertPojoEquals(reqVO, level);
64 } 67 }
65 68
@@ -67,7 +70,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -67,7 +70,7 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
67 public void testUpdateLevel_success() { 70 public void testUpdateLevel_success() {
68 // mock 数据 71 // mock 数据
69 MemberLevelDO dbLevel = randomPojo(MemberLevelDO.class); 72 MemberLevelDO dbLevel = randomPojo(MemberLevelDO.class);
70 - levelMapper.insert(dbLevel);// @Sql: 先插入出一条存在的数据 73 + memberlevelMapper.insert(dbLevel);// @Sql: 先插入出一条存在的数据
71 // 准备参数 74 // 准备参数
72 MemberLevelUpdateReqVO reqVO = randomPojo(MemberLevelUpdateReqVO.class, o -> { 75 MemberLevelUpdateReqVO reqVO = randomPojo(MemberLevelUpdateReqVO.class, o -> {
73 o.setId(dbLevel.getId()); // 设置更新的 ID 76 o.setId(dbLevel.getId()); // 设置更新的 ID
@@ -79,12 +82,13 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -79,12 +82,13 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
79 o.setDiscountPercent(randomInt()); 82 o.setDiscountPercent(randomInt());
80 o.setIcon(randomURL()); 83 o.setIcon(randomURL());
81 o.setBackgroundUrl(randomURL()); 84 o.setBackgroundUrl(randomURL());
  85 + o.setStatus(randomCommonStatus());
82 }); 86 });
83 87
84 // 调用 88 // 调用
85 levelService.updateLevel(reqVO); 89 levelService.updateLevel(reqVO);
86 // 校验是否更新正确 90 // 校验是否更新正确
87 - MemberLevelDO level = levelMapper.selectById(reqVO.getId()); // 获取最新的 91 + MemberLevelDO level = memberlevelMapper.selectById(reqVO.getId()); // 获取最新的
88 assertPojoEquals(reqVO, level); 92 assertPojoEquals(reqVO, level);
89 } 93 }
90 94
@@ -101,14 +105,14 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -101,14 +105,14 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
101 public void testDeleteLevel_success() { 105 public void testDeleteLevel_success() {
102 // mock 数据 106 // mock 数据
103 MemberLevelDO dbLevel = randomPojo(MemberLevelDO.class); 107 MemberLevelDO dbLevel = randomPojo(MemberLevelDO.class);
104 - levelMapper.insert(dbLevel);// @Sql: 先插入出一条存在的数据 108 + memberlevelMapper.insert(dbLevel);// @Sql: 先插入出一条存在的数据
105 // 准备参数 109 // 准备参数
106 Long id = dbLevel.getId(); 110 Long id = dbLevel.getId();
107 111
108 // 调用 112 // 调用
109 levelService.deleteLevel(id); 113 levelService.deleteLevel(id);
110 // 校验数据不存在了 114 // 校验数据不存在了
111 - assertNull(levelMapper.selectById(id)); 115 + assertNull(memberlevelMapper.selectById(id));
112 } 116 }
113 117
114 @Test 118 @Test
@@ -127,11 +131,11 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -127,11 +131,11 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
127 o.setName("黄金会员"); 131 o.setName("黄金会员");
128 o.setStatus(1); 132 o.setStatus(1);
129 }); 133 });
130 - levelMapper.insert(dbLevel); 134 + memberlevelMapper.insert(dbLevel);
131 // 测试 name 不匹配 135 // 测试 name 不匹配
132 - levelMapper.insert(cloneIgnoreId(dbLevel, o -> o.setName(""))); 136 + memberlevelMapper.insert(cloneIgnoreId(dbLevel, o -> o.setName("")));
133 // 测试 status 不匹配 137 // 测试 status 不匹配
134 - levelMapper.insert(cloneIgnoreId(dbLevel, o -> o.setStatus(0))); 138 + memberlevelMapper.insert(cloneIgnoreId(dbLevel, o -> o.setStatus(0)));
135 // 准备参数 139 // 准备参数
136 MemberLevelListReqVO reqVO = new MemberLevelListReqVO(); 140 MemberLevelListReqVO reqVO = new MemberLevelListReqVO();
137 reqVO.setName("黄金会员"); 141 reqVO.setName("黄金会员");
@@ -150,10 +154,10 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -150,10 +154,10 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
150 String name = randomString(); 154 String name = randomString();
151 155
152 // mock 数据 156 // mock 数据
153 - levelMapper.insert(randomLevelDO(o -> o.setName(name))); 157 + memberlevelMapper.insert(randomLevelDO(o -> o.setName(name)));
154 158
155 // 调用,校验异常 159 // 调用,校验异常
156 - List<MemberLevelDO> list = levelMapper.selectList(); 160 + List<MemberLevelDO> list = memberlevelMapper.selectList();
157 assertServiceException(() -> levelService.validateNameUnique(list, null, name), LEVEL_NAME_EXISTS, name); 161 assertServiceException(() -> levelService.validateNameUnique(list, null, name), LEVEL_NAME_EXISTS, name);
158 } 162 }
159 163
@@ -164,10 +168,10 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -164,10 +168,10 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
164 String name = randomString(); 168 String name = randomString();
165 169
166 // mock 数据 170 // mock 数据
167 - levelMapper.insert(randomLevelDO(o -> o.setName(name))); 171 + memberlevelMapper.insert(randomLevelDO(o -> o.setName(name)));
168 172
169 // 调用,校验异常 173 // 调用,校验异常
170 - List<MemberLevelDO> list = levelMapper.selectList(); 174 + List<MemberLevelDO> list = memberlevelMapper.selectList();
171 assertServiceException(() -> levelService.validateNameUnique(list, id, name), LEVEL_NAME_EXISTS, name); 175 assertServiceException(() -> levelService.validateNameUnique(list, id, name), LEVEL_NAME_EXISTS, name);
172 } 176 }
173 177
@@ -178,13 +182,13 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -178,13 +182,13 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
178 String name = randomString(); 182 String name = randomString();
179 183
180 // mock 数据 184 // mock 数据
181 - levelMapper.insert(randomLevelDO(o -> { 185 + memberlevelMapper.insert(randomLevelDO(o -> {
182 o.setLevel(level); 186 o.setLevel(level);
183 o.setName(name); 187 o.setName(name);
184 })); 188 }));
185 189
186 // 调用,校验异常 190 // 调用,校验异常
187 - List<MemberLevelDO> list = levelMapper.selectList(); 191 + List<MemberLevelDO> list = memberlevelMapper.selectList();
188 assertServiceException(() -> levelService.validateLevelUnique(list, null, level), LEVEL_VALUE_EXISTS, level, name); 192 assertServiceException(() -> levelService.validateLevelUnique(list, null, level), LEVEL_VALUE_EXISTS, level, name);
189 } 193 }
190 194
@@ -196,13 +200,13 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -196,13 +200,13 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
196 String name = randomString(); 200 String name = randomString();
197 201
198 // mock 数据 202 // mock 数据
199 - levelMapper.insert(randomLevelDO(o -> { 203 + memberlevelMapper.insert(randomLevelDO(o -> {
200 o.setLevel(level); 204 o.setLevel(level);
201 o.setName(name); 205 o.setName(name);
202 })); 206 }));
203 207
204 // 调用,校验异常 208 // 调用,校验异常
205 - List<MemberLevelDO> list = levelMapper.selectList(); 209 + List<MemberLevelDO> list = memberlevelMapper.selectList();
206 assertServiceException(() -> levelService.validateLevelUnique(list, id, level), LEVEL_VALUE_EXISTS, level, name); 210 assertServiceException(() -> levelService.validateLevelUnique(list, id, level), LEVEL_VALUE_EXISTS, level, name);
207 } 211 }
208 212
@@ -214,12 +218,12 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -214,12 +218,12 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
214 String name = randomString(); 218 String name = randomString();
215 219
216 // mock 数据 220 // mock 数据
217 - levelMapper.insert(randomLevelDO(o -> { 221 + memberlevelMapper.insert(randomLevelDO(o -> {
218 o.setLevel(level); 222 o.setLevel(level);
219 o.setExperience(experience); 223 o.setExperience(experience);
220 o.setName(name); 224 o.setName(name);
221 })); 225 }));
222 - List<MemberLevelDO> list = levelMapper.selectList(); 226 + List<MemberLevelDO> list = memberlevelMapper.selectList();
223 227
224 // 调用,校验异常 228 // 调用,校验异常
225 assertServiceException(() -> levelService.validateExperienceOutRange(list, null, level + 1, experience - 1), LEVEL_EXPERIENCE_MIN, name, level); 229 assertServiceException(() -> levelService.validateExperienceOutRange(list, null, level + 1, experience - 1), LEVEL_EXPERIENCE_MIN, name, level);
@@ -236,12 +240,12 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest { @@ -236,12 +240,12 @@ public class MemberLevelServiceImplTest extends BaseDbUnitTest {
236 String name = randomString(); 240 String name = randomString();
237 241
238 // mock 数据 242 // mock 数据
239 - levelMapper.insert(randomLevelDO(o -> { 243 + memberlevelMapper.insert(randomLevelDO(o -> {
240 o.setLevel(level); 244 o.setLevel(level);
241 o.setExperience(experience); 245 o.setExperience(experience);
242 o.setName(name); 246 o.setName(name);
243 })); 247 }));
244 - List<MemberLevelDO> list = levelMapper.selectList(); 248 + List<MemberLevelDO> list = memberlevelMapper.selectList();
245 249
246 // 调用,校验异常 250 // 调用,校验异常
247 assertServiceException(() -> levelService.validateExperienceOutRange(list, id, level + 1, experience - 1), LEVEL_EXPERIENCE_MIN, name, level); 251 assertServiceException(() -> levelService.validateExperienceOutRange(list, id, level + 1, experience - 1), LEVEL_EXPERIENCE_MIN, name, level);
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/tag/MemberTagServiceImplTest.java
@@ -7,7 +7,9 @@ import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagPageReqVO @@ -7,7 +7,9 @@ import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagPageReqVO
7 import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagUpdateReqVO; 7 import cn.iocoder.yudao.module.member.controller.admin.tag.vo.MemberTagUpdateReqVO;
8 import cn.iocoder.yudao.module.member.dal.dataobject.tag.MemberTagDO; 8 import cn.iocoder.yudao.module.member.dal.dataobject.tag.MemberTagDO;
9 import cn.iocoder.yudao.module.member.dal.mysql.tag.MemberTagMapper; 9 import cn.iocoder.yudao.module.member.dal.mysql.tag.MemberTagMapper;
  10 +import cn.iocoder.yudao.module.member.service.user.MemberUserService;
10 import org.junit.jupiter.api.Test; 11 import org.junit.jupiter.api.Test;
  12 +import org.springframework.boot.test.mock.mockito.MockBean;
11 import org.springframework.context.annotation.Import; 13 import org.springframework.context.annotation.Import;
12 14
13 import javax.annotation.Resource; 15 import javax.annotation.Resource;
@@ -22,6 +24,7 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo; @@ -22,6 +24,7 @@ import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.randomPojo;
22 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.TAG_NOT_EXISTS; 24 import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.TAG_NOT_EXISTS;
23 import static org.junit.jupiter.api.Assertions.*; 25 import static org.junit.jupiter.api.Assertions.*;
24 26
  27 +// TODO 芋艿:完全 review 完,在去 review 单测
25 /** 28 /**
26 * {@link MemberTagServiceImpl} 的单元测试类 29 * {@link MemberTagServiceImpl} 的单元测试类
27 * 30 *
@@ -36,6 +39,9 @@ public class MemberTagServiceImplTest extends BaseDbUnitTest { @@ -36,6 +39,9 @@ public class MemberTagServiceImplTest extends BaseDbUnitTest {
36 @Resource 39 @Resource
37 private MemberTagMapper tagMapper; 40 private MemberTagMapper tagMapper;
38 41
  42 + @MockBean
  43 + private MemberUserService memberUserService;
  44 +
39 @Test 45 @Test
40 public void testCreateTag_success() { 46 public void testCreateTag_success() {
41 // 准备参数 47 // 准备参数
yudao-module-member/yudao-module-member-biz/src/test/java/cn/iocoder/yudao/module/member/service/user/MemberUserServiceImplTest.java
@@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; @@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
11 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper; 11 import cn.iocoder.yudao.module.member.dal.mysql.user.MemberUserMapper;
12 import cn.iocoder.yudao.module.member.service.auth.MemberAuthServiceImpl; 12 import cn.iocoder.yudao.module.member.service.auth.MemberAuthServiceImpl;
13 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi; 13 import cn.iocoder.yudao.module.system.api.sms.SmsCodeApi;
  14 +import org.junit.jupiter.api.Disabled;
14 import org.junit.jupiter.api.Test; 15 import org.junit.jupiter.api.Test;
15 import org.springframework.boot.test.mock.mockito.MockBean; 16 import org.springframework.boot.test.mock.mockito.MockBean;
16 import org.springframework.context.annotation.Import; 17 import org.springframework.context.annotation.Import;
@@ -92,6 +93,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest { @@ -92,6 +93,7 @@ public class MemberUserServiceImplTest extends BaseDbAndRedisUnitTest {
92 // } 93 // }
93 94
94 @Test 95 @Test
  96 + @Disabled // TODO 芋艿:后续再修复
95 public void updateMobile_success(){ 97 public void updateMobile_success(){
96 // mock数据 98 // mock数据
97 String oldMobile = randomNumbers(11); 99 String oldMobile = randomNumbers(11);
yudao-module-member/yudao-module-member-biz/src/test/resources/sql/create_tables.sql
@@ -63,7 +63,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_level&quot; @@ -63,7 +63,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_level&quot;
63 "name" varchar NOT NULL, 63 "name" varchar NOT NULL,
64 "experience" int NOT NULL, 64 "experience" int NOT NULL,
65 "level" int NOT NULL, 65 "level" int NOT NULL,
66 - "discount" int NOT NULL, 66 + "discount_percent" int NOT NULL,
67 "icon" varchar NOT NULL, 67 "icon" varchar NOT NULL,
68 "background_url" varchar NOT NULL, 68 "background_url" varchar NOT NULL,
69 "creator" varchar DEFAULT '', 69 "creator" varchar DEFAULT '',
@@ -72,7 +72,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_level&quot; @@ -72,7 +72,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_level&quot;
72 "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 72 "update_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
73 "deleted" bit NOT NULL DEFAULT FALSE, 73 "deleted" bit NOT NULL DEFAULT FALSE,
74 "tenant_id" bigint not null default '0', 74 "tenant_id" bigint not null default '0',
75 - "status" int NOT NULL, 75 + "status" tinyint NOT NULL DEFAULT '0',
76 PRIMARY KEY ("id") 76 PRIMARY KEY ("id")
77 ) COMMENT '会员等级'; 77 ) COMMENT '会员等级';
78 78
@@ -81,7 +81,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_group&quot; @@ -81,7 +81,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_group&quot;
81 "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, 81 "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY,
82 "name" varchar NOT NULL, 82 "name" varchar NOT NULL,
83 "remark" varchar NOT NULL, 83 "remark" varchar NOT NULL,
84 - "status" varchar NOT NULL, 84 + "status" tinyint NOT NULL DEFAULT '0',
85 "creator" varchar DEFAULT '', 85 "creator" varchar DEFAULT '',
86 "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, 86 "create_time" datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
87 "updater" varchar DEFAULT '', 87 "updater" varchar DEFAULT '',
@@ -90,6 +90,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_group&quot; @@ -90,6 +90,7 @@ CREATE TABLE IF NOT EXISTS &quot;member_group&quot;
90 "tenant_id" bigint not null default '0', 90 "tenant_id" bigint not null default '0',
91 PRIMARY KEY ("id") 91 PRIMARY KEY ("id")
92 ) COMMENT '用户分组'; 92 ) COMMENT '用户分组';
  93 +
93 CREATE TABLE IF NOT EXISTS "member_brokerage_record" 94 CREATE TABLE IF NOT EXISTS "member_brokerage_record"
94 ( 95 (
95 "id" int NOT NULL GENERATED BY DEFAULT AS IDENTITY, 96 "id" int NOT NULL GENERATED BY DEFAULT AS IDENTITY,
@@ -110,4 +111,4 @@ CREATE TABLE IF NOT EXISTS &quot;member_brokerage_record&quot; @@ -110,4 +111,4 @@ CREATE TABLE IF NOT EXISTS &quot;member_brokerage_record&quot;
110 "deleted" bit NOT NULL DEFAULT FALSE, 111 "deleted" bit NOT NULL DEFAULT FALSE,
111 "tenant_id" bigint not null default '0', 112 "tenant_id" bigint not null default '0',
112 PRIMARY KEY ("id") 113 PRIMARY KEY ("id")
113 -) COMMENT '佣金记录';  
114 \ No newline at end of file 114 \ No newline at end of file
  115 +) COMMENT '佣金记录';
yudao-module-mp/yudao-module-mp-biz/src/main/java/cn/iocoder/yudao/module/mp/convert/menu/MpMenuConvert.java
@@ -40,6 +40,8 @@ public interface MpMenuConvert { @@ -40,6 +40,8 @@ public interface MpMenuConvert {
40 @Mappings({ 40 @Mappings({
41 @Mapping(source = "menuKey", target = "key"), 41 @Mapping(source = "menuKey", target = "key"),
42 @Mapping(source = "children", target = "subButtons"), 42 @Mapping(source = "children", target = "subButtons"),
  43 + @Mapping(source = "miniProgramAppId", target = "appId"),
  44 + @Mapping(source = "miniProgramPagePath", target = "pagePath"),
43 }) 45 })
44 WxMenuButton convert(MpMenuSaveReqVO.Menu bean); 46 WxMenuButton convert(MpMenuSaveReqVO.Menu bean);
45 47
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java
@@ -345,7 +345,8 @@ public class PayOrderServiceImpl implements PayOrderService { @@ -345,7 +345,8 @@ public class PayOrderServiceImpl implements PayOrderService {
345 .channelId(channel.getId()).channelCode(channel.getCode()) 345 .channelId(channel.getId()).channelCode(channel.getCode())
346 .successTime(notify.getSuccessTime()).extensionId(orderExtension.getId()).no(orderExtension.getNo()) 346 .successTime(notify.getSuccessTime()).extensionId(orderExtension.getId()).no(orderExtension.getNo())
347 .channelOrderNo(notify.getChannelOrderNo()).channelUserId(notify.getChannelUserId()) 347 .channelOrderNo(notify.getChannelOrderNo()).channelUserId(notify.getChannelUserId())
348 - .channelFeeRate(channel.getFeeRate()).channelFeePrice(MoneyUtils.calculateRatePrice(order.getPrice(), channel.getFeeRate())) 348 + .channelFeeRate(channel.getFeeRate())
  349 + .channelFeePrice(MoneyUtils.calculateRatePrice(order.getPrice(), channel.getFeeRate()))
349 .build()); 350 .build());
350 if (updateCounts == 0) { // 校验状态,必须是待支付 351 if (updateCounts == 0) { // 校验状态,必须是待支付
351 throw exception(ORDER_STATUS_IS_NOT_WAITING); 352 throw exception(ORDER_STATUS_IS_NOT_WAITING);
yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/util/MoneyUtils.java
1 package cn.iocoder.yudao.module.pay.util; 1 package cn.iocoder.yudao.module.pay.util;
2 2
  3 +import cn.hutool.core.util.NumberUtil;
  4 +
3 import java.math.BigDecimal; 5 import java.math.BigDecimal;
4 import java.math.RoundingMode; 6 import java.math.RoundingMode;
5 7
@@ -18,10 +20,20 @@ public class MoneyUtils { @@ -18,10 +20,20 @@ public class MoneyUtils {
18 * @return 百分比金额 20 * @return 百分比金额
19 */ 21 */
20 public static Integer calculateRatePrice(Integer price, Double rate) { 22 public static Integer calculateRatePrice(Integer price, Double rate) {
21 - return new BigDecimal(price)  
22 - .multiply(BigDecimal.valueOf(rate)) // 乘以  
23 - .setScale(0, RoundingMode.HALF_UP) // 四舍五入  
24 - .intValue(); 23 + return calculateRatePrice(price, rate, 0, RoundingMode.HALF_UP).intValue();
25 } 24 }
26 25
  26 + /**
  27 + * 计算百分比金额
  28 + *
  29 + * @param price 金额
  30 + * @param rate 百分比,例如说 56.77% 则传入 56.77
  31 + * @param scale 保留小数位数
  32 + * @param roundingMode 舍入模式
  33 + */
  34 + public static BigDecimal calculateRatePrice(Number price, Number rate, int scale, RoundingMode roundingMode) {
  35 + return NumberUtil.toBigDecimal(price).multiply(NumberUtil.toBigDecimal(rate)) // 乘以
  36 + .divide(BigDecimal.valueOf(100), scale, roundingMode); // 除以 100
  37 + }
  38 +
27 } 39 }
yudao-module-system/yudao-module-system-biz/src/test/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImplTest.java
@@ -197,7 +197,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest { @@ -197,7 +197,7 @@ public class TenantServiceImplTest extends BaseDbUnitTest {
197 role100.setTenantId(dbTenant.getId()); 197 role100.setTenantId(dbTenant.getId());
198 RoleDO role101 = randomPojo(RoleDO.class, o -> o.setId(101L)); 198 RoleDO role101 = randomPojo(RoleDO.class, o -> o.setId(101L));
199 role101.setTenantId(dbTenant.getId()); 199 role101.setTenantId(dbTenant.getId());
200 - when(roleService.getRoleListByStatus(isNull())).thenReturn(asList(role100, role101)); 200 + when(roleService.getRoleList()).thenReturn(asList(role100, role101));
201 // mock 每个角色的权限 201 // mock 每个角色的权限
202 when(permissionService.getRoleMenuListByRoleId(eq(101L))).thenReturn(asSet(201L, 202L)); 202 when(permissionService.getRoleMenuListByRoleId(eq(101L))).thenReturn(asSet(201L, 202L));
203 203
yudao-server/pom.xml
@@ -111,10 +111,7 @@ @@ -111,10 +111,7 @@
111 <plugin> 111 <plugin>
112 <groupId>org.springframework.boot</groupId> 112 <groupId>org.springframework.boot</groupId>
113 <artifactId>spring-boot-maven-plugin</artifactId> 113 <artifactId>spring-boot-maven-plugin</artifactId>
114 - <version>2.7.14</version> <!-- 如果 spring.boot.version 版本修改,则这里也要跟着修改 -->  
115 - <configuration>  
116 - <fork>true</fork>  
117 - </configuration> 114 + <version>${spring.boot.version}</version>
118 <executions> 115 <executions>
119 <execution> 116 <execution>
120 <goals> 117 <goals>
yudao-ui-admin/src/components/Crontab/day.vue
@@ -103,25 +103,25 @@ export default { @@ -103,25 +103,25 @@ export default {
103 }, 103 },
104 // 周期两个值变化时 104 // 周期两个值变化时
105 cycleChange() { 105 cycleChange() {
106 - if (this.radioValue === '3') { 106 + if (this.radioValue === 3) {
107 this.$emit('update', 'day', this.cycleTotal); 107 this.$emit('update', 'day', this.cycleTotal);
108 } 108 }
109 }, 109 },
110 // 平均两个值变化时 110 // 平均两个值变化时
111 averageChange() { 111 averageChange() {
112 - if (this.radioValue === '4') { 112 + if (this.radioValue === 4) {
113 this.$emit('update', 'day', this.averageTotal); 113 this.$emit('update', 'day', this.averageTotal);
114 } 114 }
115 }, 115 },
116 // 最近工作日值变化时 116 // 最近工作日值变化时
117 workdayChange() { 117 workdayChange() {
118 - if (this.radioValue === '5') { 118 + if (this.radioValue === 5) {
119 this.$emit('update', 'day', this.workdayCheck + 'W'); 119 this.$emit('update', 'day', this.workdayCheck + 'W');
120 } 120 }
121 }, 121 },
122 // checkbox值变化时 122 // checkbox值变化时
123 checkboxChange() { 123 checkboxChange() {
124 - if (this.radioValue === '7') { 124 + if (this.radioValue === 7) {
125 this.$emit('update', 'day', this.checkboxString); 125 this.$emit('update', 'day', this.checkboxString);
126 } 126 }
127 } 127 }
yudao-ui-admin/src/components/Crontab/hour.vue
@@ -68,19 +68,19 @@ export default { @@ -68,19 +68,19 @@ export default {
68 }, 68 },
69 // 周期两个值变化时 69 // 周期两个值变化时
70 cycleChange() { 70 cycleChange() {
71 - if (this.radioValue === '2') { 71 + if (this.radioValue === 2) {
72 this.$emit('update', 'hour', this.cycleTotal); 72 this.$emit('update', 'hour', this.cycleTotal);
73 } 73 }
74 }, 74 },
75 // 平均两个值变化时 75 // 平均两个值变化时
76 averageChange() { 76 averageChange() {
77 - if (this.radioValue === '3') { 77 + if (this.radioValue === 3) {
78 this.$emit('update', 'hour', this.averageTotal); 78 this.$emit('update', 'hour', this.averageTotal);
79 } 79 }
80 }, 80 },
81 // checkbox值变化时 81 // checkbox值变化时
82 checkboxChange() { 82 checkboxChange() {
83 - if (this.radioValue === '4') { 83 + if (this.radioValue === 4) {
84 this.$emit('update', 'hour', this.checkboxString); 84 this.$emit('update', 'hour', this.checkboxString);
85 } 85 }
86 } 86 }
yudao-ui-admin/src/components/Crontab/min.vue
@@ -69,19 +69,19 @@ export default { @@ -69,19 +69,19 @@ export default {
69 }, 69 },
70 // 周期两个值变化时 70 // 周期两个值变化时
71 cycleChange() { 71 cycleChange() {
72 - if (this.radioValue === '2') { 72 + if (this.radioValue === 2) {
73 this.$emit('update', 'min', this.cycleTotal, 'min'); 73 this.$emit('update', 'min', this.cycleTotal, 'min');
74 } 74 }
75 }, 75 },
76 // 平均两个值变化时 76 // 平均两个值变化时
77 averageChange() { 77 averageChange() {
78 - if (this.radioValue === '3') { 78 + if (this.radioValue === 3) {
79 this.$emit('update', 'min', this.averageTotal, 'min'); 79 this.$emit('update', 'min', this.averageTotal, 'min');
80 } 80 }
81 }, 81 },
82 // checkbox值变化时 82 // checkbox值变化时
83 checkboxChange() { 83 checkboxChange() {
84 - if (this.radioValue === '4') { 84 + if (this.radioValue === 4) {
85 this.$emit('update', 'min', this.checkboxString, 'min'); 85 this.$emit('update', 'min', this.checkboxString, 'min');
86 } 86 }
87 }, 87 },
yudao-ui-admin/src/components/Crontab/month.vue
@@ -68,19 +68,19 @@ export default { @@ -68,19 +68,19 @@ export default {
68 }, 68 },
69 // 周期两个值变化时 69 // 周期两个值变化时
70 cycleChange() { 70 cycleChange() {
71 - if (this.radioValue === '2') { 71 + if (this.radioValue === 2) {
72 this.$emit('update', 'month', this.cycleTotal); 72 this.$emit('update', 'month', this.cycleTotal);
73 } 73 }
74 }, 74 },
75 // 平均两个值变化时 75 // 平均两个值变化时
76 averageChange() { 76 averageChange() {
77 - if (this.radioValue === '3') { 77 + if (this.radioValue === 3) {
78 this.$emit('update', 'month', this.averageTotal); 78 this.$emit('update', 'month', this.averageTotal);
79 } 79 }
80 }, 80 },
81 // checkbox值变化时 81 // checkbox值变化时
82 checkboxChange() { 82 checkboxChange() {
83 - if (this.radioValue === '4') { 83 + if (this.radioValue === 4) {
84 this.$emit('update', 'month', this.checkboxString); 84 this.$emit('update', 'month', this.checkboxString);
85 } 85 }
86 } 86 }
yudao-ui-admin/src/components/Crontab/second.vue
@@ -68,19 +68,19 @@ export default { @@ -68,19 +68,19 @@ export default {
68 }, 68 },
69 // 周期两个值变化时 69 // 周期两个值变化时
70 cycleChange() { 70 cycleChange() {
71 - if (this.radioValue === '2') { 71 + if (this.radioValue === 2) {
72 this.$emit('update', 'second', this.cycleTotal); 72 this.$emit('update', 'second', this.cycleTotal);
73 } 73 }
74 }, 74 },
75 // 平均两个值变化时 75 // 平均两个值变化时
76 averageChange() { 76 averageChange() {
77 - if (this.radioValue === '3') { 77 + if (this.radioValue === 3) {
78 this.$emit('update', 'second', this.averageTotal); 78 this.$emit('update', 'second', this.averageTotal);
79 } 79 }
80 }, 80 },
81 // checkbox值变化时 81 // checkbox值变化时
82 checkboxChange() { 82 checkboxChange() {
83 - if (this.radioValue === '4') { 83 + if (this.radioValue === 4) {
84 this.$emit('update', 'second', this.checkboxString); 84 this.$emit('update', 'second', this.checkboxString);
85 } 85 }
86 } 86 }
yudao-ui-admin/src/components/Crontab/week.vue
@@ -144,25 +144,25 @@ export default { @@ -144,25 +144,25 @@ export default {
144 144
145 // 周期两个值变化时 145 // 周期两个值变化时
146 cycleChange() { 146 cycleChange() {
147 - if (this.radioValue === '3') { 147 + if (this.radioValue === 3) {
148 this.$emit('update', 'week', this.cycleTotal); 148 this.$emit('update', 'week', this.cycleTotal);
149 } 149 }
150 }, 150 },
151 // 平均两个值变化时 151 // 平均两个值变化时
152 averageChange() { 152 averageChange() {
153 - if (this.radioValue === '4') { 153 + if (this.radioValue === 4) {
154 this.$emit('update', 'week', this.averageTotal); 154 this.$emit('update', 'week', this.averageTotal);
155 } 155 }
156 }, 156 },
157 // 最近工作日值变化时 157 // 最近工作日值变化时
158 weekdayChange() { 158 weekdayChange() {
159 - if (this.radioValue === '5') { 159 + if (this.radioValue === 5) {
160 this.$emit('update', 'week', this.weekday + 'L'); 160 this.$emit('update', 'week', this.weekday + 'L');
161 } 161 }
162 }, 162 },
163 // checkbox值变化时 163 // checkbox值变化时
164 checkboxChange() { 164 checkboxChange() {
165 - if (this.radioValue === '6') { 165 + if (this.radioValue === 6) {
166 this.$emit('update', 'week', this.checkboxString); 166 this.$emit('update', 'week', this.checkboxString);
167 } 167 }
168 }, 168 },
yudao-ui-admin/src/components/Crontab/year.vue
@@ -79,19 +79,19 @@ export default { @@ -79,19 +79,19 @@ export default {
79 }, 79 },
80 // 周期两个值变化时 80 // 周期两个值变化时
81 cycleChange() { 81 cycleChange() {
82 - if (this.radioValue === '3') { 82 + if (this.radioValue === 3) {
83 this.$emit('update', 'year', this.cycleTotal); 83 this.$emit('update', 'year', this.cycleTotal);
84 } 84 }
85 }, 85 },
86 // 平均两个值变化时 86 // 平均两个值变化时
87 averageChange() { 87 averageChange() {
88 - if (this.radioValue === '4') { 88 + if (this.radioValue === 4) {
89 this.$emit('update', 'year', this.averageTotal); 89 this.$emit('update', 'year', this.averageTotal);
90 } 90 }
91 }, 91 },
92 // checkbox值变化时 92 // checkbox值变化时
93 checkboxChange() { 93 checkboxChange() {
94 - if (this.radioValue === '5') { 94 + if (this.radioValue === 5) {
95 this.$emit('update', 'year', this.checkboxString); 95 this.$emit('update', 'year', this.checkboxString);
96 } 96 }
97 } 97 }