diff --git a/orange-demo-multi-service/.idea/.name b/orange-demo-multi-service/.idea/.name
deleted file mode 100644
index eaf507fb..00000000
--- a/orange-demo-multi-service/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-OrangeMultiDemo
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/inspectionProfiles/Project_Default.xml b/orange-demo-multi-service/.idea/inspectionProfiles/Project_Default.xml
index c562afbb..fc8488e1 100644
--- a/orange-demo-multi-service/.idea/inspectionProfiles/Project_Default.xml
+++ b/orange-demo-multi-service/.idea/inspectionProfiles/Project_Default.xml
@@ -14,57 +14,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_2.xml b/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_2.xml
deleted file mode 100644
index 2303492c..00000000
--- a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_3_4_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_2.xml b/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_2.xml
deleted file mode 100644
index 6aa04155..00000000
--- a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_annotation_3_4_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_2.xml b/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_2.xml
deleted file mode 100644
index 7038c58d..00000000
--- a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_boot_starter_3_4_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_2.xml b/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_2.xml
deleted file mode 100644
index ce4ef9dc..00000000
--- a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_core_3_4_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_2.xml b/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_2.xml
deleted file mode 100644
index 3a86667f..00000000
--- a/orange-demo-multi-service/.idea/libraries/Maven__com_baomidou_mybatis_plus_extension_3_4_2.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__com_orange_demo_common_log_1_0_0.xml b/orange-demo-multi-service/.idea/libraries/Maven__com_orange_demo_common_log_1_0_0.xml
new file mode 100644
index 00000000..3e632bf8
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__com_orange_demo_common_log_1_0_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml b/orange-demo-multi-service/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml
new file mode 100644
index 00000000..e60370e5
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__javax_persistence_persistence_api_1_0.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_3_5_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml
similarity index 68%
rename from orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_3_5_5.xml
rename to orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml
index c6b73345..377b7a72 100644
--- a/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_3_5_5.xml
+++ b/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_3_4_6.xml
@@ -1,13 +1,13 @@
-
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml
similarity index 62%
rename from orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_5.xml
rename to orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml
index eb39604a..713f6040 100644
--- a/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_spring_2_0_5.xml
+++ b/orange-demo-multi-service/.idea/libraries/Maven__org_mybatis_mybatis_spring_1_3_2.xml
@@ -1,13 +1,13 @@
-
+
-
+
-
+
-
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_base_1_1_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_base_1_1_5.xml
new file mode 100644
index 00000000..14970473
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_base_1_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_core_1_1_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_core_1_1_5.xml
new file mode 100644
index 00000000..00217b67
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_core_1_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_extra_1_1_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_extra_1_1_5.xml
new file mode 100644
index 00000000..9fa6cf7e
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_extra_1_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_1_1_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_1_1_5.xml
new file mode 100644
index 00000000..488a0827
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_1_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_autoconfigure_2_1_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_autoconfigure_2_1_5.xml
new file mode 100644
index 00000000..5a76248b
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_autoconfigure_2_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_starter_2_1_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_starter_2_1_5.xml
new file mode 100644
index 00000000..69ca4ac2
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_spring_boot_starter_2_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_weekend_1_1_5.xml b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_weekend_1_1_5.xml
new file mode 100644
index 00000000..2cc0e828
--- /dev/null
+++ b/orange-demo-multi-service/.idea/libraries/Maven__tk_mybatis_mapper_weekend_1_1_5.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/orange-demo-multi-service/.idea/workspace.xml b/orange-demo-multi-service/.idea/workspace.xml
index 63e6cc1f..50540720 100644
--- a/orange-demo-multi-service/.idea/workspace.xml
+++ b/orange-demo-multi-service/.idea/workspace.xml
@@ -1,7 +1,7 @@
-
+
@@ -13,7 +13,7 @@
-
+
@@ -27,16 +27,11 @@
-
+
-
-
-
-
-
-
+
@@ -83,22 +78,16 @@
-
- 1628849582125
+
+ 1630486016377
- 1628849582125
-
+ 1630486016377
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/orange-demo-multi-service/application/course-class/course-class-api/course-class-api.iml b/orange-demo-multi-service/application/course-class/course-class-api/course-class-api.iml
index 088b0d54..b9227508 100644
--- a/orange-demo-multi-service/application/course-class/course-class-api/course-class-api.iml
+++ b/orange-demo-multi-service/application/course-class/course-class-api/course-class-api.iml
@@ -65,20 +65,23 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/course-class-service.iml b/orange-demo-multi-service/application/course-class/course-class-service/course-class-service.iml
index 12e8cf7d..4fffadc8 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/course-class-service.iml
+++ b/orange-demo-multi-service/application/course-class/course-class-service/course-class-service.iml
@@ -64,20 +64,23 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
@@ -99,6 +102,7 @@
+
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/pom.xml b/orange-demo-multi-service/application/course-class/course-class-service/pom.xml
index 96656a00..590e3af7 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/pom.xml
+++ b/orange-demo-multi-service/application/course-class/course-class-service/pom.xml
@@ -20,6 +20,11 @@
course-class-api
1.0.0
+
+ com.orange.demo
+ common-log
+ 1.0.0
+
com.orange.demo
common-redis
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/config/DataSourceConfig.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/config/DataSourceConfig.java
index 102ed2f5..32050215 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/config/DataSourceConfig.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/config/DataSourceConfig.java
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-import org.mybatis.spring.annotation.MapperScan;
+import tk.mybatis.spring.annotation.MapperScan;
import javax.sql.DataSource;
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/AreaCode.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/AreaCode.java
index 518e5f03..561468e8 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/AreaCode.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/AreaCode.java
@@ -1,8 +1,9 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 行政区划实体对象。
*
@@ -10,30 +11,31 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_area_code")
+@Table(name = "zz_area_code")
public class AreaCode {
/**
* 行政区划主键Id
*/
- @TableId(value = "area_id")
+ @Id
+ @Column(name = "area_id")
private Long areaId;
/**
* 行政区划名称
*/
- @TableField(value = "area_name")
+ @Column(name = "area_name")
private String areaName;
/**
* 行政区划级别 (1: 省级别 2: 市级别 3: 区级别)
*/
- @TableField(value = "area_level")
+ @Column(name = "area_level")
private Integer areaLevel;
/**
* 父级行政区划Id
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
}
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassCourse.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassCourse.java
index 77f05154..b34238d6 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassCourse.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassCourse.java
@@ -1,7 +1,7 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
/**
* ClassCourse实体对象。
@@ -10,24 +10,26 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_class_course")
+@Table(name = "zz_class_course")
public class ClassCourse {
/**
* 班级Id。
*/
- @TableField(value = "class_id")
+ @Id
+ @Column(name = "class_id")
private Long classId;
/**
* 课程Id。
*/
- @TableField(value = "course_id")
+ @Id
+ @Column(name = "course_id")
private Long courseId;
/**
* 课程顺序(数值越小越靠前)。
*/
- @TableField(value = "course_order")
+ @Column(name = "course_order")
private Integer courseOrder;
}
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassStudent.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassStudent.java
index 989250af..e3af4e09 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassStudent.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/ClassStudent.java
@@ -1,7 +1,7 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
/**
* ClassStudent实体对象。
@@ -10,18 +10,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_class_student")
+@Table(name = "zz_class_student")
public class ClassStudent {
/**
* 班级Id。
*/
- @TableField(value = "class_id")
+ @Id
+ @Column(name = "class_id")
private Long classId;
/**
* 学生Id。
*/
- @TableField(value = "student_id")
+ @Id
+ @Column(name = "student_id")
private Long studentId;
}
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Course.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Course.java
index 6b3c779c..b2f0b4fe 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Course.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Course.java
@@ -1,6 +1,5 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.courseclassapi.vo.CourseVo;
import com.orange.demo.courseclassapi.constant.CourseDifficult;
import com.orange.demo.application.common.constant.Subject;
@@ -12,6 +11,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
@@ -24,19 +24,20 @@ import java.util.Map;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_course")
+@Table(name = "zz_course")
public class Course {
/**
* 主键Id。
*/
- @TableId(value = "course_id")
+ @Id
+ @Column(name = "course_id")
private Long courseId;
/**
* 课程名称。
*/
- @TableField(value = "course_name")
+ @Column(name = "course_name")
private String courseName;
/**
@@ -57,86 +58,86 @@ public class Course {
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 学科Id。
*/
- @TableField(value = "subject_id")
+ @Column(name = "subject_id")
private Integer subjectId;
/**
* 课时数量。
*/
- @TableField(value = "class_hour")
+ @Column(name = "class_hour")
private Integer classHour;
/**
* 多张课程图片地址。
*/
@UploadFlagColumn(storeType = UploadStoreTypeEnum.LOCAL_SYSTEM)
- @TableField(value = "picture_url")
+ @Column(name = "picture_url")
private String pictureUrl;
/**
* 创建用户Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 最后修改时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* price 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private BigDecimal priceStart;
/**
* price 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private BigDecimal priceEnd;
/**
* classHour 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private Integer classHourStart;
/**
* classHour 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private Integer classHourEnd;
/**
* updateTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String updateTimeStart;
/**
* updateTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String updateTimeEnd;
/**
* courseId 的多对多关联表数据对象。
*/
- @TableField(exist = false)
+ @Transient
private ClassCourse classCourse;
@RelationDict(
@@ -145,19 +146,19 @@ public class Course {
slaveModelClass = Grade.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationConstDict(
masterIdField = "difficulty",
constantDictClass = CourseDifficult.class)
- @TableField(exist = false)
+ @Transient
private Map difficultyDictMap;
@RelationConstDict(
masterIdField = "subjectId",
constantDictClass = Subject.class)
- @TableField(exist = false)
+ @Transient
private Map subjectIdDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Grade.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Grade.java
index 0164e2dc..2c884001 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Grade.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Grade.java
@@ -1,7 +1,8 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
+import javax.persistence.*;
/**
* Grade实体对象。
@@ -10,24 +11,26 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_grade")
+@Table(name = "zz_grade")
public class Grade {
/**
* 主键Id。
*/
- @TableId(value = "grade_id", type = IdType.AUTO)
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 年级名称。
*/
- @TableField(value = "grade_name")
+ @Column(name = "grade_name")
private String gradeName;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
+ @DeletedFlagColumn
private Integer status;
}
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/MaterialEdition.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/MaterialEdition.java
index 60eb31b0..1a23af88 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/MaterialEdition.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/MaterialEdition.java
@@ -1,7 +1,7 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
/**
* MaterialEdition实体对象。
@@ -10,19 +10,21 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_material_edition")
+@Table(name = "zz_material_edition")
public class MaterialEdition {
/**
* 主键Id。
*/
- @TableId(value = "edition_id", type = IdType.AUTO)
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "edition_id")
private Integer editionId;
/**
* 教材版本名称。
*/
- @TableField(value = "edition_name")
+ @Column(name = "edition_name")
private String editionName;
/**
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/SchoolInfo.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/SchoolInfo.java
index c85b2fa8..f9a792dd 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/SchoolInfo.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/SchoolInfo.java
@@ -1,12 +1,12 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.courseclassapi.vo.SchoolInfoVo;
import com.orange.demo.common.core.annotation.RelationDict;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Map;
@@ -17,31 +17,32 @@ import java.util.Map;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_school_info")
+@Table(name = "zz_school_info")
public class SchoolInfo {
/**
* 学校Id。
*/
- @TableId(value = "school_id")
+ @Id
+ @Column(name = "school_id")
private Long schoolId;
/**
* 学校名称。
*/
- @TableField(value = "school_name")
+ @Column(name = "school_name")
private String schoolName;
/**
* 所在省Id。
*/
- @TableField(value = "province_id")
+ @Column(name = "province_id")
private Long provinceId;
/**
* 所在城市Id。
*/
- @TableField(value = "city_id")
+ @Column(name = "city_id")
private Long cityId;
@RelationDict(
@@ -50,7 +51,7 @@ public class SchoolInfo {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map provinceIdDictMap;
@RelationDict(
@@ -59,7 +60,7 @@ public class SchoolInfo {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map cityIdDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Student.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Student.java
index b2158cf3..c0d8900e 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Student.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/Student.java
@@ -1,6 +1,5 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.courseclassapi.vo.StudentVo;
import com.orange.demo.application.common.constant.Gender;
import com.orange.demo.application.common.constant.ExpLevel;
@@ -12,6 +11,7 @@ import com.orange.demo.common.core.util.MyCommonUtil;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -23,43 +23,44 @@ import java.util.Map;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_student")
+@Table(name = "zz_student")
public class Student {
/**
* 学生Id。
*/
- @TableId(value = "student_id")
+ @Id
+ @Column(name = "student_id")
private Long studentId;
/**
* 登录手机。
*/
- @TableField(value = "login_mobile")
+ @Column(name = "login_mobile")
private String loginMobile;
/**
* 学生姓名。
*/
- @TableField(value = "student_name")
+ @Column(name = "student_name")
private String studentName;
/**
* 所在省份Id。
*/
- @TableField(value = "province_id")
+ @Column(name = "province_id")
private Long provinceId;
/**
* 所在城市Id。
*/
- @TableField(value = "city_id")
+ @Column(name = "city_id")
private Long cityId;
/**
* 区县Id。
*/
- @TableField(value = "district_id")
+ @Column(name = "district_id")
private Long districtId;
/**
@@ -75,37 +76,37 @@ public class Student {
/**
* 经验等级 (0: 初级 1: 中级 2: 高级 3: 资深)。
*/
- @TableField(value = "experience_level")
+ @Column(name = "experience_level")
private Integer experienceLevel;
/**
* 总共充值学币数量。
*/
- @TableField(value = "total_coin")
+ @Column(name = "total_coin")
private Integer totalCoin;
/**
* 可用学币数量。
*/
- @TableField(value = "left_coin")
+ @Column(name = "left_coin")
private Integer leftCoin;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 校区Id。
*/
- @TableField(value = "school_id")
+ @Column(name = "school_id")
private Long schoolId;
/**
* 注册时间。
*/
- @TableField(value = "register_time")
+ @Column(name = "register_time")
private Date registerTime;
/**
@@ -116,31 +117,31 @@ public class Student {
/**
* birthday 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String birthdayStart;
/**
* birthday 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String birthdayEnd;
/**
* registerTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String registerTimeStart;
/**
* registerTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String registerTimeEnd;
/**
* true LIKE搜索字符串。
*/
- @TableField(exist = false)
+ @Transient
private String searchString;
public void setSearchString(String searchString) {
@@ -153,7 +154,7 @@ public class Student {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map provinceIdDictMap;
@RelationDict(
@@ -162,7 +163,7 @@ public class Student {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map cityIdDictMap;
@RelationDict(
@@ -171,7 +172,7 @@ public class Student {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map districtIdDictMap;
@RelationDict(
@@ -180,7 +181,7 @@ public class Student {
slaveModelClass = Grade.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationDict(
@@ -189,25 +190,25 @@ public class Student {
slaveModelClass = SchoolInfo.class,
slaveIdField = "schoolId",
slaveNameField = "schoolName")
- @TableField(exist = false)
+ @Transient
private Map schoolIdDictMap;
@RelationConstDict(
masterIdField = "gender",
constantDictClass = Gender.class)
- @TableField(exist = false)
+ @Transient
private Map genderDictMap;
@RelationConstDict(
masterIdField = "experienceLevel",
constantDictClass = ExpLevel.class)
- @TableField(exist = false)
+ @Transient
private Map experienceLevelDictMap;
@RelationConstDict(
masterIdField = "status",
constantDictClass = StudentStatus.class)
- @TableField(exist = false)
+ @Transient
private Map statusDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/StudentClass.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/StudentClass.java
index 7efbb4f3..f78a3129 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/StudentClass.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/model/StudentClass.java
@@ -1,14 +1,15 @@
package com.orange.demo.courseclassservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.courseclassapi.vo.StudentClassVo;
import com.orange.demo.courseclassapi.constant.ClassLevel;
import com.orange.demo.common.core.annotation.RelationDict;
import com.orange.demo.common.core.annotation.RelationConstDict;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -20,61 +21,62 @@ import java.util.Map;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_class")
+@Table(name = "zz_class")
public class StudentClass {
/**
* 班级Id。
*/
- @TableId(value = "class_id")
+ @Id
+ @Column(name = "class_id")
private Long classId;
/**
* 班级名称。
*/
- @TableField(value = "class_name")
+ @Column(name = "class_name")
private String className;
/**
* 学校Id。
*/
- @TableField(value = "school_id")
+ @Column(name = "school_id")
private Long schoolId;
/**
* 学生班长Id。
*/
- @TableField(value = "leader_id")
+ @Column(name = "leader_id")
private Long leaderId;
/**
* 已完成课时数量。
*/
- @TableField(value = "finish_class_hour")
+ @Column(name = "finish_class_hour")
private Integer finishClassHour;
/**
* 班级级别(0: 初级班 1: 培优班 2: 冲刺提分班 3: 竞赛班)。
*/
- @TableField(value = "class_level")
+ @Column(name = "class_level")
private Integer classLevel;
/**
* 创建用户。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 班级创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
+ @DeletedFlagColumn
private Integer status;
@RelationDict(
@@ -83,7 +85,7 @@ public class StudentClass {
slaveModelClass = SchoolInfo.class,
slaveIdField = "schoolId",
slaveNameField = "schoolName")
- @TableField(exist = false)
+ @Transient
private Map schoolIdDictMap;
@RelationDict(
@@ -92,13 +94,13 @@ public class StudentClass {
slaveModelClass = Student.class,
slaveIdField = "studentId",
slaveNameField = "studentName")
- @TableField(exist = false)
+ @Transient
private Map leaderIdDictMap;
@RelationConstDict(
masterIdField = "classLevel",
constantDictClass = ClassLevel.class)
- @TableField(exist = false)
+ @Transient
private Map classLevelDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/CourseServiceImpl.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/CourseServiceImpl.java
index 89fac674..7748f85e 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/CourseServiceImpl.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/CourseServiceImpl.java
@@ -1,7 +1,5 @@
package com.orange.demo.courseclassservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.courseclassservice.service.*;
import com.orange.demo.courseclassservice.dao.*;
import com.orange.demo.courseclassservice.model.*;
@@ -82,8 +80,7 @@ public class CourseServiceImpl extends BaseService implements Cour
course.setCreateTime(originalCourse.getCreateTime());
course.setUpdateTime(new Date());
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(course, course.getCourseId());
- return courseMapper.update(course, uw) == 1;
+ return courseMapper.updateByPrimaryKey(course) == 1;
}
/**
@@ -95,13 +92,14 @@ public class CourseServiceImpl extends BaseService implements Cour
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long courseId) {
- if (courseMapper.deleteById(courseId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(courseId)) {
return false;
}
// 开始删除与本地多对多父表的关联
ClassCourse classCourse = new ClassCourse();
classCourse.setCourseId(courseId);
- classCourseMapper.delete(new QueryWrapper<>(classCourse));
+ classCourseMapper.delete(classCourse);
return true;
}
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/SchoolInfoServiceImpl.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/SchoolInfoServiceImpl.java
index d7dfa442..e9c11b27 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/SchoolInfoServiceImpl.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/SchoolInfoServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.courseclassservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.courseclassservice.service.*;
import com.orange.demo.courseclassservice.dao.*;
import com.orange.demo.courseclassservice.model.*;
@@ -70,8 +69,7 @@ public class SchoolInfoServiceImpl extends BaseService impleme
@Override
public boolean update(SchoolInfo schoolInfo, SchoolInfo originalSchoolInfo) {
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(schoolInfo, schoolInfo.getSchoolId());
- return schoolInfoMapper.update(schoolInfo, uw) == 1;
+ return schoolInfoMapper.updateByPrimaryKey(schoolInfo) == 1;
}
/**
@@ -83,7 +81,8 @@ public class SchoolInfoServiceImpl extends BaseService impleme
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long schoolId) {
- return schoolInfoMapper.deleteById(schoolId) == 1;
+ // 这里先删除主数据
+ return this.removeById(schoolId);
}
/**
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentClassServiceImpl.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentClassServiceImpl.java
index b61dd5b3..948a8cbb 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentClassServiceImpl.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentClassServiceImpl.java
@@ -1,7 +1,5 @@
package com.orange.demo.courseclassservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.courseclassservice.service.*;
import com.orange.demo.courseclassservice.dao.*;
import com.orange.demo.courseclassservice.model.*;
@@ -18,6 +16,7 @@ import com.github.pagehelper.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
import java.util.*;
@@ -84,9 +83,9 @@ public class StudentClassServiceImpl extends BaseService imp
public boolean update(StudentClass studentClass, StudentClass originalStudentClass) {
studentClass.setCreateUserId(originalStudentClass.getCreateUserId());
studentClass.setCreateTime(originalStudentClass.getCreateTime());
+ studentClass.setStatus(GlobalDeletedFlag.NORMAL);
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(studentClass, studentClass.getClassId());
- return studentClassMapper.update(studentClass, uw) == 1;
+ return studentClassMapper.updateByPrimaryKey(studentClass) == 1;
}
/**
@@ -98,16 +97,17 @@ public class StudentClassServiceImpl extends BaseService imp
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long classId) {
- if (studentClassMapper.deleteById(classId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(classId)) {
return false;
}
// 开始删除多对多中间表的关联
ClassCourse classCourse = new ClassCourse();
classCourse.setClassId(classId);
- classCourseMapper.delete(new QueryWrapper<>(classCourse));
+ classCourseMapper.delete(classCourse);
ClassStudent classStudent = new ClassStudent();
classStudent.setClassId(classId);
- classStudentMapper.delete(new QueryWrapper<>(classStudent));
+ classStudentMapper.delete(classStudent);
return true;
}
@@ -197,8 +197,8 @@ public class StudentClassServiceImpl extends BaseService imp
for (ClassCourse classCourse : classCourseList) {
classCourse.setClassId(classId);
MyModelUtil.setDefaultValue(classCourse, "courseOrder", 0);
- classCourseMapper.insert(classCourse);
}
+ classCourseMapper.insertList(classCourseList);
}
/**
@@ -210,13 +210,11 @@ public class StudentClassServiceImpl extends BaseService imp
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateClassCourse(ClassCourse classCourse) {
- ClassCourse filter = new ClassCourse();
- filter.setClassId(classCourse.getClassId());
- filter.setCourseId(classCourse.getCourseId());
- UpdateWrapper uw =
- BaseService.createUpdateQueryForNullValue(classCourse, ClassCourse.class);
- uw.setEntity(filter);
- return classCourseMapper.update(classCourse, uw) > 0;
+ Example e = new Example(ClassCourse.class);
+ e.createCriteria()
+ .andEqualTo("classId", classCourse.getClassId())
+ .andEqualTo("courseId", classCourse.getCourseId());
+ return classCourseMapper.updateByExample(classCourse, e) > 0;
}
/**
@@ -228,10 +226,11 @@ public class StudentClassServiceImpl extends BaseService imp
*/
@Override
public ClassCourse getClassCourse(Long classId, Long courseId) {
- ClassCourse filter = new ClassCourse();
- filter.setClassId(classId);
- filter.setCourseId(courseId);
- return classCourseMapper.selectOne(new QueryWrapper<>(filter));
+ Example e = new Example(ClassCourse.class);
+ e.createCriteria()
+ .andEqualTo("classId", classId)
+ .andEqualTo("courseId", courseId);
+ return classCourseMapper.selectOneByExample(e);
}
/**
@@ -247,7 +246,7 @@ public class StudentClassServiceImpl extends BaseService imp
ClassCourse filter = new ClassCourse();
filter.setClassId(classId);
filter.setCourseId(courseId);
- return classCourseMapper.delete(new QueryWrapper<>(filter)) > 0;
+ return classCourseMapper.delete(filter) > 0;
}
/**
@@ -261,8 +260,8 @@ public class StudentClassServiceImpl extends BaseService imp
public void addClassStudentList(List classStudentList, Long classId) {
for (ClassStudent classStudent : classStudentList) {
classStudent.setClassId(classId);
- classStudentMapper.insert(classStudent);
}
+ classStudentMapper.insertList(classStudentList);
}
/**
@@ -278,7 +277,7 @@ public class StudentClassServiceImpl extends BaseService imp
ClassStudent filter = new ClassStudent();
filter.setClassId(classId);
filter.setStudentId(studentId);
- return classStudentMapper.delete(new QueryWrapper<>(filter)) > 0;
+ return classStudentMapper.delete(filter) > 0;
}
/**
diff --git a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentServiceImpl.java b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentServiceImpl.java
index 79bd483e..1c6c1931 100644
--- a/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentServiceImpl.java
+++ b/orange-demo-multi-service/application/course-class/course-class-service/src/main/java/com/orange/demo/courseclassservice/service/impl/StudentServiceImpl.java
@@ -1,7 +1,5 @@
package com.orange.demo.courseclassservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.application.common.constant.StudentStatus;
import com.orange.demo.courseclassservice.service.*;
import com.orange.demo.courseclassservice.dao.*;
@@ -81,8 +79,7 @@ public class StudentServiceImpl extends BaseService implements St
@Override
public boolean update(Student student, Student originalStudent) {
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(student, student.getStudentId());
- return studentMapper.update(student, uw) == 1;
+ return studentMapper.updateByPrimaryKey(student) == 1;
}
/**
@@ -94,13 +91,14 @@ public class StudentServiceImpl extends BaseService implements St
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long studentId) {
- if (studentMapper.deleteById(studentId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(studentId)) {
return false;
}
// 开始删除与本地多对多父表的关联
ClassStudent classStudent = new ClassStudent();
classStudent.setStudentId(studentId);
- classStudentMapper.delete(new QueryWrapper<>(classStudent));
+ classStudentMapper.delete(classStudent);
return true;
}
diff --git a/orange-demo-multi-service/application/gateway/gateway.iml b/orange-demo-multi-service/application/gateway/gateway.iml
index c9a58174..3c78d199 100644
--- a/orange-demo-multi-service/application/gateway/gateway.iml
+++ b/orange-demo-multi-service/application/gateway/gateway.iml
@@ -110,21 +110,23 @@
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
@@ -178,6 +180,7 @@
+
diff --git a/orange-demo-multi-service/application/stats/stats-api/stats-api.iml b/orange-demo-multi-service/application/stats/stats-api/stats-api.iml
index 088b0d54..b9227508 100644
--- a/orange-demo-multi-service/application/stats/stats-api/stats-api.iml
+++ b/orange-demo-multi-service/application/stats/stats-api/stats-api.iml
@@ -65,20 +65,23 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
diff --git a/orange-demo-multi-service/application/stats/stats-service/pom.xml b/orange-demo-multi-service/application/stats/stats-service/pom.xml
index 6d20bd6c..16e1255d 100644
--- a/orange-demo-multi-service/application/stats/stats-service/pom.xml
+++ b/orange-demo-multi-service/application/stats/stats-service/pom.xml
@@ -25,6 +25,11 @@
course-class-api
1.0.0
+
+ com.orange.demo
+ common-log
+ 1.0.0
+
com.orange.demo
common-redis
diff --git a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/config/DataSourceConfig.java b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/config/DataSourceConfig.java
index a4853d5d..732c3025 100644
--- a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/config/DataSourceConfig.java
+++ b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/config/DataSourceConfig.java
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-import org.mybatis.spring.annotation.MapperScan;
+import tk.mybatis.spring.annotation.MapperScan;
import javax.sql.DataSource;
diff --git a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/CourseTransStats.java b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/CourseTransStats.java
index d2a2e0e9..295f2fb3 100644
--- a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/CourseTransStats.java
+++ b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/CourseTransStats.java
@@ -1,6 +1,5 @@
package com.orange.demo.statsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.statsapi.vo.CourseTransStatsVo;
import com.orange.demo.courseclassapi.vo.CourseVo;
import com.orange.demo.courseclassapi.client.CourseClient;
@@ -13,6 +12,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -24,79 +24,81 @@ import java.util.Map;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_course_trans_stats")
+@Table(name = "zz_course_trans_stats")
public class CourseTransStats {
/**
* 主键Id。
*/
- @TableId(value = "stats_id", type = IdType.AUTO)
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "stats_id")
private Long statsId;
/**
* 统计日期。
*/
- @TableField(value = "stats_date")
+ @Column(name = "stats_date")
private Date statsDate;
/**
* 科目Id。
*/
- @TableField(value = "subject_id")
+ @Column(name = "subject_id")
private Integer subjectId;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 年级名称。
*/
- @TableField(value = "grade_name")
+ @Column(name = "grade_name")
private String gradeName;
/**
* 课程Id。
*/
- @TableField(value = "course_id")
+ @Column(name = "course_id")
private Long courseId;
/**
* 课程名称。
*/
- @TableField(value = "course_name")
+ @Column(name = "course_name")
private String courseName;
/**
* 学生上课次数。
*/
- @TableField(value = "student_attend_count")
+ @Column(name = "student_attend_count")
private Integer studentAttendCount;
/**
* 学生献花数量。
*/
- @TableField(value = "student_flower_amount")
+ @Column(name = "student_flower_amount")
private Integer studentFlowerAmount;
/**
* 学生献花次数。
*/
- @TableField(value = "student_flower_count")
+ @Column(name = "student_flower_count")
private Integer studentFlowerCount;
/**
* statsDate 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateStart;
/**
* statsDate 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateEnd;
@RelationDict(
@@ -105,7 +107,7 @@ public class CourseTransStats {
slaveModelClass = GradeVo.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationDict(
@@ -114,13 +116,13 @@ public class CourseTransStats {
slaveModelClass = CourseVo.class,
slaveIdField = "courseId",
slaveNameField = "courseName")
- @TableField(exist = false)
+ @Transient
private Map courseIdDictMap;
@RelationConstDict(
masterIdField = "subjectId",
constantDictClass = Subject.class)
- @TableField(exist = false)
+ @Transient
private Map subjectIdDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/Grade.java b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/Grade.java
index 08568fb9..8b0083b0 100644
--- a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/Grade.java
+++ b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/Grade.java
@@ -1,7 +1,8 @@
package com.orange.demo.statsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
+import javax.persistence.*;
/**
* Grade实体对象。
@@ -10,24 +11,26 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_grade")
+@Table(name = "zz_grade")
public class Grade {
/**
* 主键Id。
*/
- @TableId(value = "grade_id", type = IdType.AUTO)
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 年级名称。
*/
- @TableField(value = "grade_name")
+ @Column(name = "grade_name")
private String gradeName;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
+ @DeletedFlagColumn
private Integer status;
}
diff --git a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/SchoolInfo.java b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/SchoolInfo.java
index e6a9d2e6..b9121404 100644
--- a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/SchoolInfo.java
+++ b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/SchoolInfo.java
@@ -1,7 +1,7 @@
package com.orange.demo.statsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
/**
* SchoolInfo实体对象。
@@ -10,30 +10,31 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_school_info")
+@Table(name = "zz_school_info")
public class SchoolInfo {
/**
* 学校Id。
*/
- @TableId(value = "school_id")
+ @Id
+ @Column(name = "school_id")
private Long schoolId;
/**
* 学校名称。
*/
- @TableField(value = "school_name")
+ @Column(name = "school_name")
private String schoolName;
/**
* 所在省Id。
*/
- @TableField(value = "province_id")
+ @Column(name = "province_id")
private Long provinceId;
/**
* 所在城市Id。
*/
- @TableField(value = "city_id")
+ @Column(name = "city_id")
private Long cityId;
}
diff --git a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionStats.java b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionStats.java
index a9b71999..495f630a 100644
--- a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionStats.java
+++ b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionStats.java
@@ -1,6 +1,5 @@
package com.orange.demo.statsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.statsapi.vo.StudentActionStatsVo;
import com.orange.demo.courseclassapi.vo.AreaCodeVo;
import com.orange.demo.courseclassapi.vo.GradeVo;
@@ -11,6 +10,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -22,145 +22,146 @@ import java.util.Map;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_student_action_stats")
+@Table(name = "zz_student_action_stats")
public class StudentActionStats {
/**
* 主键Id。
*/
- @TableId(value = "stats_id")
+ @Id
+ @Column(name = "stats_id")
private Long statsId;
/**
* 统计日期。
*/
- @TableField(value = "stats_date")
+ @Column(name = "stats_date")
private Date statsDate;
/**
* 统计小时。
*/
- @TableField(value = "stats_month")
+ @Column(name = "stats_month")
private Date statsMonth;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 学生所在省Id。
*/
- @TableField(value = "province_id")
+ @Column(name = "province_id")
private Long provinceId;
/**
* 学生所在城市Id。
*/
- @TableField(value = "city_id")
+ @Column(name = "city_id")
private Long cityId;
/**
* 购课学币数量。
*/
- @TableField(value = "buy_course_amount")
+ @Column(name = "buy_course_amount")
private Integer buyCourseAmount;
/**
* 购买课程次数。
*/
- @TableField(value = "buy_course_count")
+ @Column(name = "buy_course_count")
private Integer buyCourseCount;
/**
* 购买视频学币数量。
*/
- @TableField(value = "buy_video_amount")
+ @Column(name = "buy_video_amount")
private Integer buyVideoAmount;
/**
* 购买视频次数。
*/
- @TableField(value = "buy_video_count")
+ @Column(name = "buy_video_count")
private Integer buyVideoCount;
/**
* 购买作业学币数量。
*/
- @TableField(value = "buy_paper_amount")
+ @Column(name = "buy_paper_amount")
private Integer buyPaperAmount;
/**
* 购买作业次数。
*/
- @TableField(value = "buy_paper_count")
+ @Column(name = "buy_paper_count")
private Integer buyPaperCount;
/**
* 购买献花数量。
*/
- @TableField(value = "buy_flower_amount")
+ @Column(name = "buy_flower_amount")
private Integer buyFlowerAmount;
/**
* 购买献花次数。
*/
- @TableField(value = "buy_flower_count")
+ @Column(name = "buy_flower_count")
private Integer buyFlowerCount;
/**
* 充值学币数量。
*/
- @TableField(value = "recharge_coin_amount")
+ @Column(name = "recharge_coin_amount")
private Integer rechargeCoinAmount;
/**
* 充值学币次数。
*/
- @TableField(value = "recharge_coin_count")
+ @Column(name = "recharge_coin_count")
private Integer rechargeCoinCount;
/**
* 线下课程上课次数。
*/
- @TableField(value = "do_course_count")
+ @Column(name = "do_course_count")
private Integer doCourseCount;
/**
* 观看视频次数。
*/
- @TableField(value = "watch_video_count")
+ @Column(name = "watch_video_count")
private Integer watchVideoCount;
/**
* 购买献花消费学币数量。
*/
- @TableField(value = "watch_video_total_second")
+ @Column(name = "watch_video_total_second")
private Integer watchVideoTotalSecond;
/**
* 做题数量。
*/
- @TableField(value = "do_exercise_count")
+ @Column(name = "do_exercise_count")
private Integer doExerciseCount;
/**
* 做题正确的数量。
*/
- @TableField(value = "do_exercise_correct_count")
+ @Column(name = "do_exercise_correct_count")
private Integer doExerciseCorrectCount;
/**
* statsDate 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateStart;
/**
* statsDate 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateEnd;
@RelationDict(
@@ -169,7 +170,7 @@ public class StudentActionStats {
slaveModelClass = GradeVo.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationDict(
@@ -178,7 +179,7 @@ public class StudentActionStats {
slaveModelClass = AreaCodeVo.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map provinceIdDictMap;
@RelationDict(
@@ -187,7 +188,7 @@ public class StudentActionStats {
slaveModelClass = AreaCodeVo.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map cityIdDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionTrans.java b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionTrans.java
index c0c3bc48..b7e24f52 100644
--- a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionTrans.java
+++ b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/model/StudentActionTrans.java
@@ -1,6 +1,5 @@
package com.orange.demo.statsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.statsapi.vo.StudentActionTransVo;
import com.orange.demo.courseclassapi.client.SchoolInfoClient;
import com.orange.demo.courseclassapi.vo.SchoolInfoVo;
@@ -14,6 +13,7 @@ import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -25,109 +25,110 @@ import java.util.Map;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_student_action_trans")
+@Table(name = "zz_student_action_trans")
public class StudentActionTrans {
/**
* 主键Id。
*/
- @TableId(value = "trans_id")
+ @Id
+ @Column(name = "trans_id")
private Long transId;
/**
* 学生Id。
*/
- @TableField(value = "student_id")
+ @Column(name = "student_id")
private Long studentId;
/**
* 学生名称。
*/
- @TableField(value = "student_name")
+ @Column(name = "student_name")
private String studentName;
/**
* 学生校区。
*/
- @TableField(value = "school_id")
+ @Column(name = "school_id")
private Long schoolId;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 行为类型(0: 充值 1: 购课 2: 上课签到 3: 上课签退 4: 看视频课 5: 做作业 6: 刷题 7: 献花)。
*/
- @TableField(value = "action_type")
+ @Column(name = "action_type")
private Integer actionType;
/**
* 设备类型(0: iOS 1: Android 2: PC)。
*/
- @TableField(value = "device_type")
+ @Column(name = "device_type")
private Integer deviceType;
/**
* 看视频秒数。
*/
- @TableField(value = "watch_video_seconds")
+ @Column(name = "watch_video_seconds")
private Integer watchVideoSeconds;
/**
* 购买献花数量。
*/
- @TableField(value = "flower_count")
+ @Column(name = "flower_count")
private Integer flowerCount;
/**
* 购买作业数量。
*/
- @TableField(value = "paper_count")
+ @Column(name = "paper_count")
private Integer paperCount;
/**
* 购买视频数量。
*/
- @TableField(value = "video_count")
+ @Column(name = "video_count")
private Integer videoCount;
/**
* 购买课程数量。
*/
- @TableField(value = "course_count")
+ @Column(name = "course_count")
private Integer courseCount;
/**
* 充值学币数量。
*/
- @TableField(value = "coin_count")
+ @Column(name = "coin_count")
private Integer coinCount;
/**
* 做题是否正确标记。
*/
- @TableField(value = "exercise_correct_flag")
+ @Column(name = "exercise_correct_flag")
private Integer exerciseCorrectFlag;
/**
* 发生时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* createTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeEnd;
@RelationDict(
@@ -136,7 +137,7 @@ public class StudentActionTrans {
slaveModelClass = SchoolInfoVo.class,
slaveIdField = "schoolId",
slaveNameField = "schoolName")
- @TableField(exist = false)
+ @Transient
private Map schoolIdDictMap;
@RelationDict(
@@ -145,19 +146,19 @@ public class StudentActionTrans {
slaveModelClass = GradeVo.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationConstDict(
masterIdField = "actionType",
constantDictClass = StudentActionType.class)
- @TableField(exist = false)
+ @Transient
private Map actionTypeDictMap;
@RelationConstDict(
masterIdField = "deviceType",
constantDictClass = DeviceType.class)
- @TableField(exist = false)
+ @Transient
private Map deviceTypeDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/service/impl/StudentActionTransServiceImpl.java b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/service/impl/StudentActionTransServiceImpl.java
index 3970b620..13b86d6a 100644
--- a/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/service/impl/StudentActionTransServiceImpl.java
+++ b/orange-demo-multi-service/application/stats/stats-service/src/main/java/com/orange/demo/statsservice/service/impl/StudentActionTransServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.statsservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.statsservice.service.*;
import com.orange.demo.statsservice.dao.*;
import com.orange.demo.statsservice.model.*;
@@ -76,8 +75,7 @@ public class StudentActionTransServiceImpl extends BaseService uw = this.createUpdateQueryForNullValue(studentActionTrans, studentActionTrans.getTransId());
- return studentActionTransMapper.update(studentActionTrans, uw) == 1;
+ return studentActionTransMapper.updateByPrimaryKey(studentActionTrans) == 1;
}
/**
@@ -89,7 +87,8 @@ public class StudentActionTransServiceImpl extends BaseService
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
@@ -100,6 +103,7 @@
+
diff --git a/orange-demo-multi-service/application/upms/upms-api/upms-api.iml b/orange-demo-multi-service/application/upms/upms-api/upms-api.iml
index b8fdc3c9..d15955ea 100644
--- a/orange-demo-multi-service/application/upms/upms-api/upms-api.iml
+++ b/orange-demo-multi-service/application/upms/upms-api/upms-api.iml
@@ -64,20 +64,23 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
diff --git a/orange-demo-multi-service/application/upms/upms-service/pom.xml b/orange-demo-multi-service/application/upms/upms-service/pom.xml
index 4af91972..3980995a 100644
--- a/orange-demo-multi-service/application/upms/upms-service/pom.xml
+++ b/orange-demo-multi-service/application/upms/upms-service/pom.xml
@@ -20,6 +20,11 @@
upms-api
1.0.0
+
+ com.orange.demo
+ common-log
+ 1.0.0
+
com.orange.demo
common-redis
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/config/DataSourceConfig.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/config/DataSourceConfig.java
index fe6f4bc1..a9fa481c 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/config/DataSourceConfig.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/config/DataSourceConfig.java
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-import org.mybatis.spring.annotation.MapperScan;
+import tk.mybatis.spring.annotation.MapperScan;
import javax.sql.DataSource;
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/LoginController.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/LoginController.java
index 478b1a8d..5b260e9a 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/LoginController.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/LoginController.java
@@ -14,8 +14,7 @@ import com.orange.demo.common.core.util.*;
import com.orange.demo.common.redis.cache.SessionCacheHelper;
import com.orange.demo.upmsapi.constant.SysUserStatus;
import com.orange.demo.upmsapi.constant.SysUserType;
-import com.orange.demo.upmsservice.model.SysMenu;
-import com.orange.demo.upmsservice.model.SysUser;
+import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsservice.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
@@ -165,9 +164,10 @@ public class LoginController {
}
private JSONObject buildLoginData(SysUser user) {
+ int deviceType = MyCommonUtil.getDeviceType();
boolean isAdmin = user.getUserType() == SysUserType.TYPE_ADMIN;
TokenData tokenData = new TokenData();
- String sessionId = user.getLoginName() + "_" + MyCommonUtil.generateUuid();
+ String sessionId = user.getLoginName() + "_" + deviceType + "_" + MyCommonUtil.generateUuid();
tokenData.setUserId(user.getUserId());
tokenData.setIsAdmin(isAdmin);
tokenData.setLoginName(user.getLoginName());
@@ -175,6 +175,7 @@ public class LoginController {
tokenData.setSessionId(sessionId);
tokenData.setLoginIp(IpUtil.getRemoteIpAddress(ContextUtil.getHttpRequest()));
tokenData.setLoginTime(new Date());
+ tokenData.setDeviceType(deviceType);
// 这里手动将TokenData存入request,便于OperationLogAspect统一处理操作日志。
TokenData.addToRequest(tokenData);
JSONObject jsonData = new JSONObject();
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/SysUserController.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/SysUserController.java
index 9894560b..56904d7c 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/SysUserController.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/controller/SysUserController.java
@@ -1,5 +1,6 @@
package com.orange.demo.upmsservice.controller;
+import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.page.PageMethod;
import com.orange.demo.upmsservice.model.*;
import com.orange.demo.upmsservice.service.*;
@@ -52,7 +53,6 @@ public class SysUserController extends BaseController
* @param roleIdListString 逗号分隔的角色Id列表。
* @return 应答结果对象,包含新增用户的主键Id。
*/
- @SuppressWarnings("unchecked")
@ApiOperationSupport(ignoreParameters = {
"sysUserDto.userId",
"sysUserDto.createTimeStart",
@@ -65,11 +65,12 @@ public class SysUserController extends BaseController
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
}
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
- CallResult result = sysUserService.verifyRelatedData(sysUser, null, roleIdListString);
+ CallResult result = sysUserService.verifyRelatedData(
+ sysUser, null, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
}
- Set roleIdSet = (Set) result.getData().get("roleIdSet");
+ Set roleIdSet = result.getData().getObject("roleIdSet", new TypeReference>() {});
sysUserService.saveNew(sysUser, roleIdSet);
return ResponseResult.success(sysUser.getUserId());
}
@@ -81,7 +82,6 @@ public class SysUserController extends BaseController
* @param roleIdListString 逗号分隔的角色Id列表。
* @return 应答结果对象。
*/
- @SuppressWarnings("unchecked")
@ApiOperationSupport(ignoreParameters = {
"sysUserDto.createTimeStart",
"sysUserDto.createTimeEnd"})
@@ -97,11 +97,12 @@ public class SysUserController extends BaseController
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
- CallResult result = sysUserService.verifyRelatedData(sysUser, originalUser, roleIdListString);
+ CallResult result = sysUserService.verifyRelatedData(
+ sysUser, originalUser, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
}
- Set roleIdSet = (Set) result.getData().get("roleIdSet");
+ Set roleIdSet = result.getData().getObject("roleIdSet", new TypeReference>() {});
if (!sysUserService.update(sysUser, originalUser, roleIdSet)) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenu.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenu.java
index 38e45079..47f8606b 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenu.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenu.java
@@ -1,6 +1,6 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.*;
/**
@@ -21,55 +22,56 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName(value = "zz_sys_menu")
+@Table(name = "zz_sys_menu")
public class SysMenu extends BaseModel {
/**
* 主键Id。
*/
- @TableId(value = "menu_id")
+ @Id
+ @Column(name = "menu_id")
private Long menuId;
/**
* 父菜单Id,目录菜单的父菜单为null。
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
/**
* 菜单显示名称。
*/
- @TableField(value = "menu_name")
+ @Column(name = "menu_name")
private String menuName;
/**
* 菜单类型(0: 目录 1: 菜单 2: 按钮 3: UI片段)。
*/
- @TableField(value = "menu_type")
+ @Column(name = "menu_type")
private Integer menuType;
/**
* 前端表单路由名称,仅用于menu_type为1的菜单类型。
*/
- @TableField(value = "form_router_name")
+ @Column(name = "form_router_name")
private String formRouterName;
/**
* 在线表单主键Id,仅用于在线表单绑定的菜单。
*/
- @TableField(value = "online_form_id")
+ @Column(name = "online_form_id")
private Long onlineFormId;
/**
* 在线表单菜单的权限控制类型,具体值可参考SysOnlineMenuPermType常量对象。
*/
- @TableField(value = "online_menu_perm_type")
+ @Column(name = "online_menu_perm_type")
private Integer onlineMenuPermType;
/**
* 菜单显示顺序 (值越小,排序越靠前)。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
@@ -80,15 +82,15 @@ public class SysMenu extends BaseModel {
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysMenuPermCodeMapper",
relationMasterIdField = "menuId",
relationModelClass = SysMenuPermCode.class)
- @TableField(exist = false)
+ @Transient
private List sysMenuPermCodeList;
@Mapper
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenuPermCode.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenuPermCode.java
index 816f5ab8..d8a1c65b 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenuPermCode.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysMenuPermCode.java
@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 菜单与权限字关联实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_sys_menu_perm_code")
+@Table(name = "zz_sys_menu_perm_code")
public class SysMenuPermCode {
/**
* 关联菜单Id。
*/
- @TableField(value = "menu_id")
+ @Id
+ @Column(name = "menu_id")
private Long menuId;
/**
* 关联权限字Id。
*/
- @TableField(value = "perm_code_id")
+ @Id
+ @Column(name = "perm_code_id")
private Long permCodeId;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPerm.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPerm.java
index d6cfa362..be4d9ff9 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPerm.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPerm.java
@@ -1,11 +1,12 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.annotation.RelationDict;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.persistence.*;
import java.util.*;
/**
@@ -16,25 +17,26 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName(value = "zz_sys_perm")
+@Table(name = "zz_sys_perm")
public class SysPerm extends BaseModel {
/**
* 权限Id。
*/
- @TableId(value = "perm_id")
+ @Id
+ @Column(name = "perm_id")
private Long permId;
/**
* 权限所在的权限模块Id。
*/
- @TableField(value = "module_id")
+ @Column(name = "module_id")
private Long moduleId;
/**
* 权限名称。
*/
- @TableField(value = "perm_name")
+ @Column(name = "perm_name")
private String permName;
/**
@@ -45,14 +47,14 @@ public class SysPerm extends BaseModel {
/**
* 权限在当前模块下的顺序,由小到大。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationDict(
@@ -61,6 +63,6 @@ public class SysPerm extends BaseModel {
slaveModelClass = SysPermModule.class,
slaveIdField = "moduleId",
slaveNameField = "moduleName")
- @TableField(exist = false)
+ @Transient
private Map moduleIdDictMap;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCode.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCode.java
index 63095b68..a3cebb9f 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCode.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCode.java
@@ -1,6 +1,6 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.*;
/**
@@ -21,57 +22,58 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName(value = "zz_sys_perm_code")
+@Table(name = "zz_sys_perm_code")
public class SysPermCode extends BaseModel {
/**
* 主键Id。
*/
- @TableId(value = "perm_code_id")
+ @Id
+ @Column(name = "perm_code_id")
private Long permCodeId;
/**
* 上级权限字Id。
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
/**
* 权限字标识(一般为有含义的英文字符串)。
*/
- @TableField(value = "perm_code")
+ @Column(name = "perm_code")
private String permCode;
/**
* 权限类型(0: 表单 1: UI片段 2: 操作)。
*/
- @TableField(value = "perm_code_type")
+ @Column(name = "perm_code_type")
private Integer permCodeType;
/**
* 显示名称。
*/
- @TableField(value = "show_name")
+ @Column(name = "show_name")
private String showName;
/**
* 显示顺序(数值越小,越靠前)。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysPermCodePermMapper",
relationMasterIdField = "permCodeId",
relationModelClass = SysPermCodePerm.class)
- @TableField(exist = false)
+ @Transient
private List sysPermCodePermList;
@Mapper
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCodePerm.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCodePerm.java
index 7416c102..3af23547 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCodePerm.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermCodePerm.java
@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 权限字与权限资源关联实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_sys_perm_code_perm")
+@Table(name = "zz_sys_perm_code_perm")
public class SysPermCodePerm {
/**
* 权限字Id。
*/
- @TableField(value = "perm_code_id")
+ @Id
+ @Column(name = "perm_code_id")
private Long permCodeId;
/**
* 权限Id。
*/
- @TableField(value = "perm_id")
+ @Id
+ @Column(name = "perm_id")
private Long permId;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermModule.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermModule.java
index f36184cb..7a4fd99d 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermModule.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermModule.java
@@ -1,10 +1,11 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.base.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import javax.persistence.*;
import java.util.*;
/**
@@ -15,46 +16,47 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName(value = "zz_sys_perm_module")
+@Table(name = "zz_sys_perm_module")
public class SysPermModule extends BaseModel {
/**
* 权限模块Id。
*/
- @TableId(value = "module_id")
+ @Id
+ @Column(name = "module_id")
private Long moduleId;
/**
* 上级权限模块Id。
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
/**
* 权限模块名称。
*/
- @TableField(value = "module_name")
+ @Column(name = "module_name")
private String moduleName;
/**
* 权限模块类型(0: 普通模块 1: Controller模块)。
*/
- @TableField(value = "module_type")
+ @Column(name = "module_type")
private Integer moduleType;
/**
* 权限模块在当前层级下的顺序,由小到大。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
- @TableField(exist = false)
+ @Transient
private List sysPermList;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermWhitelist.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermWhitelist.java
index a599e996..0b961e39 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermWhitelist.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysPermWhitelist.java
@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 白名单实体对象。
*
@@ -10,24 +11,25 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_sys_perm_whitelist")
+@Table(name = "zz_sys_perm_whitelist")
public class SysPermWhitelist {
/**
* 权限资源的URL。
*/
- @TableId(value = "perm_url")
+ @Id
+ @Column(name = "perm_url")
private String permUrl;
/**
* 权限资源所属模块名字(通常是Controller的名字)。
*/
- @TableField(value = "module_name")
+ @Column(name = "module_name")
private String moduleName;
/**
* 权限的名称。
*/
- @TableField(value = "perm_name")
+ @Column(name = "perm_name")
private String permName;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRole.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRole.java
index e608c662..7ea2d4b6 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRole.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRole.java
@@ -1,6 +1,6 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
@@ -11,6 +11,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.*;
/**
@@ -21,33 +22,34 @@ import java.util.*;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName(value = "zz_sys_role")
+@Table(name = "zz_sys_role")
public class SysRole extends BaseModel {
/**
* 主键Id。
*/
- @TableId(value = "role_id")
+ @Id
+ @Column(name = "role_id")
private Long roleId;
/**
* 角色名称。
*/
- @TableField(value = "role_name")
+ @Column(name = "role_name")
private String roleName;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysRoleMenuMapper",
relationMasterIdField = "roleId",
relationModelClass = SysRoleMenu.class)
- @TableField(exist = false)
+ @Transient
private List sysRoleMenuList;
@Mapper
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRoleMenu.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRoleMenu.java
index 0363a047..c8574214 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRoleMenu.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysRoleMenu.java
@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 角色菜单实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_sys_role_menu")
+@Table(name = "zz_sys_role_menu")
public class SysRoleMenu {
/**
* 角色Id。
*/
- @TableField(value = "role_id")
+ @Id
+ @Column(name = "role_id")
private Long roleId;
/**
* 菜单Id。
*/
- @TableField(value = "menu_id")
+ @Id
+ @Column(name = "menu_id")
private Long menuId;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUser.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUser.java
index 901f181c..ea3b81a6 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUser.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUser.java
@@ -1,6 +1,5 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.upmsapi.vo.SysUserVo;
import com.orange.demo.upmsapi.constant.SysUserType;
import com.orange.demo.upmsapi.constant.SysUserStatus;
@@ -8,10 +7,12 @@ import com.orange.demo.common.core.annotation.RelationConstDict;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.model.BaseModel;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Map;
import java.util.List;
@@ -24,19 +25,20 @@ import java.util.List;
*/
@Data
@EqualsAndHashCode(callSuper = true)
-@TableName(value = "zz_sys_user")
+@Table(name = "zz_sys_user")
public class SysUser extends BaseModel {
/**
* 用户Id。
*/
- @TableId(value = "user_id")
+ @Id
+ @Column(name = "user_id")
private Long userId;
/**
* 登录用户名。
*/
- @TableField(value = "login_name")
+ @Column(name = "login_name")
private String loginName;
/**
@@ -47,44 +49,44 @@ public class SysUser extends BaseModel {
/**
* 用户显示名称。
*/
- @TableField(value = "show_name")
+ @Column(name = "show_name")
private String showName;
/**
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
*/
- @TableField(value = "user_type")
+ @Column(name = "user_type")
private Integer userType;
/**
* 用户头像的Url。
*/
- @TableField(value = "head_image_url")
+ @Column(name = "head_image_url")
private String headImageUrl;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
- @TableField(value = "user_status")
+ @Column(name = "user_status")
private Integer userStatus;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
/**
* createTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeEnd;
/**
@@ -94,19 +96,19 @@ public class SysUser extends BaseModel {
relationMapperName = "sysUserRoleMapper",
relationMasterIdField = "userId",
relationModelClass = SysUserRole.class)
- @TableField(exist = false)
+ @Transient
private List sysUserRoleList;
@RelationConstDict(
masterIdField = "userType",
constantDictClass = SysUserType.class)
- @TableField(exist = false)
+ @Transient
private Map userTypeDictMap;
@RelationConstDict(
masterIdField = "userStatus",
constantDictClass = SysUserStatus.class)
- @TableField(exist = false)
+ @Transient
private Map userStatusDictMap;
@Mapper
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUserRole.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUserRole.java
index e2b552c4..a521ea7e 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUserRole.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/model/SysUserRole.java
@@ -1,8 +1,9 @@
package com.orange.demo.upmsservice.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 用户角色实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-08-08
*/
@Data
-@TableName(value = "zz_sys_user_role")
+@Table(name = "zz_sys_user_role")
public class SysUserRole {
/**
* 用户Id。
*/
- @TableField(value = "user_id")
+ @Id
+ @Column(name = "user_id")
private Long userId;
/**
* 角色Id。
*/
- @TableField(value = "role_id")
+ @Id
+ @Column(name = "role_id")
private Long roleId;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/SysUserService.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/SysUserService.java
index a8cf015c..df36df8b 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/SysUserService.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/SysUserService.java
@@ -154,10 +154,10 @@ public interface SysUserService extends IBaseService {
/**
* 验证用户对象关联的数据是否都合法。
*
- * @param sysUser 当前操作的对象。
- * @param originalSysUser 原有对象。
- * @param roleIdListString 逗号分隔的角色Id列表字符串。
+ * @param sysUser 当前操作的对象。
+ * @param originalSysUser 原有对象。
+ * @param roleIds 逗号分隔的角色Id列表字符串。
* @return 验证结果。
*/
- CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString);
+ CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds);
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysMenuServiceImpl.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysMenuServiceImpl.java
index bd9cfe6e..e840f30e 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysMenuServiceImpl.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysMenuServiceImpl.java
@@ -2,9 +2,6 @@ package com.orange.demo.upmsservice.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -26,6 +23,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@@ -76,12 +74,14 @@ public class SysMenuServiceImpl extends BaseService implements Sy
MyModelUtil.fillCommonsForInsert(sysMenu);
sysMenuMapper.insert(sysMenu);
if (permCodeIdSet != null) {
+ List sysMenuPermCodeList = new LinkedList<>();
for (Long permCodeId : permCodeIdSet) {
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(sysMenu.getMenuId());
menuPermCode.setPermCodeId(permCodeId);
- sysMenuPermCodeMapper.insert(menuPermCode);
+ sysMenuPermCodeList.add(menuPermCode);
}
+ sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
}
// 判断当前菜单是否为指向在线表单的菜单,并将根据约定,动态插入两个子菜单。
if (sysMenu.getOnlineFormId() != null) {
@@ -124,27 +124,30 @@ public class SysMenuServiceImpl extends BaseService implements Sy
public boolean update(SysMenu sysMenu, SysMenu originalSysMenu, Set permCodeIdSet) {
MyModelUtil.fillCommonsForUpdate(sysMenu, originalSysMenu);
sysMenu.setMenuType(originalSysMenu.getMenuType());
- UpdateWrapper uw = this.createUpdateQueryForNullValue(sysMenu, sysMenu.getMenuId());
- if (sysMenuMapper.update(sysMenu, uw) != 1) {
+ sysMenu.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ if (sysMenuMapper.updateByPrimaryKey(sysMenu) != 1) {
return false;
}
SysMenuPermCode deletedMenuPermCode = new SysMenuPermCode();
deletedMenuPermCode.setMenuId(sysMenu.getMenuId());
- sysMenuPermCodeMapper.delete(new QueryWrapper<>(deletedMenuPermCode));
+ sysMenuPermCodeMapper.delete(deletedMenuPermCode);
if (permCodeIdSet != null) {
+ List sysMenuPermCodeList = new LinkedList<>();
for (Long permCodeId : permCodeIdSet) {
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(sysMenu.getMenuId());
menuPermCode.setPermCodeId(permCodeId);
- sysMenuPermCodeMapper.insert(menuPermCode);
+ sysMenuPermCodeList.add(menuPermCode);
}
+ sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
}
// 如果当前菜单的在线表单Id变化了,就需要同步更新他的内置子菜单也同步更新。
if (ObjectUtil.notEqual(originalSysMenu.getOnlineFormId(), sysMenu.getOnlineFormId())) {
SysMenu onlineSubMenu = new SysMenu();
onlineSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
- sysMenuMapper.update(onlineSubMenu,
- new QueryWrapper().lambda().eq(SysMenu::getParentId, sysMenu.getMenuId()));
+ Example e = new Example(SysMenu.class);
+ e.createCriteria().andEqualTo("parentId", sysMenu.getMenuId());
+ sysMenuMapper.updateByExampleSelective(onlineSubMenu, e);
}
return true;
}
@@ -159,18 +162,23 @@ public class SysMenuServiceImpl extends BaseService implements Sy
@Override
public boolean remove(SysMenu menu) {
Long menuId = menu.getMenuId();
- if (sysMenuMapper.deleteById(menuId) != 1) {
+ if (!this.removeById(menuId)) {
return false;
}
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setMenuId(menuId);
- sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
+ sysRoleMenuMapper.delete(roleMenu);
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(menuId);
- sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
+ sysMenuPermCodeMapper.delete(menuPermCode);
// 如果为指向在线表单的菜单,则连同删除子菜单
if (menu.getOnlineFormId() != null) {
- sysMenuMapper.delete(new QueryWrapper().lambda().eq(SysMenu::getParentId, menuId));
+ Example e = new Example(SysMenu.class);
+ Example.Criteria c = e.createCriteria().andEqualTo("parentId", menuId);
+ c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
+ SysMenu deletedSubMenu = new SysMenu();
+ deletedSubMenu.setDeletedFlag(GlobalDeletedFlag.DELETED);
+ sysMenuMapper.updateByExampleSelective(deletedSubMenu, e);
}
return true;
}
@@ -182,11 +190,12 @@ public class SysMenuServiceImpl extends BaseService implements Sy
*/
@Override
public Collection getAllMenuList() {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
- queryWrapper.in(this.safeMapToColumnName("menuType"),
- Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
- return sysMenuMapper.selectList(queryWrapper);
+ Example e = new Example(SysMenu.class);
+ e.orderBy("showOrder");
+ Example.Criteria c = e.createCriteria();
+ c.andIn("menuType", Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
+ c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
+ return sysMenuMapper.selectByExample(e);
}
/**
@@ -285,12 +294,12 @@ public class SysMenuServiceImpl extends BaseService implements Sy
*/
@Override
public List getAllOnlineMenuList(Integer menuType) {
- LambdaQueryWrapper queryWrapper =
- new QueryWrapper().lambda().isNotNull(SysMenu::getOnlineFormId);
+ Example e = new Example(SysMenu.class);
+ Example.Criteria c = e.createCriteria().andIsNotNull("onlineFormId");
if (menuType != null) {
- queryWrapper.eq(SysMenu::getMenuType, menuType);
+ c.andEqualTo("menuType", menuType);
}
- return sysMenuMapper.selectList(queryWrapper);
+ return sysMenuMapper.selectByExample(e);
}
/**
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermCodeServiceImpl.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermCodeServiceImpl.java
index 5aacae1e..db1a668b 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermCodeServiceImpl.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermCodeServiceImpl.java
@@ -1,8 +1,6 @@
package com.orange.demo.upmsservice.service.impl;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -95,12 +93,14 @@ public class SysPermCodeServiceImpl extends BaseService imple
MyModelUtil.fillCommonsForInsert(sysPermCode);
sysPermCodeMapper.insert(sysPermCode);
if (permIdSet != null) {
+ List sysPermCodePermList = new LinkedList<>();
for (Long permId : permIdSet) {
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
permCodePerm.setPermId(permId);
- sysPermCodePermMapper.insert(permCodePerm);
+ sysPermCodePermList.add(permCodePerm);
}
+ sysPermCodePermMapper.insertList(sysPermCodePermList);
}
return sysPermCode;
}
@@ -117,22 +117,23 @@ public class SysPermCodeServiceImpl extends BaseService imple
@Override
public boolean update(SysPermCode sysPermCode, SysPermCode originalSysPermCode, Set permIdSet) {
sysPermCode.setParentId(originalSysPermCode.getParentId());
+ sysPermCode.setDeletedFlag(GlobalDeletedFlag.NORMAL);
MyModelUtil.fillCommonsForUpdate(sysPermCode, originalSysPermCode);
- UpdateWrapper uw =
- this.createUpdateQueryForNullValue(sysPermCode, sysPermCode.getPermCodeId());
- if (sysPermCodeMapper.update(sysPermCode, uw) != 1) {
+ if (sysPermCodeMapper.updateByPrimaryKey(sysPermCode) != 1) {
return false;
}
SysPermCodePerm deletedPermCodePerm = new SysPermCodePerm();
deletedPermCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
- sysPermCodePermMapper.delete(new QueryWrapper<>(deletedPermCodePerm));
+ sysPermCodePermMapper.delete(deletedPermCodePerm);
if (permIdSet != null) {
+ List sysPermCodePermList = new LinkedList<>();
for (Long permId : permIdSet) {
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
permCodePerm.setPermId(permId);
- sysPermCodePermMapper.insert(permCodePerm);
+ sysPermCodePermList.add(permCodePerm);
}
+ sysPermCodePermMapper.insertList(sysPermCodePermList);
}
return true;
}
@@ -146,15 +147,15 @@ public class SysPermCodeServiceImpl extends BaseService imple
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long permCodeId) {
- if (sysPermCodeMapper.deleteById(permCodeId) != 1) {
+ if (!this.removeById(permCodeId)) {
return false;
}
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setPermCodeId(permCodeId);
- sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
+ sysMenuPermCodeMapper.delete(menuPermCode);
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(permCodeId);
- sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
+ sysPermCodePermMapper.delete(permCodePerm);
return true;
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermModuleServiceImpl.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermModuleServiceImpl.java
index 40983cb7..9d11f3ff 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermModuleServiceImpl.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermModuleServiceImpl.java
@@ -71,7 +71,8 @@ public class SysPermModuleServiceImpl extends BaseService i
@Override
public boolean update(SysPermModule sysPermModule, SysPermModule originalSysPermModule) {
MyModelUtil.fillCommonsForUpdate(sysPermModule, originalSysPermModule);
- return sysPermModuleMapper.updateById(sysPermModule) != 0;
+ sysPermModule.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ return sysPermModuleMapper.updateByPrimaryKey(sysPermModule) != 0;
}
/**
@@ -83,7 +84,7 @@ public class SysPermModuleServiceImpl extends BaseService i
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long moduleId) {
- return sysPermModuleMapper.deleteById(moduleId) == 1;
+ return this.removeById(moduleId);
}
/**
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermServiceImpl.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermServiceImpl.java
index 591d7edf..2144cc6b 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermServiceImpl.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysPermServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.upmsservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.util.ObjectUtil;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
@@ -19,6 +18,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
import java.util.*;
@@ -78,7 +78,8 @@ public class SysPermServiceImpl extends BaseService implements Sy
@Override
public boolean update(SysPerm perm, SysPerm originalPerm) {
MyModelUtil.fillCommonsForUpdate(perm, originalPerm);
- return sysPermMapper.updateById(perm) != 0;
+ perm.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ return sysPermMapper.updateByPrimaryKeySelective(perm) != 0;
}
/**
@@ -90,12 +91,12 @@ public class SysPermServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long permId) {
- if (sysPermMapper.deleteById(permId) != 1) {
+ if (!this.removeById(permId)) {
return false;
}
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermId(permId);
- sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
+ sysPermCodePermMapper.delete(permCodePerm);
return true;
}
@@ -107,13 +108,17 @@ public class SysPermServiceImpl extends BaseService implements Sy
*/
@Override
public List getPermListWithRelation(SysPerm sysPermFilter) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
- queryWrapper.eq(ObjectUtil.isNotNull(sysPermFilter.getModuleId()),
- this.safeMapToColumnName("moduleId"), sysPermFilter.getModuleId());
- queryWrapper.like(ObjectUtil.isNotNull(sysPermFilter.getUrl()),
- this.safeMapToColumnName("url"), "%" + sysPermFilter.getUrl() + "%");
- List permList = sysPermMapper.selectList(queryWrapper);
+ Example e = new Example(SysPerm.class);
+ e.orderBy("showOrder");
+ Example.Criteria c = e.createCriteria();
+ if (ObjectUtil.isNotNull(sysPermFilter.getModuleId())) {
+ c.andEqualTo("moduleId", sysPermFilter.getModuleId());
+ }
+ if (ObjectUtil.isNotNull(sysPermFilter.getUrl())) {
+ c.andLike("url", "%" + sysPermFilter.getUrl() + "%");
+ }
+ c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
+ List permList = sysPermMapper.selectByExample(e);
// 这里因为权限只有字典数据,所以仅仅做字典关联。
this.buildRelationForDataList(permList, MyRelationParam.dictOnly());
return permList;
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysRoleServiceImpl.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysRoleServiceImpl.java
index f9863996..d4beabcb 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysRoleServiceImpl.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysRoleServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.upmsservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -71,12 +70,14 @@ public class SysRoleServiceImpl extends BaseService implements Sy
MyModelUtil.fillCommonsForInsert(role);
sysRoleMapper.insert(role);
if (menuIdSet != null) {
+ List roleMenuList = new LinkedList<>();
for (Long menuId : menuIdSet) {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(role.getRoleId());
roleMenu.setMenuId(menuId);
- sysRoleMenuMapper.insert(roleMenu);
+ roleMenuList.add(roleMenu);
}
+ sysRoleMenuMapper.insertList(roleMenuList);
}
return role;
}
@@ -92,20 +93,23 @@ public class SysRoleServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean update(SysRole role, SysRole originalRole, Set menuIdSet) {
+ role.setDeletedFlag(GlobalDeletedFlag.NORMAL);
MyModelUtil.fillCommonsForUpdate(role, originalRole);
- if (sysRoleMapper.updateById(role) != 1) {
+ if (sysRoleMapper.updateByPrimaryKey(role) != 1) {
return false;
}
SysRoleMenu deletedRoleMenu = new SysRoleMenu();
deletedRoleMenu.setRoleId(role.getRoleId());
- sysRoleMenuMapper.delete(new QueryWrapper<>(deletedRoleMenu));
+ sysRoleMenuMapper.delete(deletedRoleMenu);
if (menuIdSet != null) {
+ List roleMenuList = new LinkedList<>();
for (Long menuId : menuIdSet) {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(role.getRoleId());
roleMenu.setMenuId(menuId);
- sysRoleMenuMapper.insert(roleMenu);
+ roleMenuList.add(roleMenu);
}
+ sysRoleMenuMapper.insertList(roleMenuList);
}
return true;
}
@@ -119,15 +123,15 @@ public class SysRoleServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long roleId) {
- if (sysRoleMapper.deleteById(roleId) != 1) {
+ if (!this.removeById(roleId)) {
return false;
}
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(roleId);
- sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
+ sysRoleMenuMapper.delete(roleMenu);
SysUserRole userRole = new SysUserRole();
userRole.setRoleId(roleId);
- sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
+ sysUserRoleMapper.delete(userRole);
return true;
}
@@ -151,9 +155,7 @@ public class SysRoleServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public void addUserRoleList(List userRoleList) {
- for (SysUserRole userRole : userRoleList) {
- sysUserRoleMapper.insert(userRole);
- }
+ sysUserRoleMapper.insertList(userRoleList);
}
/**
@@ -169,7 +171,7 @@ public class SysRoleServiceImpl extends BaseService implements Sy
SysUserRole userRole = new SysUserRole();
userRole.setRoleId(roleId);
userRole.setUserId(userId);
- return sysUserRoleMapper.delete(new QueryWrapper<>(userRole)) == 1;
+ return sysUserRoleMapper.delete(userRole) == 1;
}
/**
diff --git a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysUserServiceImpl.java b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysUserServiceImpl.java
index f5a41499..43f06c7f 100644
--- a/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysUserServiceImpl.java
+++ b/orange-demo-multi-service/application/upms/upms-service/src/main/java/com/orange/demo/upmsservice/service/impl/SysUserServiceImpl.java
@@ -1,7 +1,5 @@
package com.orange.demo.upmsservice.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.upmsservice.service.*;
import com.orange.demo.upmsservice.dao.*;
@@ -21,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@@ -66,7 +65,8 @@ public class SysUserServiceImpl extends BaseService implements Sy
public SysUser getSysUserByLoginName(String loginName) {
SysUser filter = new SysUser();
filter.setLoginName(loginName);
- return sysUserMapper.selectOne(new QueryWrapper<>(filter));
+ filter.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ return sysUserMapper.selectOne(filter);
}
/**
@@ -86,12 +86,14 @@ public class SysUserServiceImpl extends BaseService implements Sy
MyModelUtil.fillCommonsForInsert(user);
sysUserMapper.insert(user);
if (CollectionUtils.isNotEmpty(roleIdSet)) {
+ List userRoleList = new LinkedList<>();
for (Long roleId : roleIdSet) {
SysUserRole userRole = new SysUserRole();
userRole.setUserId(user.getUserId());
userRole.setRoleId(roleId);
- sysUserRoleMapper.insert(userRole);
+ userRoleList.add(userRole);
}
+ sysUserRoleMapper.insertList(userRoleList);
}
return user;
}
@@ -110,21 +112,23 @@ public class SysUserServiceImpl extends BaseService implements Sy
user.setLoginName(originalUser.getLoginName());
user.setPassword(originalUser.getPassword());
MyModelUtil.fillCommonsForUpdate(user, originalUser);
- UpdateWrapper uw = this.createUpdateQueryForNullValue(user, user.getUserId());
- if (sysUserMapper.update(user, uw) != 1) {
+ user.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ if (sysUserMapper.updateByPrimaryKey(user) != 1) {
return false;
}
// 先删除原有的User-Role关联关系,再重新插入新的关联关系
SysUserRole deletedUserRole = new SysUserRole();
deletedUserRole.setUserId(user.getUserId());
- sysUserRoleMapper.delete(new QueryWrapper<>(deletedUserRole));
+ sysUserRoleMapper.delete(deletedUserRole);
if (CollectionUtils.isNotEmpty(roleIdSet)) {
+ List userRoleList = new LinkedList<>();
for (Long roleId : roleIdSet) {
SysUserRole userRole = new SysUserRole();
userRole.setUserId(user.getUserId());
userRole.setRoleId(roleId);
- sysUserRoleMapper.insert(userRole);
+ userRoleList.add(userRole);
}
+ sysUserRoleMapper.insertList(userRoleList);
}
return true;
}
@@ -138,10 +142,13 @@ public class SysUserServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean changePassword(Long userId, String newPass) {
+ Example e = new Example(SysUser.class);
+ e.createCriteria()
+ .andEqualTo(super.idFieldName, userId)
+ .andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
SysUser updatedUser = new SysUser();
- updatedUser.setUserId(userId);
updatedUser.setPassword(passwordEncoder.encode(newPass));
- return sysUserMapper.updateById(updatedUser) == 1;
+ return sysUserMapper.updateByExampleSelective(updatedUser, e) == 1;
}
/**
@@ -153,12 +160,13 @@ public class SysUserServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long userId) {
- if (sysUserMapper.deleteById(userId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(userId)) {
return false;
}
SysUserRole userRole = new SysUserRole();
userRole.setUserId(userId);
- sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
+ sysUserRoleMapper.delete(userRole);
return true;
}
@@ -301,19 +309,19 @@ public class SysUserServiceImpl extends BaseService implements Sy
/**
* 验证用户对象关联的数据是否都合法。
*
- * @param sysUser 当前操作的对象。
- * @param originalSysUser 原有对象。
- * @param roleIdListString 逗号分隔的角色Id列表字符串。
+ * @param sysUser 当前操作的对象。
+ * @param originalSysUser 原有对象。
+ * @param roleIds 逗号分隔的角色Id列表字符串。
* @return 验证结果。
*/
@Override
- public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString) {
+ public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds) {
JSONObject jsonObject = new JSONObject();
- if (StringUtils.isBlank(roleIdListString)) {
+ if (StringUtils.isBlank(roleIds)) {
return CallResult.error("数据验证失败,用户的角色数据不能为空!");
}
Set roleIdSet = Arrays.stream(
- roleIdListString.split(",")).map(Long::valueOf).collect(Collectors.toSet());
+ roleIds.split(",")).map(Long::valueOf).collect(Collectors.toSet());
if (!sysRoleService.existAllPrimaryKeys(roleIdSet)) {
return CallResult.error("数据验证失败,存在不合法的用户角色,请刷新后重试!");
}
diff --git a/orange-demo-multi-service/application/upms/upms-service/upms-service.iml b/orange-demo-multi-service/application/upms/upms-service/upms-service.iml
index 42b534e3..e148c95b 100644
--- a/orange-demo-multi-service/application/upms/upms-service/upms-service.iml
+++ b/orange-demo-multi-service/application/upms/upms-service/upms-service.iml
@@ -63,20 +63,23 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
@@ -99,6 +102,7 @@
+
diff --git a/orange-demo-multi-service/common/common-core/common-core.iml b/orange-demo-multi-service/common/common-core/common-core.iml
index 9e79ae23..18d93ae3 100644
--- a/orange-demo-multi-service/common/common-core/common-core.iml
+++ b/orange-demo-multi-service/common/common-core/common-core.iml
@@ -77,20 +77,23 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
diff --git a/orange-demo-multi-service/common/common-core/pom.xml b/orange-demo-multi-service/common/common-core/pom.xml
index 640d41ac..09e0231f 100644
--- a/orange-demo-multi-service/common/common-core/pom.xml
+++ b/orange-demo-multi-service/common/common-core/pom.xml
@@ -97,9 +97,9 @@
${druid.version}
- com.baomidou
- mybatis-plus-boot-starter
- ${mybatisplus.version}
+ tk.mybatis
+ mapper-spring-boot-starter
+ ${mybatis-mapper.version}
com.github.pagehelper
diff --git a/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/annotation/DeletedFlagColumn.java b/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/annotation/DeletedFlagColumn.java
new file mode 100644
index 00000000..19e0a067
--- /dev/null
+++ b/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/annotation/DeletedFlagColumn.java
@@ -0,0 +1,16 @@
+package com.orange.demo.common.core.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 主要用于标记逻辑删除字段。
+ *
+ * @author Jerry
+ * @date 2020-08-08
+ */
+@Target({ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DeletedFlagColumn {
+
+}
diff --git a/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java b/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java
index 68c57626..b2a98f04 100644
--- a/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java
+++ b/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java
@@ -27,7 +27,7 @@ import java.util.Map;
@Slf4j
public class DataSourceResolveAspect {
- private Map, DataSourceResolver> resolverMap = new HashMap<>();
+ private final Map, DataSourceResolver> resolverMap = new HashMap<>();
/**
* 所有配置MyDataSourceResovler注解的Service实现类。
diff --git a/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java b/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java
index b6bf2dc7..b508ea22 100644
--- a/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java
+++ b/orange-demo-multi-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java
@@ -10,8 +10,6 @@ import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
-import java.io.Serializable;
-
/**
* 字典缓存同步的AOP。该AOP的优先级必须比事务切面的优先级高,因此会在事务外执行该切面的代码。
*
@@ -41,23 +39,23 @@ public class DictCacheSyncAspect {
Object arg = joinPoint.getArgs()[0];
if ("saveNew".equals(methodName)) {
Object data = joinPoint.proceed();
- BaseDictService
+
+ com.orange.demo
+ common-log
+ 1.0.0
+
com.orange.demo
common-sequence
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/AreaCode.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/AreaCode.java
index 106c4b18..0e1a6449 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/AreaCode.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/AreaCode.java
@@ -1,8 +1,9 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 行政区划实体对象。
*
@@ -10,30 +11,31 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_area_code")
+@Table(name = "zz_area_code")
public class AreaCode {
/**
* 行政区划主键Id
*/
- @TableId(value = "area_id")
+ @Id
+ @Column(name = "area_id")
private Long areaId;
/**
* 行政区划名称
*/
- @TableField(value = "area_name")
+ @Column(name = "area_name")
private String areaName;
/**
* 行政区划级别 (1: 省级别 2: 市级别 3: 区级别)
*/
- @TableField(value = "area_level")
+ @Column(name = "area_level")
private Integer areaLevel;
/**
* 父级行政区划Id
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
}
\ No newline at end of file
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassCourse.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassCourse.java
index 7b4b7ea6..58aa2f80 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassCourse.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassCourse.java
@@ -1,7 +1,7 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
/**
* ClassCourse实体对象。
@@ -10,24 +10,26 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_class_course")
+@Table(name = "zz_class_course")
public class ClassCourse {
/**
* 班级Id。
*/
- @TableField(value = "class_id")
+ @Id
+ @Column(name = "class_id")
private Long classId;
/**
* 课程Id。
*/
- @TableField(value = "course_id")
+ @Id
+ @Column(name = "course_id")
private Long courseId;
/**
* 课程顺序(数值越小越靠前)。
*/
- @TableField(value = "course_order")
+ @Column(name = "course_order")
private Integer courseOrder;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassStudent.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassStudent.java
index 4f982b78..94cedea5 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassStudent.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/ClassStudent.java
@@ -1,7 +1,7 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
/**
* ClassStudent实体对象。
@@ -10,18 +10,20 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_class_student")
+@Table(name = "zz_class_student")
public class ClassStudent {
/**
* 班级Id。
*/
- @TableField(value = "class_id")
+ @Id
+ @Column(name = "class_id")
private Long classId;
/**
* 学生Id。
*/
- @TableField(value = "student_id")
+ @Id
+ @Column(name = "student_id")
private Long studentId;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Course.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Course.java
index d75ac2c7..2ffef183 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Course.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Course.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.webadmin.app.model.constant.CourseDifficult;
import com.orange.demo.application.common.constant.Subject;
import com.orange.demo.common.core.upload.UploadStoreTypeEnum;
@@ -12,6 +11,7 @@ import com.orange.demo.webadmin.app.vo.CourseVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.math.BigDecimal;
import java.util.Date;
@@ -24,19 +24,20 @@ import java.util.Map;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_course")
+@Table(name = "zz_course")
public class Course {
/**
* 主键Id。
*/
- @TableId(value = "course_id")
+ @Id
+ @Column(name = "course_id")
private Long courseId;
/**
* 课程名称。
*/
- @TableField(value = "course_name")
+ @Column(name = "course_name")
private String courseName;
/**
@@ -57,86 +58,86 @@ public class Course {
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 学科Id。
*/
- @TableField(value = "subject_id")
+ @Column(name = "subject_id")
private Integer subjectId;
/**
* 课时数量。
*/
- @TableField(value = "class_hour")
+ @Column(name = "class_hour")
private Integer classHour;
/**
* 多张课程图片地址。
*/
@UploadFlagColumn(storeType = UploadStoreTypeEnum.LOCAL_SYSTEM)
- @TableField(value = "picture_url")
+ @Column(name = "picture_url")
private String pictureUrl;
/**
* 创建用户Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 最后修改时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* price 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private BigDecimal priceStart;
/**
* price 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private BigDecimal priceEnd;
/**
* classHour 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private Integer classHourStart;
/**
* classHour 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private Integer classHourEnd;
/**
* createTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeEnd;
/**
* courseId 的多对多关联表数据对象。
*/
- @TableField(exist = false)
+ @Transient
private ClassCourse classCourse;
@RelationDict(
@@ -145,19 +146,19 @@ public class Course {
slaveModelClass = Grade.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationConstDict(
masterIdField = "difficulty",
constantDictClass = CourseDifficult.class)
- @TableField(exist = false)
+ @Transient
private Map difficultyDictMap;
@RelationConstDict(
masterIdField = "subjectId",
constantDictClass = Subject.class)
- @TableField(exist = false)
+ @Transient
private Map subjectIdDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/CourseTransStats.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/CourseTransStats.java
index f6777c01..ed9d6e2d 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/CourseTransStats.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/CourseTransStats.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.application.common.constant.Subject;
import com.orange.demo.common.core.annotation.RelationDict;
import com.orange.demo.common.core.annotation.RelationConstDict;
@@ -9,6 +8,7 @@ import com.orange.demo.webadmin.app.vo.CourseTransStatsVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -20,79 +20,81 @@ import java.util.Map;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_course_trans_stats")
+@Table(name = "zz_course_trans_stats")
public class CourseTransStats {
/**
* 主键Id。
*/
- @TableId(value = "stats_id", type = IdType.AUTO)
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "stats_id")
private Long statsId;
/**
* 统计日期。
*/
- @TableField(value = "stats_date")
+ @Column(name = "stats_date")
private Date statsDate;
/**
* 科目Id。
*/
- @TableField(value = "subject_id")
+ @Column(name = "subject_id")
private Integer subjectId;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 年级名称。
*/
- @TableField(value = "grade_name")
+ @Column(name = "grade_name")
private String gradeName;
/**
* 课程Id。
*/
- @TableField(value = "course_id")
+ @Column(name = "course_id")
private Long courseId;
/**
* 课程名称。
*/
- @TableField(value = "course_name")
+ @Column(name = "course_name")
private String courseName;
/**
* 学生上课次数。
*/
- @TableField(value = "student_attend_count")
+ @Column(name = "student_attend_count")
private Integer studentAttendCount;
/**
* 学生献花数量。
*/
- @TableField(value = "student_flower_amount")
+ @Column(name = "student_flower_amount")
private Integer studentFlowerAmount;
/**
* 学生献花次数。
*/
- @TableField(value = "student_flower_count")
+ @Column(name = "student_flower_count")
private Integer studentFlowerCount;
/**
* statsDate 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateStart;
/**
* statsDate 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateEnd;
@RelationDict(
@@ -101,13 +103,13 @@ public class CourseTransStats {
slaveModelClass = Grade.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationConstDict(
masterIdField = "subjectId",
constantDictClass = Subject.class)
- @TableField(exist = false)
+ @Transient
private Map subjectIdDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Grade.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Grade.java
index 3c6335e0..07298c39 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Grade.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Grade.java
@@ -1,7 +1,8 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
+import javax.persistence.*;
/**
* Grade实体对象。
@@ -10,24 +11,26 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_grade")
+@Table(name = "zz_grade")
public class Grade {
/**
* 主键Id。
*/
- @TableId(value = "grade_id", type = IdType.AUTO)
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 年级名称。
*/
- @TableField(value = "grade_name")
+ @Column(name = "grade_name")
private String gradeName;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
+ @DeletedFlagColumn
private Integer status;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/MaterialEdition.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/MaterialEdition.java
index 35fe7bd8..ed9b413e 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/MaterialEdition.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/MaterialEdition.java
@@ -1,7 +1,7 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
/**
* MaterialEdition实体对象。
@@ -10,19 +10,21 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_material_edition")
+@Table(name = "zz_material_edition")
public class MaterialEdition {
/**
* 主键Id。
*/
- @TableId(value = "edition_id", type = IdType.AUTO)
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @Column(name = "edition_id")
private Integer editionId;
/**
* 教材版本名称。
*/
- @TableField(value = "edition_name")
+ @Column(name = "edition_name")
private String editionName;
/**
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/SchoolInfo.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/SchoolInfo.java
index c2c36d23..a9086bde 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/SchoolInfo.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/SchoolInfo.java
@@ -1,12 +1,12 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.annotation.RelationDict;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.webadmin.app.vo.SchoolInfoVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Map;
@@ -17,31 +17,32 @@ import java.util.Map;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_school_info")
+@Table(name = "zz_school_info")
public class SchoolInfo {
/**
* 学校Id。
*/
- @TableId(value = "school_id")
+ @Id
+ @Column(name = "school_id")
private Long schoolId;
/**
* 学校名称。
*/
- @TableField(value = "school_name")
+ @Column(name = "school_name")
private String schoolName;
/**
* 所在省Id。
*/
- @TableField(value = "province_id")
+ @Column(name = "province_id")
private Long provinceId;
/**
* 所在城市Id。
*/
- @TableField(value = "city_id")
+ @Column(name = "city_id")
private Long cityId;
@RelationDict(
@@ -50,7 +51,7 @@ public class SchoolInfo {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map provinceIdDictMap;
@RelationDict(
@@ -59,7 +60,7 @@ public class SchoolInfo {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map cityIdDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Student.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Student.java
index 9255aa36..ab8d2f0f 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Student.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/Student.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.application.common.constant.Gender;
import com.orange.demo.application.common.constant.ExpLevel;
import com.orange.demo.application.common.constant.StudentStatus;
@@ -12,6 +11,7 @@ import com.orange.demo.webadmin.app.vo.StudentVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -23,43 +23,44 @@ import java.util.Map;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_student")
+@Table(name = "zz_student")
public class Student {
/**
* 学生Id。
*/
- @TableId(value = "student_id")
+ @Id
+ @Column(name = "student_id")
private Long studentId;
/**
* 登录手机。
*/
- @TableField(value = "login_mobile")
+ @Column(name = "login_mobile")
private String loginMobile;
/**
* 学生姓名。
*/
- @TableField(value = "student_name")
+ @Column(name = "student_name")
private String studentName;
/**
* 所在省份Id。
*/
- @TableField(value = "province_id")
+ @Column(name = "province_id")
private Long provinceId;
/**
* 所在城市Id。
*/
- @TableField(value = "city_id")
+ @Column(name = "city_id")
private Long cityId;
/**
* 区县Id。
*/
- @TableField(value = "district_id")
+ @Column(name = "district_id")
private Long districtId;
/**
@@ -75,37 +76,37 @@ public class Student {
/**
* 经验等级 (0: 初级 1: 中级 2: 高级 3: 资深)。
*/
- @TableField(value = "experience_level")
+ @Column(name = "experience_level")
private Integer experienceLevel;
/**
* 总共充值学币数量。
*/
- @TableField(value = "total_coin")
+ @Column(name = "total_coin")
private Integer totalCoin;
/**
* 可用学币数量。
*/
- @TableField(value = "left_coin")
+ @Column(name = "left_coin")
private Integer leftCoin;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 校区Id。
*/
- @TableField(value = "school_id")
+ @Column(name = "school_id")
private Long schoolId;
/**
* 注册时间。
*/
- @TableField(value = "register_time")
+ @Column(name = "register_time")
private Date registerTime;
/**
@@ -116,31 +117,31 @@ public class Student {
/**
* birthday 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String birthdayStart;
/**
* birthday 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String birthdayEnd;
/**
* registerTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String registerTimeStart;
/**
* registerTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String registerTimeEnd;
/**
* login_mobile / student_name LIKE搜索字符串。
*/
- @TableField(exist = false)
+ @Transient
private String searchString;
public void setSearchString(String searchString) {
@@ -153,7 +154,7 @@ public class Student {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map provinceIdDictMap;
@RelationDict(
@@ -162,7 +163,7 @@ public class Student {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map cityIdDictMap;
@RelationDict(
@@ -171,7 +172,7 @@ public class Student {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map districtIdDictMap;
@RelationDict(
@@ -180,7 +181,7 @@ public class Student {
slaveModelClass = Grade.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationDict(
@@ -189,25 +190,25 @@ public class Student {
slaveModelClass = SchoolInfo.class,
slaveIdField = "schoolId",
slaveNameField = "schoolName")
- @TableField(exist = false)
+ @Transient
private Map schoolIdDictMap;
@RelationConstDict(
masterIdField = "gender",
constantDictClass = Gender.class)
- @TableField(exist = false)
+ @Transient
private Map genderDictMap;
@RelationConstDict(
masterIdField = "experienceLevel",
constantDictClass = ExpLevel.class)
- @TableField(exist = false)
+ @Transient
private Map experienceLevelDictMap;
@RelationConstDict(
masterIdField = "status",
constantDictClass = StudentStatus.class)
- @TableField(exist = false)
+ @Transient
private Map statusDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionStats.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionStats.java
index 3c7811d4..da8b532b 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionStats.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionStats.java
@@ -1,12 +1,12 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.annotation.RelationDict;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.webadmin.app.vo.StudentActionStatsVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -18,145 +18,146 @@ import java.util.Map;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_student_action_stats")
+@Table(name = "zz_student_action_stats")
public class StudentActionStats {
/**
* 主键Id。
*/
- @TableId(value = "stats_id")
+ @Id
+ @Column(name = "stats_id")
private Long statsId;
/**
* 统计日期。
*/
- @TableField(value = "stats_date")
+ @Column(name = "stats_date")
private Date statsDate;
/**
* 统计小时。
*/
- @TableField(value = "stats_month")
+ @Column(name = "stats_month")
private Date statsMonth;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 学生所在省Id。
*/
- @TableField(value = "province_id")
+ @Column(name = "province_id")
private Long provinceId;
/**
* 学生所在城市Id。
*/
- @TableField(value = "city_id")
+ @Column(name = "city_id")
private Long cityId;
/**
* 购课学币数量。
*/
- @TableField(value = "buy_course_amount")
+ @Column(name = "buy_course_amount")
private Integer buyCourseAmount;
/**
* 购买课程次数。
*/
- @TableField(value = "buy_course_count")
+ @Column(name = "buy_course_count")
private Integer buyCourseCount;
/**
* 购买视频学币数量。
*/
- @TableField(value = "buy_video_amount")
+ @Column(name = "buy_video_amount")
private Integer buyVideoAmount;
/**
* 购买视频次数。
*/
- @TableField(value = "buy_video_count")
+ @Column(name = "buy_video_count")
private Integer buyVideoCount;
/**
* 购买作业学币数量。
*/
- @TableField(value = "buy_paper_amount")
+ @Column(name = "buy_paper_amount")
private Integer buyPaperAmount;
/**
* 购买作业次数。
*/
- @TableField(value = "buy_paper_count")
+ @Column(name = "buy_paper_count")
private Integer buyPaperCount;
/**
* 购买献花数量。
*/
- @TableField(value = "buy_flower_amount")
+ @Column(name = "buy_flower_amount")
private Integer buyFlowerAmount;
/**
* 购买献花次数。
*/
- @TableField(value = "buy_flower_count")
+ @Column(name = "buy_flower_count")
private Integer buyFlowerCount;
/**
* 充值学币数量。
*/
- @TableField(value = "recharge_coin_amount")
+ @Column(name = "recharge_coin_amount")
private Integer rechargeCoinAmount;
/**
* 充值学币次数。
*/
- @TableField(value = "recharge_coin_count")
+ @Column(name = "recharge_coin_count")
private Integer rechargeCoinCount;
/**
* 线下课程上课次数。
*/
- @TableField(value = "do_course_count")
+ @Column(name = "do_course_count")
private Integer doCourseCount;
/**
* 观看视频次数。
*/
- @TableField(value = "watch_video_count")
+ @Column(name = "watch_video_count")
private Integer watchVideoCount;
/**
* 购买献花消费学币数量。
*/
- @TableField(value = "watch_video_total_second")
+ @Column(name = "watch_video_total_second")
private Integer watchVideoTotalSecond;
/**
* 做题数量。
*/
- @TableField(value = "do_exercise_count")
+ @Column(name = "do_exercise_count")
private Integer doExerciseCount;
/**
* 做题正确的数量。
*/
- @TableField(value = "do_exercise_correct_count")
+ @Column(name = "do_exercise_correct_count")
private Integer doExerciseCorrectCount;
/**
* statsDate 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateStart;
/**
* statsDate 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String statsDateEnd;
@RelationDict(
@@ -165,7 +166,7 @@ public class StudentActionStats {
slaveModelClass = Grade.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationDict(
@@ -174,7 +175,7 @@ public class StudentActionStats {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map provinceIdDictMap;
@RelationDict(
@@ -183,7 +184,7 @@ public class StudentActionStats {
slaveModelClass = AreaCode.class,
slaveIdField = "areaId",
slaveNameField = "areaName")
- @TableField(exist = false)
+ @Transient
private Map cityIdDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionTrans.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionTrans.java
index f1446daa..06434a85 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionTrans.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentActionTrans.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.application.common.constant.StudentActionType;
import com.orange.demo.application.common.constant.DeviceType;
import com.orange.demo.common.core.annotation.RelationDict;
@@ -10,6 +9,7 @@ import com.orange.demo.webadmin.app.vo.StudentActionTransVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -21,109 +21,110 @@ import java.util.Map;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_student_action_trans")
+@Table(name = "zz_student_action_trans")
public class StudentActionTrans {
/**
* 主键Id。
*/
- @TableId(value = "trans_id")
+ @Id
+ @Column(name = "trans_id")
private Long transId;
/**
* 学生Id。
*/
- @TableField(value = "student_id")
+ @Column(name = "student_id")
private Long studentId;
/**
* 学生名称。
*/
- @TableField(value = "student_name")
+ @Column(name = "student_name")
private String studentName;
/**
* 学生校区。
*/
- @TableField(value = "school_id")
+ @Column(name = "school_id")
private Long schoolId;
/**
* 年级Id。
*/
- @TableField(value = "grade_id")
+ @Column(name = "grade_id")
private Integer gradeId;
/**
* 行为类型(0: 充值 1: 购课 2: 上课签到 3: 上课签退 4: 看视频课 5: 做作业 6: 刷题 7: 献花)。
*/
- @TableField(value = "action_type")
+ @Column(name = "action_type")
private Integer actionType;
/**
* 设备类型(0: iOS 1: Android 2: PC)。
*/
- @TableField(value = "device_type")
+ @Column(name = "device_type")
private Integer deviceType;
/**
* 看视频秒数。
*/
- @TableField(value = "watch_video_seconds")
+ @Column(name = "watch_video_seconds")
private Integer watchVideoSeconds;
/**
* 购买献花数量。
*/
- @TableField(value = "flower_count")
+ @Column(name = "flower_count")
private Integer flowerCount;
/**
* 购买作业数量。
*/
- @TableField(value = "paper_count")
+ @Column(name = "paper_count")
private Integer paperCount;
/**
* 购买视频数量。
*/
- @TableField(value = "video_count")
+ @Column(name = "video_count")
private Integer videoCount;
/**
* 购买课程数量。
*/
- @TableField(value = "course_count")
+ @Column(name = "course_count")
private Integer courseCount;
/**
* 充值学币数量。
*/
- @TableField(value = "coin_count")
+ @Column(name = "coin_count")
private Integer coinCount;
/**
* 做题是否正确标记。
*/
- @TableField(value = "exercise_correct_flag")
+ @Column(name = "exercise_correct_flag")
private Integer exerciseCorrectFlag;
/**
* 发生时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* createTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeEnd;
@RelationDict(
@@ -132,7 +133,7 @@ public class StudentActionTrans {
slaveModelClass = SchoolInfo.class,
slaveIdField = "schoolId",
slaveNameField = "schoolName")
- @TableField(exist = false)
+ @Transient
private Map schoolIdDictMap;
@RelationDict(
@@ -141,19 +142,19 @@ public class StudentActionTrans {
slaveModelClass = Grade.class,
slaveIdField = "gradeId",
slaveNameField = "gradeName")
- @TableField(exist = false)
+ @Transient
private Map gradeIdDictMap;
@RelationConstDict(
masterIdField = "actionType",
constantDictClass = StudentActionType.class)
- @TableField(exist = false)
+ @Transient
private Map actionTypeDictMap;
@RelationConstDict(
masterIdField = "deviceType",
constantDictClass = DeviceType.class)
- @TableField(exist = false)
+ @Transient
private Map deviceTypeDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentClass.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentClass.java
index 71d3fddc..fad6c3a5 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentClass.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/model/StudentClass.java
@@ -1,14 +1,15 @@
package com.orange.demo.webadmin.app.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.webadmin.app.model.constant.ClassLevel;
import com.orange.demo.common.core.annotation.RelationDict;
import com.orange.demo.common.core.annotation.RelationConstDict;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.webadmin.app.vo.StudentClassVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -20,61 +21,62 @@ import java.util.Map;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_class")
+@Table(name = "zz_class")
public class StudentClass {
/**
* 班级Id。
*/
- @TableId(value = "class_id")
+ @Id
+ @Column(name = "class_id")
private Long classId;
/**
* 班级名称。
*/
- @TableField(value = "class_name")
+ @Column(name = "class_name")
private String className;
/**
* 学校Id。
*/
- @TableField(value = "school_id")
+ @Column(name = "school_id")
private Long schoolId;
/**
* 学生班长Id。
*/
- @TableField(value = "leader_id")
+ @Column(name = "leader_id")
private Long leaderId;
/**
* 已完成课时数量。
*/
- @TableField(value = "finish_class_hour")
+ @Column(name = "finish_class_hour")
private Integer finishClassHour;
/**
* 班级级别(0: 初级班 1: 培优班 2: 冲刺提分班 3: 竞赛班)。
*/
- @TableField(value = "class_level")
+ @Column(name = "class_level")
private Integer classLevel;
/**
* 创建用户。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 班级创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
+ @DeletedFlagColumn
private Integer status;
@RelationDict(
@@ -83,7 +85,7 @@ public class StudentClass {
slaveModelClass = SchoolInfo.class,
slaveIdField = "schoolId",
slaveNameField = "schoolName")
- @TableField(exist = false)
+ @Transient
private Map schoolIdDictMap;
@RelationDict(
@@ -92,13 +94,13 @@ public class StudentClass {
slaveModelClass = Student.class,
slaveIdField = "studentId",
slaveNameField = "studentName")
- @TableField(exist = false)
+ @Transient
private Map leaderIdDictMap;
@RelationConstDict(
masterIdField = "classLevel",
constantDictClass = ClassLevel.class)
- @TableField(exist = false)
+ @Transient
private Map classLevelDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/CourseServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/CourseServiceImpl.java
index 90c9e2cb..bfaf2185 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/CourseServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/CourseServiceImpl.java
@@ -1,7 +1,5 @@
package com.orange.demo.webadmin.app.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.webadmin.app.service.*;
import com.orange.demo.webadmin.app.dao.*;
import com.orange.demo.webadmin.app.model.*;
@@ -81,8 +79,7 @@ public class CourseServiceImpl extends BaseService implements Cour
course.setCreateTime(originalCourse.getCreateTime());
course.setUpdateTime(new Date());
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(course, course.getCourseId());
- return courseMapper.update(course, uw) == 1;
+ return courseMapper.updateByPrimaryKey(course) == 1;
}
/**
@@ -94,13 +91,14 @@ public class CourseServiceImpl extends BaseService implements Cour
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long courseId) {
- if (courseMapper.deleteById(courseId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(courseId)) {
return false;
}
// 开始删除多对多父表的关联
ClassCourse classCourse = new ClassCourse();
classCourse.setCourseId(courseId);
- classCourseMapper.delete(new QueryWrapper<>(classCourse));
+ classCourseMapper.delete(classCourse);
return true;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/SchoolInfoServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/SchoolInfoServiceImpl.java
index 67afce07..d3a76bf7 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/SchoolInfoServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/SchoolInfoServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.app.service.impl;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.webadmin.app.service.*;
import com.orange.demo.webadmin.app.dao.*;
import com.orange.demo.webadmin.app.model.*;
@@ -69,8 +68,7 @@ public class SchoolInfoServiceImpl extends BaseService impleme
@Override
public boolean update(SchoolInfo schoolInfo, SchoolInfo originalSchoolInfo) {
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(schoolInfo, schoolInfo.getSchoolId());
- return schoolInfoMapper.update(schoolInfo, uw) == 1;
+ return schoolInfoMapper.updateByPrimaryKey(schoolInfo) == 1;
}
/**
@@ -82,7 +80,8 @@ public class SchoolInfoServiceImpl extends BaseService impleme
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long schoolId) {
- return schoolInfoMapper.deleteById(schoolId) == 1;
+ // 这里先删除主数据
+ return this.removeById(schoolId);
}
/**
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentActionTransServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentActionTransServiceImpl.java
index a6639f67..f13a8022 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentActionTransServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentActionTransServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.app.service.impl;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.webadmin.app.service.*;
import com.orange.demo.webadmin.app.dao.*;
import com.orange.demo.webadmin.app.model.*;
@@ -71,8 +70,7 @@ public class StudentActionTransServiceImpl extends BaseService uw = this.createUpdateQueryForNullValue(studentActionTrans, studentActionTrans.getTransId());
- return studentActionTransMapper.update(studentActionTrans, uw) == 1;
+ return studentActionTransMapper.updateByPrimaryKey(studentActionTrans) == 1;
}
/**
@@ -84,7 +82,8 @@ public class StudentActionTransServiceImpl extends BaseService imp
public boolean update(StudentClass studentClass, StudentClass originalStudentClass) {
studentClass.setCreateUserId(originalStudentClass.getCreateUserId());
studentClass.setCreateTime(originalStudentClass.getCreateTime());
+ studentClass.setStatus(GlobalDeletedFlag.NORMAL);
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(studentClass, studentClass.getClassId());
- return studentClassMapper.update(studentClass, uw) == 1;
+ return studentClassMapper.updateByPrimaryKey(studentClass) == 1;
}
/**
@@ -99,16 +98,17 @@ public class StudentClassServiceImpl extends BaseService imp
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long classId) {
- if (studentClassMapper.deleteById(classId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(classId)) {
return false;
}
// 开始删除多对多子表的关联
ClassCourse classCourse = new ClassCourse();
classCourse.setClassId(classId);
- classCourseMapper.delete(new QueryWrapper<>(classCourse));
+ classCourseMapper.delete(classCourse);
ClassStudent classStudent = new ClassStudent();
classStudent.setClassId(classId);
- classStudentMapper.delete(new QueryWrapper<>(classStudent));
+ classStudentMapper.delete(classStudent);
return true;
}
@@ -156,8 +156,8 @@ public class StudentClassServiceImpl extends BaseService imp
for (ClassCourse classCourse : classCourseList) {
classCourse.setClassId(classId);
MyModelUtil.setDefaultValue(classCourse, "courseOrder", 0);
- classCourseMapper.insert(classCourse);
}
+ classCourseMapper.insertList(classCourseList);
}
/**
@@ -169,13 +169,11 @@ public class StudentClassServiceImpl extends BaseService imp
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateClassCourse(ClassCourse classCourse) {
- ClassCourse filter = new ClassCourse();
- filter.setClassId(classCourse.getClassId());
- filter.setCourseId(classCourse.getCourseId());
- UpdateWrapper uw =
- BaseService.createUpdateQueryForNullValue(classCourse, ClassCourse.class);
- uw.setEntity(filter);
- return classCourseMapper.update(classCourse, uw) > 0;
+ Example e = new Example(ClassCourse.class);
+ e.createCriteria()
+ .andEqualTo("classId", classCourse.getClassId())
+ .andEqualTo("courseId", classCourse.getCourseId());
+ return classCourseMapper.updateByExample(classCourse, e) > 0;
}
/**
@@ -187,10 +185,11 @@ public class StudentClassServiceImpl extends BaseService imp
*/
@Override
public ClassCourse getClassCourse(Long classId, Long courseId) {
- ClassCourse filter = new ClassCourse();
- filter.setClassId(classId);
- filter.setCourseId(courseId);
- return classCourseMapper.selectOne(new QueryWrapper<>(filter));
+ Example e = new Example(ClassCourse.class);
+ e.createCriteria()
+ .andEqualTo("classId", classId)
+ .andEqualTo("courseId", courseId);
+ return classCourseMapper.selectOneByExample(e);
}
/**
@@ -206,7 +205,7 @@ public class StudentClassServiceImpl extends BaseService imp
ClassCourse filter = new ClassCourse();
filter.setClassId(classId);
filter.setCourseId(courseId);
- return classCourseMapper.delete(new QueryWrapper<>(filter)) > 0;
+ return classCourseMapper.delete(filter) > 0;
}
/**
@@ -220,8 +219,8 @@ public class StudentClassServiceImpl extends BaseService imp
public void addClassStudentList(List classStudentList, Long classId) {
for (ClassStudent classStudent : classStudentList) {
classStudent.setClassId(classId);
- classStudentMapper.insert(classStudent);
}
+ classStudentMapper.insertList(classStudentList);
}
/**
@@ -237,7 +236,7 @@ public class StudentClassServiceImpl extends BaseService imp
ClassStudent filter = new ClassStudent();
filter.setClassId(classId);
filter.setStudentId(studentId);
- return classStudentMapper.delete(new QueryWrapper<>(filter)) > 0;
+ return classStudentMapper.delete(filter) > 0;
}
/**
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentServiceImpl.java
index a06b6671..13f6be78 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/app/service/impl/StudentServiceImpl.java
@@ -1,7 +1,5 @@
package com.orange.demo.webadmin.app.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.application.common.constant.StudentStatus;
import com.orange.demo.webadmin.app.service.*;
import com.orange.demo.webadmin.app.dao.*;
@@ -83,8 +81,7 @@ public class StudentServiceImpl extends BaseService implements St
public boolean update(Student student, Student originalStudent) {
student.setRegisterTime(originalStudent.getRegisterTime());
// 这里重点提示,在执行主表数据更新之前,如果有哪些字段不支持修改操作,请用原有数据对象字段替换当前数据字段。
- UpdateWrapper uw = this.createUpdateQueryForNullValue(student, student.getStudentId());
- return studentMapper.update(student, uw) == 1;
+ return studentMapper.updateByPrimaryKey(student) == 1;
}
/**
@@ -96,13 +93,14 @@ public class StudentServiceImpl extends BaseService implements St
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long studentId) {
- if (studentMapper.deleteById(studentId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(studentId)) {
return false;
}
// 开始删除多对多父表的关联
ClassStudent classStudent = new ClassStudent();
classStudent.setStudentId(studentId);
- classStudentMapper.delete(new QueryWrapper<>(classStudent));
+ classStudentMapper.delete(classStudent);
return true;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/config/DataSourceConfig.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/config/DataSourceConfig.java
index a28bad7d..04611585 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/config/DataSourceConfig.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/config/DataSourceConfig.java
@@ -6,7 +6,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.transaction.annotation.EnableTransactionManagement;
-import org.mybatis.spring.annotation.MapperScan;
+import tk.mybatis.spring.annotation.MapperScan;
import javax.sql.DataSource;
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/LoginController.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/LoginController.java
index d718122a..500e9609 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/LoginController.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/LoginController.java
@@ -10,8 +10,7 @@ import io.swagger.annotations.ApiImplicitParams;
import lombok.extern.slf4j.Slf4j;
import com.orange.demo.webadmin.config.ApplicationConfig;
import com.orange.demo.webadmin.upms.service.*;
-import com.orange.demo.webadmin.upms.model.SysMenu;
-import com.orange.demo.webadmin.upms.model.SysUser;
+import com.orange.demo.webadmin.upms.model.*;
import com.orange.demo.webadmin.upms.model.constant.SysUserStatus;
import com.orange.demo.webadmin.upms.model.constant.SysUserType;
import com.orange.demo.common.core.annotation.NoAuthInterface;
@@ -175,9 +174,10 @@ public class LoginController {
}
private JSONObject buildLoginData(SysUser user) {
+ int deviceType = MyCommonUtil.getDeviceType();
boolean isAdmin = user.getUserType() == SysUserType.TYPE_ADMIN;
Map claims = new HashMap<>(3);
- String sessionId = user.getLoginName() + "_" + MyCommonUtil.generateUuid();
+ String sessionId = user.getLoginName() + "_" + deviceType + "_" + MyCommonUtil.generateUuid();
claims.put("sessionId", sessionId);
String token = JwtUtil.generateToken(claims, appConfig.getExpiration(), appConfig.getTokenSigningKey());
JSONObject jsonData = new JSONObject();
@@ -192,6 +192,7 @@ public class LoginController {
tokenData.setIsAdmin(isAdmin);
tokenData.setLoginIp(IpUtil.getRemoteIpAddress(ContextUtil.getHttpRequest()));
tokenData.setLoginTime(new Date());
+ tokenData.setDeviceType(deviceType);
String sessionIdKey = RedisKeyUtil.makeSessionIdKey(sessionId);
String sessionData = JSON.toJSONString(tokenData, SerializerFeature.WriteNonStringValueAsString);
RBucket bucket = redissonClient.getBucket(sessionIdKey);
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/SysUserController.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/SysUserController.java
index 1ea9200f..c322cf85 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/SysUserController.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/controller/SysUserController.java
@@ -1,5 +1,6 @@
package com.orange.demo.webadmin.upms.controller;
+import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.page.PageMethod;
import com.orange.demo.webadmin.upms.vo.*;
import com.orange.demo.webadmin.upms.dto.*;
@@ -48,7 +49,6 @@ public class SysUserController {
* @param roleIdListString 逗号分隔的角色Id列表。
* @return 应答结果对象,包含新增用户的主键Id。
*/
- @SuppressWarnings("unchecked")
@ApiOperationSupport(ignoreParameters = {
"sysUserDto.userId",
"sysUserDto.createTimeStart",
@@ -61,11 +61,12 @@ public class SysUserController {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, errorMessage);
}
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
- CallResult result = sysUserService.verifyRelatedData(sysUser, null, roleIdListString);
+ CallResult result = sysUserService.verifyRelatedData(
+ sysUser, null, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
}
- Set roleIdSet = (Set) result.getData().get("roleIdSet");
+ Set roleIdSet = result.getData().getObject("roleIdSet", new TypeReference>() {});
sysUserService.saveNew(sysUser, roleIdSet);
return ResponseResult.success(sysUser.getUserId());
}
@@ -77,7 +78,6 @@ public class SysUserController {
* @param roleIdListString 逗号分隔的角色Id列表。
* @return 应答结果对象。
*/
- @SuppressWarnings("unchecked")
@ApiOperationSupport(ignoreParameters = {
"sysUserDto.createTimeStart",
"sysUserDto.createTimeEnd"})
@@ -93,11 +93,12 @@ public class SysUserController {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
SysUser sysUser = MyModelUtil.copyTo(sysUserDto, SysUser.class);
- CallResult result = sysUserService.verifyRelatedData(sysUser, originalUser, roleIdListString);
+ CallResult result = sysUserService.verifyRelatedData(
+ sysUser, originalUser, roleIdListString);
if (!result.isSuccess()) {
return ResponseResult.error(ErrorCodeEnum.DATA_VALIDATED_FAILED, result.getErrorMessage());
}
- Set roleIdSet = (Set) result.getData().get("roleIdSet");
+ Set roleIdSet = result.getData().getObject("roleIdSet", new TypeReference>() {});
if (!sysUserService.update(sysUser, originalUser, roleIdSet)) {
return ResponseResult.error(ErrorCodeEnum.DATA_NOT_EXIST);
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenu.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenu.java
index 7fa30bd3..1268561b 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenu.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenu.java
@@ -1,6 +1,6 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.webadmin.upms.vo.SysMenuVo;
@@ -9,6 +9,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.*;
/**
@@ -18,55 +19,56 @@ import java.util.*;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_menu")
+@Table(name = "zz_sys_menu")
public class SysMenu {
/**
* 菜单Id。
*/
- @TableId(value = "menu_id")
+ @Id
+ @Column(name = "menu_id")
private Long menuId;
/**
* 父菜单Id,目录菜单的父菜单为null。
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
/**
* 菜单显示名称。
*/
- @TableField(value = "menu_name")
+ @Column(name = "menu_name")
private String menuName;
/**
* 菜单类型(0: 目录 1: 菜单 2: 按钮 3: UI片段)。
*/
- @TableField(value = "menu_type")
+ @Column(name = "menu_type")
private Integer menuType;
/**
* 前端表单路由名称,仅用于menu_type为1的菜单类型。
*/
- @TableField(value = "form_router_name")
+ @Column(name = "form_router_name")
private String formRouterName;
/**
* 在线表单主键Id,仅用于在线表单绑定的菜单。
*/
- @TableField(value = "online_form_id")
+ @Column(name = "online_form_id")
private Long onlineFormId;
/**
* 在线表单菜单的权限控制类型,具体值可参考SysOnlineMenuPermType常量对象。
*/
- @TableField(value = "online_menu_perm_type")
+ @Column(name = "online_menu_perm_type")
private Integer onlineMenuPermType;
/**
* 菜单显示顺序 (值越小,排序越靠前)。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
@@ -77,39 +79,39 @@ public class SysMenu {
/**
* 创建者Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 更新者Id。
*/
- @TableField(value = "update_user_id")
+ @Column(name = "update_user_id")
private Long updateUserId;
/**
* 更新时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysMenuPermCodeMapper",
relationMasterIdField = "menuId",
relationModelClass = SysMenuPermCode.class)
- @TableField(exist = false)
+ @Transient
private List sysMenuPermCodeList;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenuPermCode.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenuPermCode.java
index 10251988..eb1274e4 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenuPermCode.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysMenuPermCode.java
@@ -1,8 +1,9 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 菜单与权限字关联实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_menu_perm_code")
+@Table(name = "zz_sys_menu_perm_code")
public class SysMenuPermCode {
/**
* 关联菜单Id。
*/
- @TableField(value = "menu_id")
+ @Id
+ @Column(name = "menu_id")
private Long menuId;
/**
* 关联权限字Id。
*/
- @TableField(value = "perm_code_id")
+ @Id
+ @Column(name = "perm_code_id")
private Long permCodeId;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPerm.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPerm.java
index aeed729f..fec2622f 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPerm.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPerm.java
@@ -1,9 +1,10 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationDict;
import lombok.Data;
+import javax.persistence.*;
import java.util.*;
/**
@@ -13,25 +14,26 @@ import java.util.*;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_perm")
+@Table(name = "zz_sys_perm")
public class SysPerm {
/**
* 权限资源Id。
*/
- @TableId(value = "perm_id")
+ @Id
+ @Column(name = "perm_id")
private Long permId;
/**
* 权限所在的权限模块Id。
*/
- @TableField(value = "module_id")
+ @Column(name = "module_id")
private Long moduleId;
/**
* 权限名称。
*/
- @TableField(value = "perm_name")
+ @Column(name = "perm_name")
private String permName;
/**
@@ -42,38 +44,38 @@ public class SysPerm {
/**
* 权限在当前模块下的顺序,由小到大。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
* 创建者Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 更新者Id。
*/
- @TableField(value = "update_user_id")
+ @Column(name = "update_user_id")
private Long updateUserId;
/**
* 更新时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationDict(
@@ -82,6 +84,6 @@ public class SysPerm {
slaveModelClass = SysPermModule.class,
slaveIdField = "moduleId",
slaveNameField = "moduleName")
- @TableField(exist = false)
+ @Transient
private Map moduleIdDictMap;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCode.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCode.java
index 1de6b38f..d6fc97bd 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCode.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCode.java
@@ -1,6 +1,6 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.webadmin.upms.vo.SysPermCodeVo;
@@ -9,6 +9,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.*;
/**
@@ -18,81 +19,82 @@ import java.util.*;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_perm_code")
+@Table(name = "zz_sys_perm_code")
public class SysPermCode {
/**
* 权限字Id。
*/
- @TableId(value = "perm_code_id")
+ @Id
+ @Column(name = "perm_code_id")
private Long permCodeId;
/**
* 上级权限字Id。
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
/**
* 权限字标识(一般为有含义的英文字符串)。
*/
- @TableField(value = "perm_code")
+ @Column(name = "perm_code")
private String permCode;
/**
* 权限类型(0: 表单 1: UI片段 2: 操作)。
*/
- @TableField(value = "perm_code_type")
+ @Column(name = "perm_code_type")
private Integer permCodeType;
/**
* 显示名称。
*/
- @TableField(value = "show_name")
+ @Column(name = "show_name")
private String showName;
/**
* 显示顺序(数值越小,越靠前)。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
* 创建者Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 更新者Id。
*/
- @TableField(value = "update_user_id")
+ @Column(name = "update_user_id")
private Long updateUserId;
/**
* 更新时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysPermCodePermMapper",
relationMasterIdField = "permCodeId",
relationModelClass = SysPermCodePerm.class)
- @TableField(exist = false)
+ @Transient
private List sysPermCodePermList;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCodePerm.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCodePerm.java
index 0b66a4f5..2ac7f0de 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCodePerm.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermCodePerm.java
@@ -1,8 +1,9 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 权限字与权限资源关联实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_perm_code_perm")
+@Table(name = "zz_sys_perm_code_perm")
public class SysPermCodePerm {
/**
* 权限字Id。
*/
- @TableField(value = "perm_code_id")
+ @Id
+ @Column(name = "perm_code_id")
private Long permCodeId;
/**
* 权限Id。
*/
- @TableField(value = "perm_id")
+ @Id
+ @Column(name = "perm_id")
private Long permId;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermModule.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermModule.java
index e7688b31..19f4258a 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermModule.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermModule.java
@@ -1,8 +1,9 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import lombok.Data;
+import javax.persistence.*;
import java.util.*;
/**
@@ -12,70 +13,71 @@ import java.util.*;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_perm_module")
+@Table(name = "zz_sys_perm_module")
public class SysPermModule {
/**
* 权限模块Id。
*/
- @TableId(value = "module_id")
+ @Id
+ @Column(name = "module_id")
private Long moduleId;
/**
* 上级权限模块Id。
*/
- @TableField(value = "parent_id")
+ @Column(name = "parent_id")
private Long parentId;
/**
* 权限模块名称。
*/
- @TableField(value = "module_name")
+ @Column(name = "module_name")
private String moduleName;
/**
* 权限模块类型(0: 普通模块 1: Controller模块)。
*/
- @TableField(value = "module_type")
+ @Column(name = "module_type")
private Integer moduleType;
/**
* 权限模块在当前层级下的顺序,由小到大。
*/
- @TableField(value = "show_order")
+ @Column(name = "show_order")
private Integer showOrder;
/**
* 创建者Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 更新者Id。
*/
- @TableField(value = "update_user_id")
+ @Column(name = "update_user_id")
private Long updateUserId;
/**
* 更新时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
- @TableField(exist = false)
+ @Transient
private List sysPermList;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermWhitelist.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermWhitelist.java
index dc1c7df0..7e96b337 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermWhitelist.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysPermWhitelist.java
@@ -1,8 +1,9 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 白名单实体对象。
*
@@ -10,24 +11,25 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_perm_whitelist")
+@Table(name = "zz_sys_perm_whitelist")
public class SysPermWhitelist {
/**
* 权限资源的URL。
*/
- @TableId(value = "perm_url")
+ @Id
+ @Column(name = "perm_url")
private String permUrl;
/**
* 权限资源所属模块名字(通常是Controller的名字)。
*/
- @TableField(value = "module_name")
+ @Column(name = "module_name")
private String moduleName;
/**
* 权限的名称。
*/
- @TableField(value = "perm_name")
+ @Column(name = "perm_name")
private String permName;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRole.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRole.java
index 178d2c19..bfdc7d2b 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRole.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRole.java
@@ -1,6 +1,6 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
import com.orange.demo.webadmin.upms.vo.SysRoleVo;
@@ -9,6 +9,7 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.*;
/**
@@ -18,57 +19,58 @@ import java.util.*;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_role")
+@Table(name = "zz_sys_role")
public class SysRole {
/**
* 角色Id。
*/
- @TableId(value = "role_id")
+ @Id
+ @Column(name = "role_id")
private Long roleId;
/**
* 角色名称。
*/
- @TableField(value = "role_name")
+ @Column(name = "role_name")
private String roleName;
/**
* 创建者Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 更新者Id。
*/
- @TableField(value = "update_user_id")
+ @Column(name = "update_user_id")
private Long updateUserId;
/**
* 更新时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
@RelationManyToMany(
relationMapperName = "sysRoleMenuMapper",
relationMasterIdField = "roleId",
relationModelClass = SysRoleMenu.class)
- @TableField(exist = false)
+ @Transient
private List sysRoleMenuList;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRoleMenu.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRoleMenu.java
index 78c3ca90..cc8ad5e8 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRoleMenu.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysRoleMenu.java
@@ -1,8 +1,9 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 角色菜单实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_role_menu")
+@Table(name = "zz_sys_role_menu")
public class SysRoleMenu {
/**
* 角色Id。
*/
- @TableField(value = "role_id")
+ @Id
+ @Column(name = "role_id")
private Long roleId;
/**
* 菜单Id。
*/
- @TableField(value = "menu_id")
+ @Id
+ @Column(name = "menu_id")
private Long menuId;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUser.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUser.java
index a4a4730c..410b87fb 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUser.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUser.java
@@ -1,15 +1,16 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.webadmin.upms.model.constant.SysUserType;
import com.orange.demo.webadmin.upms.model.constant.SysUserStatus;
import com.orange.demo.common.core.annotation.RelationConstDict;
import com.orange.demo.common.core.annotation.RelationManyToMany;
import com.orange.demo.common.core.base.mapper.BaseModelMapper;
+import com.orange.demo.common.core.annotation.DeletedFlagColumn;
import com.orange.demo.webadmin.upms.vo.SysUserVo;
import lombok.Data;
import org.mapstruct.*;
import org.mapstruct.factory.Mappers;
+import javax.persistence.*;
import java.util.Date;
import java.util.Map;
@@ -22,19 +23,20 @@ import java.util.List;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_user")
+@Table(name = "zz_sys_user")
public class SysUser {
/**
* 用户Id。
*/
- @TableId(value = "user_id")
+ @Id
+ @Column(name = "user_id")
private Long userId;
/**
* 登录用户名。
*/
- @TableField(value = "login_name")
+ @Column(name = "login_name")
private String loginName;
/**
@@ -45,68 +47,68 @@ public class SysUser {
/**
* 用户显示名称。
*/
- @TableField(value = "show_name")
+ @Column(name = "show_name")
private String showName;
/**
* 用户类型(0: 管理员 1: 系统管理用户 2: 系统业务用户)。
*/
- @TableField(value = "user_type")
+ @Column(name = "user_type")
private Integer userType;
/**
* 用户头像的Url。
*/
- @TableField(value = "head_image_url")
+ @Column(name = "head_image_url")
private String headImageUrl;
/**
* 用户状态(0: 正常 1: 锁定)。
*/
- @TableField(value = "user_status")
+ @Column(name = "user_status")
private Integer userStatus;
/**
* 逻辑删除标记字段(1: 正常 -1: 已删除)。
*/
- @TableLogic
- @TableField(value = "deleted_flag")
+ @DeletedFlagColumn
+ @Column(name = "deleted_flag")
private Integer deletedFlag;
/**
* 创建用户Id。
*/
- @TableField(value = "create_user_id")
+ @Column(name = "create_user_id")
private Long createUserId;
/**
* 更新者Id。
*/
- @TableField(value = "update_user_id")
+ @Column(name = "update_user_id")
private Long updateUserId;
/**
* 创建时间。
*/
- @TableField(value = "create_time")
+ @Column(name = "create_time")
private Date createTime;
/**
* 更新时间。
*/
- @TableField(value = "update_time")
+ @Column(name = "update_time")
private Date updateTime;
/**
* createTime 范围过滤起始值(>=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeStart;
/**
* createTime 范围过滤结束值(<=)。
*/
- @TableField(exist = false)
+ @Transient
private String createTimeEnd;
/**
@@ -116,19 +118,19 @@ public class SysUser {
relationMapperName = "sysUserRoleMapper",
relationMasterIdField = "userId",
relationModelClass = SysUserRole.class)
- @TableField(exist = false)
+ @Transient
private List sysUserRoleList;
@RelationConstDict(
masterIdField = "userType",
constantDictClass = SysUserType.class)
- @TableField(exist = false)
+ @Transient
private Map userTypeDictMap;
@RelationConstDict(
masterIdField = "userStatus",
constantDictClass = SysUserStatus.class)
- @TableField(exist = false)
+ @Transient
private Map userStatusDictMap;
@Mapper
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUserRole.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUserRole.java
index 8c999260..fbe7b92e 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUserRole.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/model/SysUserRole.java
@@ -1,8 +1,9 @@
package com.orange.demo.webadmin.upms.model;
-import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
+import javax.persistence.*;
+
/**
* 用户角色实体对象。
*
@@ -10,18 +11,20 @@ import lombok.Data;
* @date 2020-09-24
*/
@Data
-@TableName(value = "zz_sys_user_role")
+@Table(name = "zz_sys_user_role")
public class SysUserRole {
/**
* 用户Id。
*/
- @TableField(value = "user_id")
+ @Id
+ @Column(name = "user_id")
private Long userId;
/**
* 角色Id。
*/
- @TableField(value = "role_id")
+ @Id
+ @Column(name = "role_id")
private Long roleId;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/SysUserService.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/SysUserService.java
index 792c1420..11f6af43 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/SysUserService.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/SysUserService.java
@@ -128,10 +128,10 @@ public interface SysUserService extends IBaseService {
/**
* 验证用户对象关联的数据是否都合法。
*
- * @param sysUser 当前操作的对象。
- * @param originalSysUser 原有对象。
- * @param roleIdListString 逗号分隔的角色Id列表字符串。
+ * @param sysUser 当前操作的对象。
+ * @param originalSysUser 原有对象。
+ * @param roleIds 逗号分隔的角色Id列表字符串。
* @return 验证结果。
*/
- CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString);
+ CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds);
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysMenuServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysMenuServiceImpl.java
index 8b7fe048..28b39290 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysMenuServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysMenuServiceImpl.java
@@ -2,9 +2,6 @@ package com.orange.demo.webadmin.upms.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -26,6 +23,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@@ -76,12 +74,14 @@ public class SysMenuServiceImpl extends BaseService implements Sy
sysMenu.setDeletedFlag(GlobalDeletedFlag.NORMAL);
sysMenuMapper.insert(sysMenu);
if (permCodeIdSet != null) {
+ List sysMenuPermCodeList = new LinkedList<>();
for (Long permCodeId : permCodeIdSet) {
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(sysMenu.getMenuId());
menuPermCode.setPermCodeId(permCodeId);
- sysMenuPermCodeMapper.insert(menuPermCode);
+ sysMenuPermCodeList.add(menuPermCode);
}
+ sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
}
// 判断当前菜单是否为指向在线表单的菜单,并将根据约定,动态插入两个子菜单。
if (sysMenu.getOnlineFormId() != null) {
@@ -124,27 +124,30 @@ public class SysMenuServiceImpl extends BaseService implements Sy
public boolean update(SysMenu sysMenu, SysMenu originalSysMenu, Set permCodeIdSet) {
MyModelUtil.fillCommonsForUpdate(sysMenu, originalSysMenu);
sysMenu.setMenuType(originalSysMenu.getMenuType());
- UpdateWrapper uw = this.createUpdateQueryForNullValue(sysMenu, sysMenu.getMenuId());
- if (sysMenuMapper.update(sysMenu, uw) != 1) {
+ sysMenu.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ if (sysMenuMapper.updateByPrimaryKey(sysMenu) != 1) {
return false;
}
SysMenuPermCode deletedMenuPermCode = new SysMenuPermCode();
deletedMenuPermCode.setMenuId(sysMenu.getMenuId());
- sysMenuPermCodeMapper.delete(new QueryWrapper<>(deletedMenuPermCode));
+ sysMenuPermCodeMapper.delete(deletedMenuPermCode);
if (permCodeIdSet != null) {
+ List sysMenuPermCodeList = new LinkedList<>();
for (Long permCodeId : permCodeIdSet) {
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(sysMenu.getMenuId());
menuPermCode.setPermCodeId(permCodeId);
- sysMenuPermCodeMapper.insert(menuPermCode);
+ sysMenuPermCodeList.add(menuPermCode);
}
+ sysMenuPermCodeMapper.insertList(sysMenuPermCodeList);
}
// 如果当前菜单的在线表单Id变化了,就需要同步更新他的内置子菜单也同步更新。
if (ObjectUtil.notEqual(originalSysMenu.getOnlineFormId(), sysMenu.getOnlineFormId())) {
SysMenu onlineSubMenu = new SysMenu();
onlineSubMenu.setOnlineFormId(sysMenu.getOnlineFormId());
- sysMenuMapper.update(onlineSubMenu,
- new QueryWrapper().lambda().eq(SysMenu::getParentId, sysMenu.getMenuId()));
+ Example e = new Example(SysMenu.class);
+ e.createCriteria().andEqualTo("parentId", sysMenu.getMenuId());
+ sysMenuMapper.updateByExampleSelective(onlineSubMenu, e);
}
return true;
}
@@ -159,18 +162,23 @@ public class SysMenuServiceImpl extends BaseService implements Sy
@Override
public boolean remove(SysMenu menu) {
Long menuId = menu.getMenuId();
- if (sysMenuMapper.deleteById(menuId) != 1) {
+ if (!this.removeById(menuId)) {
return false;
}
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setMenuId(menuId);
- sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
+ sysRoleMenuMapper.delete(roleMenu);
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setMenuId(menuId);
- sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
+ sysMenuPermCodeMapper.delete(menuPermCode);
// 如果为指向在线表单的菜单,则连同删除子菜单
if (menu.getOnlineFormId() != null) {
- sysMenuMapper.delete(new QueryWrapper().lambda().eq(SysMenu::getParentId, menuId));
+ Example e = new Example(SysMenu.class);
+ Example.Criteria c = e.createCriteria().andEqualTo("parentId", menuId);
+ c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
+ SysMenu deletedSubMenu = new SysMenu();
+ deletedSubMenu.setDeletedFlag(GlobalDeletedFlag.DELETED);
+ sysMenuMapper.updateByExampleSelective(deletedSubMenu, e);
}
return true;
}
@@ -182,11 +190,12 @@ public class SysMenuServiceImpl extends BaseService implements Sy
*/
@Override
public Collection getAllMenuList() {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
- queryWrapper.in(this.safeMapToColumnName("menuType"),
- Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
- return sysMenuMapper.selectList(queryWrapper);
+ Example e = new Example(SysMenu.class);
+ e.orderBy("showOrder");
+ Example.Criteria c = e.createCriteria();
+ c.andIn("menuType", Arrays.asList(SysMenuType.TYPE_MENU, SysMenuType.TYPE_DIRECTORY));
+ c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
+ return sysMenuMapper.selectByExample(e);
}
/**
@@ -285,12 +294,12 @@ public class SysMenuServiceImpl extends BaseService implements Sy
*/
@Override
public List getAllOnlineMenuList(Integer menuType) {
- LambdaQueryWrapper queryWrapper =
- new QueryWrapper().lambda().isNotNull(SysMenu::getOnlineFormId);
+ Example e = new Example(SysMenu.class);
+ Example.Criteria c = e.createCriteria().andIsNotNull("onlineFormId");
if (menuType != null) {
- queryWrapper.eq(SysMenu::getMenuType, menuType);
+ c.andEqualTo("menuType", menuType);
}
- return sysMenuMapper.selectList(queryWrapper);
+ return sysMenuMapper.selectByExample(e);
}
/**
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermCodeServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermCodeServiceImpl.java
index 15e561d3..e5a85916 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermCodeServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermCodeServiceImpl.java
@@ -1,8 +1,6 @@
package com.orange.demo.webadmin.upms.service.impl;
import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
@@ -95,12 +93,14 @@ public class SysPermCodeServiceImpl extends BaseService imple
sysPermCode.setDeletedFlag(GlobalDeletedFlag.NORMAL);
sysPermCodeMapper.insert(sysPermCode);
if (permIdSet != null) {
+ List sysPermCodePermList = new LinkedList<>();
for (Long permId : permIdSet) {
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
permCodePerm.setPermId(permId);
- sysPermCodePermMapper.insert(permCodePerm);
+ sysPermCodePermList.add(permCodePerm);
}
+ sysPermCodePermMapper.insertList(sysPermCodePermList);
}
return sysPermCode;
}
@@ -118,21 +118,22 @@ public class SysPermCodeServiceImpl extends BaseService imple
public boolean update(SysPermCode sysPermCode, SysPermCode originalSysPermCode, Set permIdSet) {
MyModelUtil.fillCommonsForUpdate(sysPermCode, originalSysPermCode);
sysPermCode.setParentId(originalSysPermCode.getParentId());
- UpdateWrapper uw =
- this.createUpdateQueryForNullValue(sysPermCode, sysPermCode.getPermCodeId());
- if (sysPermCodeMapper.update(sysPermCode, uw) != 1) {
- return false;
+ sysPermCode.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ if (sysPermCodeMapper.updateByPrimaryKey(sysPermCode) != 1) {
+ return false;
}
SysPermCodePerm deletedPermCodePerm = new SysPermCodePerm();
deletedPermCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
- sysPermCodePermMapper.delete(new QueryWrapper<>(deletedPermCodePerm));
+ sysPermCodePermMapper.delete(deletedPermCodePerm);
if (permIdSet != null) {
+ List sysPermCodePermList = new LinkedList<>();
for (Long permId : permIdSet) {
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(sysPermCode.getPermCodeId());
permCodePerm.setPermId(permId);
- sysPermCodePermMapper.insert(permCodePerm);
+ sysPermCodePermList.add(permCodePerm);
}
+ sysPermCodePermMapper.insertList(sysPermCodePermList);
}
return true;
}
@@ -146,15 +147,15 @@ public class SysPermCodeServiceImpl extends BaseService imple
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long permCodeId) {
- if (sysPermCodeMapper.deleteById(permCodeId) != 1) {
+ if (!this.removeById(permCodeId)) {
return false;
}
SysMenuPermCode menuPermCode = new SysMenuPermCode();
menuPermCode.setPermCodeId(permCodeId);
- sysMenuPermCodeMapper.delete(new QueryWrapper<>(menuPermCode));
+ sysMenuPermCodeMapper.delete(menuPermCode);
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermCodeId(permCodeId);
- sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
+ sysPermCodePermMapper.delete(permCodePerm);
return true;
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermModuleServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermModuleServiceImpl.java
index 94caeaf1..bfcf722b 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermModuleServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermModuleServiceImpl.java
@@ -71,7 +71,8 @@ public class SysPermModuleServiceImpl extends BaseService i
@Override
public boolean update(SysPermModule sysPermModule, SysPermModule originalSysPermModule) {
MyModelUtil.fillCommonsForUpdate(sysPermModule, originalSysPermModule);
- return sysPermModuleMapper.updateById(sysPermModule) != 0;
+ sysPermModule.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ return sysPermModuleMapper.updateByPrimaryKey(sysPermModule) != 0;
}
/**
@@ -83,7 +84,7 @@ public class SysPermModuleServiceImpl extends BaseService i
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long moduleId) {
- return sysPermModuleMapper.deleteById(moduleId) == 1;
+ return this.removeById(moduleId);
}
/**
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermServiceImpl.java
index 56f41b56..a8bc144f 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysPermServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.upms.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.util.ObjectUtil;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.sequence.wrapper.IdGeneratorWrapper;
@@ -24,6 +23,7 @@ import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -90,8 +90,9 @@ public class SysPermServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean update(SysPerm perm, SysPerm originalPerm) {
+ perm.setDeletedFlag(GlobalDeletedFlag.NORMAL);
MyModelUtil.fillCommonsForUpdate(perm, originalPerm);
- return sysPermMapper.updateById(perm) != 0;
+ return sysPermMapper.updateByPrimaryKeySelective(perm) != 0;
}
/**
@@ -103,12 +104,12 @@ public class SysPermServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long permId) {
- if (sysPermMapper.deleteById(permId) != 1) {
+ if (!this.removeById(permId)) {
return false;
}
SysPermCodePerm permCodePerm = new SysPermCodePerm();
permCodePerm.setPermId(permId);
- sysPermCodePermMapper.delete(new QueryWrapper<>(permCodePerm));
+ sysPermCodePermMapper.delete(permCodePerm);
return true;
}
@@ -120,13 +121,17 @@ public class SysPermServiceImpl extends BaseService implements Sy
*/
@Override
public List getPermListWithRelation(SysPerm sysPermFilter) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.orderByAsc(this.safeMapToColumnName("showOrder"));
- queryWrapper.eq(ObjectUtil.isNotNull(sysPermFilter.getModuleId()),
- this.safeMapToColumnName("moduleId"), sysPermFilter.getModuleId());
- queryWrapper.like(ObjectUtil.isNotNull(sysPermFilter.getUrl()),
- this.safeMapToColumnName("url"), "%" + sysPermFilter.getUrl() + "%");
- List permList = sysPermMapper.selectList(queryWrapper);
+ Example e = new Example(SysPerm.class);
+ e.orderBy("showOrder");
+ Example.Criteria c = e.createCriteria();
+ if (ObjectUtil.isNotNull(sysPermFilter.getModuleId())) {
+ c.andEqualTo("moduleId", sysPermFilter.getModuleId());
+ }
+ if (ObjectUtil.isNotNull(sysPermFilter.getUrl())) {
+ c.andLike("url", "%" + sysPermFilter.getUrl() + "%");
+ }
+ c.andEqualTo("deletedFlag", GlobalDeletedFlag.NORMAL);
+ List permList = sysPermMapper.selectByExample(e);
// 这里因为权限只有字典数据,所以仅仅做字典关联。
this.buildRelationForDataList(permList, MyRelationParam.dictOnly());
return permList;
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysRoleServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysRoleServiceImpl.java
index cef3cef7..3ad04c7e 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysRoleServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysRoleServiceImpl.java
@@ -1,6 +1,5 @@
package com.orange.demo.webadmin.upms.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.common.core.base.service.BaseService;
import com.orange.demo.common.core.util.MyModelUtil;
@@ -71,12 +70,14 @@ public class SysRoleServiceImpl extends BaseService implements Sy
role.setDeletedFlag(GlobalDeletedFlag.NORMAL);
sysRoleMapper.insert(role);
if (menuIdSet != null) {
+ List roleMenuList = new LinkedList<>();
for (Long menuId : menuIdSet) {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(role.getRoleId());
roleMenu.setMenuId(menuId);
- sysRoleMenuMapper.insert(roleMenu);
+ roleMenuList.add(roleMenu);
}
+ sysRoleMenuMapper.insertList(roleMenuList);
}
return role;
}
@@ -92,20 +93,23 @@ public class SysRoleServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean update(SysRole role, SysRole originalRole, Set menuIdSet) {
+ role.setDeletedFlag(GlobalDeletedFlag.NORMAL);
MyModelUtil.fillCommonsForUpdate(role, originalRole);
- if (sysRoleMapper.updateById(role) != 1) {
+ if (sysRoleMapper.updateByPrimaryKey(role) != 1) {
return false;
}
SysRoleMenu deletedRoleMenu = new SysRoleMenu();
deletedRoleMenu.setRoleId(role.getRoleId());
- sysRoleMenuMapper.delete(new QueryWrapper<>(deletedRoleMenu));
+ sysRoleMenuMapper.delete(deletedRoleMenu);
if (menuIdSet != null) {
+ List roleMenuList = new LinkedList<>();
for (Long menuId : menuIdSet) {
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(role.getRoleId());
roleMenu.setMenuId(menuId);
- sysRoleMenuMapper.insert(roleMenu);
+ roleMenuList.add(roleMenu);
}
+ sysRoleMenuMapper.insertList(roleMenuList);
}
return true;
}
@@ -119,15 +123,15 @@ public class SysRoleServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long roleId) {
- if (sysRoleMapper.deleteById(roleId) != 1) {
+ if (!this.removeById(roleId)) {
return false;
}
SysRoleMenu roleMenu = new SysRoleMenu();
roleMenu.setRoleId(roleId);
- sysRoleMenuMapper.delete(new QueryWrapper<>(roleMenu));
+ sysRoleMenuMapper.delete(roleMenu);
SysUserRole userRole = new SysUserRole();
userRole.setRoleId(roleId);
- sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
+ sysUserRoleMapper.delete(userRole);
return true;
}
@@ -151,9 +155,7 @@ public class SysRoleServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public void addUserRoleList(List userRoleList) {
- for (SysUserRole userRole : userRoleList) {
- sysUserRoleMapper.insert(userRole);
- }
+ sysUserRoleMapper.insertList(userRoleList);
}
/**
@@ -169,7 +171,7 @@ public class SysRoleServiceImpl extends BaseService implements Sy
SysUserRole userRole = new SysUserRole();
userRole.setRoleId(roleId);
userRole.setUserId(userId);
- return sysUserRoleMapper.delete(new QueryWrapper<>(userRole)) == 1;
+ return sysUserRoleMapper.delete(userRole) == 1;
}
/**
diff --git a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysUserServiceImpl.java b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysUserServiceImpl.java
index 029a7f57..dd7b0ee0 100644
--- a/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysUserServiceImpl.java
+++ b/orange-demo-single-service/application-webadmin/src/main/java/com/orange/demo/webadmin/upms/service/impl/SysUserServiceImpl.java
@@ -1,7 +1,5 @@
package com.orange.demo.webadmin.upms.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.alibaba.fastjson.JSONObject;
import com.orange.demo.webadmin.upms.service.*;
import com.orange.demo.webadmin.upms.dao.*;
@@ -22,6 +20,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import tk.mybatis.mapper.entity.Example;
import java.util.*;
import java.util.stream.Collectors;
@@ -67,7 +66,8 @@ public class SysUserServiceImpl extends BaseService implements Sy
public SysUser getSysUserByLoginName(String loginName) {
SysUser filter = new SysUser();
filter.setLoginName(loginName);
- return sysUserMapper.selectOne(new QueryWrapper<>(filter));
+ filter.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ return sysUserMapper.selectOne(filter);
}
/**
@@ -87,12 +87,14 @@ public class SysUserServiceImpl extends BaseService implements Sy
MyModelUtil.fillCommonsForInsert(user);
sysUserMapper.insert(user);
if (CollectionUtils.isNotEmpty(roleIdSet)) {
+ List userRoleList = new LinkedList<>();
for (Long roleId : roleIdSet) {
SysUserRole userRole = new SysUserRole();
userRole.setUserId(user.getUserId());
userRole.setRoleId(roleId);
- sysUserRoleMapper.insert(userRole);
+ userRoleList.add(userRole);
}
+ sysUserRoleMapper.insertList(userRoleList);
}
return user;
}
@@ -111,21 +113,23 @@ public class SysUserServiceImpl extends BaseService implements Sy
user.setLoginName(originalUser.getLoginName());
user.setPassword(originalUser.getPassword());
MyModelUtil.fillCommonsForUpdate(user, originalUser);
- UpdateWrapper uw = this.createUpdateQueryForNullValue(user, user.getUserId());
- if (sysUserMapper.update(user, uw) != 1) {
+ user.setDeletedFlag(GlobalDeletedFlag.NORMAL);
+ if (sysUserMapper.updateByPrimaryKey(user) != 1) {
return false;
}
// 先删除原有的User-Role关联关系,再重新插入新的关联关系
SysUserRole deletedUserRole = new SysUserRole();
deletedUserRole.setUserId(user.getUserId());
- sysUserRoleMapper.delete(new QueryWrapper<>(deletedUserRole));
+ sysUserRoleMapper.delete(deletedUserRole);
if (CollectionUtils.isNotEmpty(roleIdSet)) {
+ List userRoleList = new LinkedList<>();
for (Long roleId : roleIdSet) {
SysUserRole userRole = new SysUserRole();
userRole.setUserId(user.getUserId());
userRole.setRoleId(roleId);
- sysUserRoleMapper.insert(userRole);
+ userRoleList.add(userRole);
}
+ sysUserRoleMapper.insertList(userRoleList);
}
return true;
}
@@ -139,10 +143,13 @@ public class SysUserServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean changePassword(Long userId, String newPass) {
+ Example e = new Example(SysUser.class);
+ e.createCriteria()
+ .andEqualTo(super.idFieldName, userId)
+ .andEqualTo(super.deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
SysUser updatedUser = new SysUser();
- updatedUser.setUserId(userId);
updatedUser.setPassword(passwordEncoder.encode(newPass));
- return sysUserMapper.updateById(updatedUser) == 1;
+ return sysUserMapper.updateByExampleSelective(updatedUser, e) == 1;
}
/**
@@ -154,12 +161,13 @@ public class SysUserServiceImpl extends BaseService implements Sy
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(Long userId) {
- if (sysUserMapper.deleteById(userId) == 0) {
+ // 这里先删除主数据
+ if (!this.removeById(userId)) {
return false;
}
SysUserRole userRole = new SysUserRole();
userRole.setUserId(userId);
- sysUserRoleMapper.delete(new QueryWrapper<>(userRole));
+ sysUserRoleMapper.delete(userRole);
return true;
}
@@ -260,19 +268,19 @@ public class SysUserServiceImpl extends BaseService implements Sy
/**
* 验证用户对象关联的数据是否都合法。
*
- * @param sysUser 当前操作的对象。
- * @param originalSysUser 原有对象。
- * @param roleIdListString 逗号分隔的角色Id列表字符串。
+ * @param sysUser 当前操作的对象。
+ * @param originalSysUser 原有对象。
+ * @param roleIds 逗号分隔的角色Id列表字符串。
* @return 验证结果。
*/
@Override
- public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIdListString) {
+ public CallResult verifyRelatedData(SysUser sysUser, SysUser originalSysUser, String roleIds) {
JSONObject jsonObject = new JSONObject();
- if (StringUtils.isBlank(roleIdListString)) {
+ if (StringUtils.isBlank(roleIds)) {
return CallResult.error("数据验证失败,用户的角色数据不能为空!");
}
Set roleIdSet = Arrays.stream(
- roleIdListString.split(",")).map(Long::valueOf).collect(Collectors.toSet());
+ roleIds.split(",")).map(Long::valueOf).collect(Collectors.toSet());
if (!sysRoleService.existAllPrimaryKeys(roleIdSet)) {
return CallResult.error("数据验证失败,存在不合法的用户角色,请刷新后重试!");
}
diff --git a/orange-demo-single-service/application-webadmin/src/main/resources/application.yml b/orange-demo-single-service/application-webadmin/src/main/resources/application.yml
index 63df7615..b44c211e 100644
--- a/orange-demo-single-service/application-webadmin/src/main/resources/application.yml
+++ b/orange-demo-single-service/application-webadmin/src/main/resources/application.yml
@@ -40,13 +40,16 @@ spring:
request-context-attribute: request
suffix: .ftl
-mybatis-plus:
- mapper-locations: classpath:com/orange/demo/webadmin/*/dao/mapper/*Mapper.xml,com/orange/demo/common/log/dao/mapper/*Mapper.xml
- type-aliases-package: com.orange.demo.webadmin.*.model,com.orange.demo.common.log.model
- global-config:
- db-config:
- logic-delete-value: -1
- logic-not-delete-value: 1
+# mybatis的基本配置
+mybatis:
+ mapperLocations: classpath:com/orange/demo/webadmin/*/dao/mapper/*Mapper.xml,com/orange/demo/common/log/dao/mapper/*Mapper.xml
+ typeAliasesPackage: com.orange.demo.webadmin.*.model,com.orange.demo.common.log.model
+
+# mybatis的通用mapper的配置
+mapper:
+ mappers: tk.mybatis.mapper.common.Mapper,tk.mybatis.mapper.additional.insert.InsertListMapper
+ not-empty: false
+ identity: MYSQL
# 自动分页的配置
pagehelper:
diff --git a/orange-demo-single-service/common/common-core/pom.xml b/orange-demo-single-service/common/common-core/pom.xml
index f2a0047b..f3e0cad6 100644
--- a/orange-demo-single-service/common/common-core/pom.xml
+++ b/orange-demo-single-service/common/common-core/pom.xml
@@ -96,9 +96,9 @@
${druid.version}
- com.baomidou
- mybatis-plus-boot-starter
- ${mybatisplus.version}
+ tk.mybatis
+ mapper-spring-boot-starter
+ ${mybatis-mapper.version}
com.github.pagehelper
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/annotation/DeletedFlagColumn.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/annotation/DeletedFlagColumn.java
new file mode 100644
index 00000000..f7d0caaa
--- /dev/null
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/annotation/DeletedFlagColumn.java
@@ -0,0 +1,16 @@
+package com.orange.demo.common.core.annotation;
+
+import java.lang.annotation.*;
+
+/**
+ * 主要用于标记逻辑删除字段。
+ *
+ * @author Jerry
+ * @date 2020-09-24
+ */
+@Target({ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface DeletedFlagColumn {
+
+}
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java
index 6a985b27..61edb7e1 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DataSourceResolveAspect.java
@@ -27,7 +27,7 @@ import java.util.Map;
@Slf4j
public class DataSourceResolveAspect {
- private Map, DataSourceResolver> resolverMap = new HashMap<>();
+ private final Map, DataSourceResolver> resolverMap = new HashMap<>();
/**
* 所有配置 MyDataSource 注解的Service。
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java
index 52083627..586cb127 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/aop/DictCacheSyncAspect.java
@@ -10,8 +10,6 @@ import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
-import java.io.Serializable;
-
/**
* 字典缓存同步的AOP。该AOP的优先级必须比事务切面的优先级高,因此会在事务外执行该切面的代码。
*
@@ -41,23 +39,23 @@ public class DictCacheSyncAspect {
Object arg = joinPoint.getArgs()[0];
if ("saveNew".equals(methodName)) {
Object data = joinPoint.proceed();
- BaseDictService service =
- (BaseDictService) joinPoint.getTarget();
+ BaseDictService service =
+ (BaseDictService) joinPoint.getTarget();
// 这里参数必须使用saveNew方法的返回对象,因为里面包含实际主键值。
service.putDictionaryCache(data);
return data;
} else if ("update".equals(methodName)) {
Object data = joinPoint.proceed();
- BaseDictService service =
- (BaseDictService) joinPoint.getTarget();
+ BaseDictService service =
+ (BaseDictService) joinPoint.getTarget();
// update的方法返回的是boolean,因此这里的参数需要使用第一个参数即可。
service.putDictionaryCache(arg);
return data;
} else {
// remove
- BaseDictService service =
- (BaseDictService) joinPoint.getTarget();
- service.removeDictionaryCache((Serializable) arg);
+ BaseDictService service =
+ (BaseDictService) joinPoint.getTarget();
+ service.removeDictionaryCache(arg);
return joinPoint.proceed();
}
}
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/dao/BaseDaoMapper.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/dao/BaseDaoMapper.java
index e8d0d56a..c1e65a9d 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/dao/BaseDaoMapper.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/dao/BaseDaoMapper.java
@@ -1,8 +1,10 @@
package com.orange.demo.common.core.base.dao;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
+import tk.mybatis.mapper.additional.insert.InsertListMapper;
+import tk.mybatis.mapper.annotation.RegisterMapper;
+import tk.mybatis.mapper.common.Mapper;
import java.util.List;
import java.util.Map;
@@ -14,7 +16,8 @@ import java.util.Map;
* @author Jerry
* @date 2020-09-24
*/
-public interface BaseDaoMapper extends BaseMapper {
+@RegisterMapper
+public interface BaseDaoMapper extends Mapper, InsertListMapper {
/**
* 根据指定的表名、显示字段列表、过滤条件字符串和分组字段,返回聚合计算后的查询结果。
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseDictService.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseDictService.java
index ea401e26..353fe9f8 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseDictService.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseDictService.java
@@ -1,7 +1,6 @@
package com.orange.demo.common.core.base.service;
import cn.hutool.core.util.ReflectUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
import com.orange.demo.common.core.exception.MyRuntimeException;
import com.orange.demo.common.core.cache.DictionaryCache;
@@ -9,8 +8,8 @@ import com.orange.demo.common.core.object.TokenData;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
-import java.io.Serializable;
import java.util.*;
/**
@@ -23,7 +22,7 @@ import java.util.*;
* @date 2020-09-24
*/
@Slf4j
-public abstract class BaseDictService extends BaseService implements IBaseDictService {
+public abstract class BaseDictService extends BaseService implements IBaseDictService {
/**
* 缓存池对象。
@@ -90,7 +89,15 @@ public abstract class BaseDictService extends BaseSer
if (tenantIdField != null) {
ReflectUtil.setFieldValue(data, tenantIdField, TokenData.takeFromRequest().getTenantId());
}
- return mapper().updateById(data) == 1;
+ if (deletedFlagFieldName != null) {
+ try {
+ setDeletedFlagMethod.invoke(data, GlobalDeletedFlag.NORMAL);
+ } catch (Exception e) {
+ log.error("Failed to call reflection [setDeletedFlagMethod] in BaseDictService.update.", e);
+ throw new MyRuntimeException(e);
+ }
+ }
+ return mapper().updateByPrimaryKey(data) == 1;
}
/**
@@ -102,7 +109,7 @@ public abstract class BaseDictService extends BaseSer
@Transactional(rollbackFor = Exception.class)
@Override
public boolean remove(K id) {
- return mapper().deleteById(id) == 1;
+ return this.removeById(id);
}
/**
@@ -111,16 +118,15 @@ public abstract class BaseDictService extends BaseSer
* @param id 主键Id。
* @return 主键关联的数据,不存在返回null。
*/
- @SuppressWarnings("unchecked")
@Override
- public M getById(Serializable id) {
- M data = dictionaryCache.get((K) id);
+ public M getById(K id) {
+ M data = dictionaryCache.get(id);
if (data != null) {
return data;
}
data = super.getById(id);
if (data != null) {
- this.dictionaryCache.put((K) id, data);
+ this.dictionaryCache.put(id, data);
}
return data;
}
@@ -214,10 +220,8 @@ public abstract class BaseDictService extends BaseSer
List dataList = this.getInList((Set) inFilterValues);
return dataList.size() == inFilterValues.size();
}
- String columnName = this.safeMapToColumnName(inFilterField);
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.in(columnName, inFilterValues);
- return mapper().selectCount(queryWrapper) == inFilterValues.size();
+ Example e = this.makeDefaultInListExample(inFilterField, inFilterValues, null);
+ return mapper().selectCountByExample(e) == inFilterValues.size();
}
/**
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseService.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseService.java
index 6c6a17d0..9a0876b2 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseService.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/BaseService.java
@@ -1,15 +1,9 @@
package com.orange.demo.common.core.base.service;
-import com.baomidou.mybatisplus.annotation.*;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.orange.demo.common.core.annotation.*;
import com.orange.demo.common.core.base.dao.BaseDaoMapper;
import com.orange.demo.common.core.constant.AggregationType;
import com.orange.demo.common.core.constant.GlobalDeletedFlag;
-import com.orange.demo.common.core.exception.InvalidDataFieldException;
import com.orange.demo.common.core.exception.MyRuntimeException;
import com.orange.demo.common.core.object.*;
import com.orange.demo.common.core.util.AopTargetUtil;
@@ -20,15 +14,21 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.transaction.annotation.Transactional;
+import tk.mybatis.mapper.entity.Example;
import cn.hutool.core.util.ReflectUtil;
-import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
import java.lang.reflect.Modifier;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.util.*;
import java.util.function.Function;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
import static java.util.stream.Collectors.*;
@@ -41,7 +41,7 @@ import static java.util.stream.Collectors.*;
* @date 2020-09-24
*/
@Slf4j
-public abstract class BaseService extends ServiceImpl, M> implements IBaseService {
+public abstract class BaseService implements IBaseService {
/**
* 当前Service关联的主Model实体对象的Class。
*/
@@ -135,11 +135,6 @@ public abstract class BaseService extends ServiceImpl
private static final String AGGREGATED_VALUE = "aggregatedValue";
private static final String AND_OP = " AND ";
- @Override
- public BaseDaoMapper getBaseMapper() {
- return mapper();
- }
-
/**
* 构造函数,在实例化的时候,一次性完成所有有关主Model对象信息的加载。
*/
@@ -147,7 +142,7 @@ public abstract class BaseService extends ServiceImpl
public BaseService() {
modelClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
idFieldClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[1];
- this.tableName = modelClass.getAnnotation(TableName.class).value();
+ this.tableName = modelClass.getAnnotation(Table.class).name();
Field[] fields = ReflectUtil.getFields(modelClass);
for (Field field : fields) {
initializeField(field);
@@ -155,10 +150,10 @@ public abstract class BaseService extends ServiceImpl
}
private void initializeField(Field field) {
- if (idFieldName == null && null != field.getAnnotation(TableId.class)) {
+ if (idFieldName == null && null != field.getAnnotation(Id.class)) {
idFieldName = field.getName();
- TableId c = field.getAnnotation(TableId.class);
- idColumnName = c == null ? idFieldName : c.value();
+ Column c = field.getAnnotation(Column.class);
+ idColumnName = c == null ? idFieldName : c.name();
setIdFieldMethod = ReflectUtil.getMethod(
modelClass, "set" + StringUtils.capitalize(idFieldName), idFieldClass);
getIdFieldMethod = ReflectUtil.getMethod(
@@ -166,18 +161,21 @@ public abstract class BaseService extends ServiceImpl
}
if (updateTimeFieldName == null && null != field.getAnnotation(JobUpdateTimeColumn.class)) {
updateTimeFieldName = field.getName();
- updateTimeColumnName = this.safeMapToColumnName(updateTimeFieldName);
+ Column c = field.getAnnotation(Column.class);
+ updateTimeColumnName = c == null ? updateTimeFieldName : c.name();
}
- if (deletedFlagFieldName == null && null != field.getAnnotation(TableLogic.class)) {
+ if (deletedFlagFieldName == null && null != field.getAnnotation(DeletedFlagColumn.class)) {
deletedFlagFieldName = field.getName();
- deletedFlagColumnName = this.safeMapToColumnName(deletedFlagFieldName);
+ Column c = field.getAnnotation(Column.class);
+ deletedFlagColumnName = c == null ? deletedFlagFieldName : c.name();
setDeletedFlagMethod = ReflectUtil.getMethod(
modelClass, "set" + StringUtils.capitalize(deletedFlagFieldName), Integer.class);
}
if (tenantIdFieldName == null && null != field.getAnnotation(TenantFilterColumn.class)) {
tenantIdField = field;
tenantIdFieldName = field.getName();
- tenantIdColumnName = this.safeMapToColumnName(tenantIdFieldName);
+ Column c = field.getAnnotation(Column.class);
+ tenantIdColumnName = c == null ? tenantIdFieldName : c.name();
}
}
@@ -188,6 +186,31 @@ public abstract class BaseService extends ServiceImpl
*/
protected abstract BaseDaoMapper mapper();
+ /**
+ * 基于主键Id删除数据。如果包含逻辑删除字段,则进行逻辑删除。
+ *
+ * @param id 主键Id值。
+ * @return true删除成功,false数据不存在。
+ */
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public boolean removeById(K id) {
+ if (this.deletedFlagFieldName == null) {
+ return mapper().deleteByPrimaryKey(id) == 1;
+ }
+ try {
+ Example e = new Example(modelClass);
+ Example.Criteria c = e.createCriteria().andEqualTo(idFieldName, id);
+ c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
+ M data = modelClass.newInstance();
+ setDeletedFlagMethod.invoke(data, GlobalDeletedFlag.DELETED);
+ return mapper().updateByExampleSelective(data, e) == 1;
+ } catch (Exception ex) {
+ log.error("Failed to call reflection method in BaseService.removeById.", ex);
+ throw new MyRuntimeException(ex);
+ }
+ }
+
/**
* 根据过滤条件删除数据。
*
@@ -197,7 +220,25 @@ public abstract class BaseService extends ServiceImpl
@Transactional(rollbackFor = Exception.class)
@Override
public Integer removeBy(M filter) {
- return mapper().delete(new QueryWrapper<>(filter));
+ if (deletedFlagFieldName == null) {
+ return mapper().delete(filter);
+ }
+ Example e = new Example(modelClass);
+ Example.Criteria c = e.createCriteria();
+ Field[] fields = ReflectUtil.getFields(modelClass);
+ for (Field field : fields) {
+ if (field.getAnnotation(Transient.class) == null) {
+ this.assembleCriteriaByFilter(filter, field, c);
+ }
+ }
+ try {
+ M deletedObject = modelClass.newInstance();
+ this.setDeletedFlagMethod.invoke(deletedObject, GlobalDeletedFlag.DELETED);
+ return mapper().updateByExampleSelective(deletedObject, e);
+ } catch (Exception ex) {
+ log.error("Failed to call reflection method in BaseService.removeBy.", ex);
+ throw new MyRuntimeException(ex);
+ }
}
/**
@@ -214,8 +255,9 @@ public abstract class BaseService extends ServiceImpl
if (fieldName.equals(this.idFieldName)) {
return this.existId((K) fieldValue);
}
- String columnName = MyModelUtil.mapToColumnName(fieldName, modelClass);
- return mapper().selectCount(new QueryWrapper().eq(columnName, fieldValue)) == 1;
+ Example e = new Example(modelClass);
+ e.createCriteria().andEqualTo(fieldName, fieldValue);
+ return mapper().selectCountByExample(e) == 1;
}
/**
@@ -229,6 +271,24 @@ public abstract class BaseService extends ServiceImpl
return getById(id) != null;
}
+ /**
+ * 获取主键Id关联的数据。
+ *
+ * @param id 主键Id。
+ * @return 主键关联的数据,不存在返回null。
+ */
+ @Override
+ public M getById(K id) {
+ if (deletedFlagFieldName == null) {
+ return mapper().selectByPrimaryKey(id);
+ }
+ Example e = new Example(modelClass);
+ e.createCriteria()
+ .andEqualTo(this.idFieldName, id)
+ .andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
+ return mapper().selectOneByExample(e);
+ }
+
/**
* 返回符合 filterField = filterValue 条件的一条数据。
*
@@ -242,9 +302,12 @@ public abstract class BaseService extends ServiceImpl
if (filterField.equals(idFieldName)) {
return this.getById((K) filterValue);
}
- String columnName = this.safeMapToColumnName(filterField);
- QueryWrapper queryWrapper = new QueryWrapper().eq(columnName, filterValue);
- return mapper().selectOne(queryWrapper);
+ Example e = new Example(modelClass);
+ Example.Criteria c = e.createCriteria().andEqualTo(filterField, filterValue);
+ if (deletedFlagFieldName != null) {
+ c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
+ }
+ return mapper().selectOneByExample(e);
}
/**
@@ -268,7 +331,12 @@ public abstract class BaseService extends ServiceImpl
*/
@Override
public List getAllList() {
- return mapper().selectList(Wrappers.emptyWrapper());
+ if (deletedFlagFieldName == null) {
+ return mapper().selectAll();
+ }
+ Example e = new Example(modelClass);
+ e.createCriteria().andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
+ return mapper().selectByExample(e);
}
/**
@@ -279,11 +347,14 @@ public abstract class BaseService extends ServiceImpl
*/
@Override
public List getAllListByOrder(String... orderByProperties) {
- String[] columns = new String[orderByProperties.length];
- for (int i = 0; i < orderByProperties.length; i++) {
- columns[i] = this.safeMapToColumnName(orderByProperties[i]);
+ Example e = new Example(modelClass);
+ for (String orderByProperty : orderByProperties) {
+ e.orderBy(orderByProperty);
}
- return mapper().selectList(new QueryWrapper().orderByAsc(columns));
+ if (deletedFlagFieldName != null) {
+ e.and().andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
+ }
+ return mapper().selectByExample(e);
}
/**
@@ -312,8 +383,8 @@ public abstract class BaseService extends ServiceImpl
if (CollectionUtils.isEmpty(inFilterValues)) {
return true;
}
- String column = this.safeMapToColumnName(inFilterField);
- return mapper().selectCount(new QueryWrapper().in(column, inFilterValues)) == inFilterValues.size();
+ Example e = this.makeDefaultInListExample(inFilterField, inFilterValues, null);
+ return mapper().selectCountByExample(e) == inFilterValues.size();
}
/**
@@ -352,12 +423,8 @@ public abstract class BaseService extends ServiceImpl
if (CollectionUtils.isEmpty(inFilterValues)) {
return new LinkedList<>();
}
- String column = this.safeMapToColumnName(inFilterField);
- QueryWrapper queryWrapper = new QueryWrapper().in(column, inFilterValues);
- if (StringUtils.isNotBlank(orderBy)) {
- queryWrapper.last(orderBy);
- }
- return mapper().selectList(queryWrapper);
+ Example e = this.makeDefaultInListExample(inFilterField, inFilterValues, orderBy);
+ return mapper().selectByExample(e);
}
/**
@@ -368,7 +435,16 @@ public abstract class BaseService extends ServiceImpl
*/
@Override
public int getCountByFilter(M filter) {
- return mapper().selectCount(new QueryWrapper<>(filter));
+ if (deletedFlagFieldName == null) {
+ return mapper().selectCount(filter);
+ }
+ try {
+ setDeletedFlagMethod.invoke(filter, GlobalDeletedFlag.NORMAL);
+ return mapper().selectCount(filter);
+ } catch (Exception e) {
+ log.error("Failed to call reflection [setDeletedFlagMethod] in BaseService.getCountByFilter.", e);
+ throw new MyRuntimeException(e);
+ }
}
/**
@@ -390,7 +466,42 @@ public abstract class BaseService extends ServiceImpl
*/
@Override
public List getListByFilter(M filter) {
- return mapper().selectList(new QueryWrapper<>(filter));
+ if (filter == null) {
+ return this.getAllList();
+ }
+ if (deletedFlagFieldName == null) {
+ return mapper().select(filter);
+ }
+ try {
+ setDeletedFlagMethod.invoke(filter, GlobalDeletedFlag.NORMAL);
+ return mapper().select(filter);
+ } catch (Exception ex) {
+ log.error("Failed to call reflection code of BaseService.getListByFilter.", ex);
+ throw new MyRuntimeException(ex);
+ }
+ }
+
+ private void assembleCriteriaByFilter(M filter, Field field, Example.Criteria c) {
+ int modifiers = field.getModifiers();
+ // transient类型的字段不能作为查询条件
+ int transientMask = 128;
+ if ((modifiers & transientMask) != 0 || Modifier.isStatic(modifiers)) {
+ return;
+ }
+ if (field.getName().equals(deletedFlagFieldName)) {
+ c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
+ } else {
+ ReflectUtil.setAccessible(field);
+ try {
+ Object o = field.get(filter);
+ if (o != null) {
+ c.andEqualTo(field.getName(), field.get(filter));
+ }
+ } catch (IllegalAccessException ex) {
+ log.error("Failed to call reflection code of BaseService.getListByFilter.", ex);
+ throw new MyRuntimeException(ex);
+ }
+ }
}
/**
@@ -402,14 +513,17 @@ public abstract class BaseService extends ServiceImpl
*/
@Override
public List getListByParentId(String parentIdFieldName, K parentId) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- String parentIdColumn = this.safeMapToColumnName(parentIdFieldName);
+ Example e = new Example(modelClass);
+ Example.Criteria c = e.createCriteria();
if (parentId != null) {
- queryWrapper.eq(parentIdColumn, parentId);
+ c.andEqualTo(parentIdFieldName, parentId);
} else {
- queryWrapper.isNull(parentIdColumn);
+ c.andIsNull(parentIdFieldName);
}
- return mapper().selectList(queryWrapper);
+ if (deletedFlagFieldName != null) {
+ c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
+ }
+ return mapper().selectByExample(e);
}
/**
@@ -439,21 +553,32 @@ public abstract class BaseService extends ServiceImpl
*/
@Override
public List getListByCondition(List selectList, M filter, String whereClause, String orderBy) {
- QueryWrapper queryWrapper = new QueryWrapper<>(filter);
+ Example e = new Example(modelClass);
+ Example.Criteria c = null;
if (CollectionUtils.isNotEmpty(selectList)) {
- String[] columns = new String[selectList.size()];
- for (int i = 0; i < selectList.size(); i++) {
- columns[i] = this.safeMapToColumnName(selectList.get(i));
- }
- queryWrapper.select(columns);
- }
- if (StringUtils.isNotBlank(whereClause)) {
- queryWrapper.apply(whereClause);
+ String[] selectFields = new String[selectList.size()];
+ selectList.toArray(selectFields);
+ e.selectProperties(selectFields);
}
if (StringUtils.isNotBlank(orderBy)) {
- queryWrapper.last(" ORDER BY " + orderBy);
+ e.setOrderByClause(orderBy);
}
- return mapper().selectList(queryWrapper);
+ if (filter != null) {
+ c = e.createCriteria();
+ Field[] fields = ReflectUtil.getFields(modelClass);
+ for (Field field : fields) {
+ if (field.getAnnotation(Transient.class) == null) {
+ this.assembleCriteriaByFilter(filter, field, c);
+ }
+ }
+ }
+ if (StringUtils.isNotBlank(whereClause)) {
+ if (c == null) {
+ c = e.createCriteria();
+ }
+ c.andCondition(whereClause);
+ }
+ return mapper().selectByExample(e);
}
/**
@@ -539,7 +664,7 @@ public abstract class BaseService extends ServiceImpl
*
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
* @param relationParam 实体对象数据组装的参数构建器。
- * @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
+ * @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
*/
@Override
public void buildRelationForDataList(List resultList, MyRelationParam relationParam, int batchSize) {
@@ -560,7 +685,7 @@ public abstract class BaseService extends ServiceImpl
*
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
* @param relationParam 实体对象数据组装的参数构建器。
- * @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
+ * @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
*/
@Override
@@ -660,10 +785,9 @@ public abstract class BaseService extends ServiceImpl
continue;
}
Object masterIdValue = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
- String masterIdColumn = this.safeMapToColumnName(relationStruct.masterIdField.getName());
- Map filterMap = new HashMap<>(1);
- filterMap.put(masterIdColumn, masterIdValue);
- List> manyToManyList = relationStruct.manyToManyMapper.selectByMap(filterMap);
+ Example e = new Example(relationStruct.relationManyToMany.relationModelClass());
+ e.createCriteria().andEqualTo(relationStruct.masterIdField.getName(), masterIdValue);
+ List> manyToManyList = relationStruct.manyToManyMapper.selectByExample(e);
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, manyToManyList);
}
}
@@ -812,7 +936,7 @@ public abstract class BaseService extends ServiceImpl
.collect(toSet());
// 从主表集合中,抽取主表关联字段的集合,再以in list形式去从表中查询。
if (CollectionUtils.isNotEmpty(masterIdSet)) {
- BaseService relationService = relationStruct.service;
+ BaseService relationService = relationStruct.service;
List relationList =
relationService.getInList(relationStruct.relationOneToOne.slaveIdField(), masterIdSet);
MyModelUtil.makeOneToOneRelation(
@@ -821,8 +945,8 @@ public abstract class BaseService extends ServiceImpl
if (withDict && relationStruct.relationOneToOne.loadSlaveDict()
&& CollectionUtils.isNotEmpty(relationList)) {
@SuppressWarnings("unchecked")
- BaseService proxyTarget =
- (BaseService) AopTargetUtil.getTarget(relationService);
+ BaseService proxyTarget =
+ (BaseService) AopTargetUtil.getTarget(relationService);
// 关联本地字典。
proxyTarget.buildDictForDataList(relationList, false, ignoreFields);
// 关联常量字典
@@ -849,14 +973,14 @@ public abstract class BaseService extends ServiceImpl
}
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
if (id != null) {
- BaseService relationService = relationStruct.service;
+ BaseService relationService = relationStruct.service;
Object relationObject = relationService.getOne(relationStruct.relationOneToOne.slaveIdField(), id);
ReflectUtil.setFieldValue(dataObject, relationStruct.relationField, relationObject);
// 仅仅当需要加载从表字典关联时,才去加载。
if (withDict && relationStruct.relationOneToOne.loadSlaveDict() && relationObject != null) {
@SuppressWarnings("unchecked")
- BaseService proxyTarget =
- (BaseService) AopTargetUtil.getTarget(relationService);
+ BaseService proxyTarget =
+ (BaseService) AopTargetUtil.getTarget(relationService);
// 关联本地字典
proxyTarget.buildDictForData(relationObject, false, ignoreFields);
// 关联常量字典
@@ -886,7 +1010,7 @@ public abstract class BaseService extends ServiceImpl
.collect(toSet());
// 从主表集合中,抽取主表关联字段的集合,再以in list形式去从表中查询。
if (CollectionUtils.isNotEmpty(masterIdSet)) {
- BaseService relationService = relationStruct.service;
+ BaseService relationService = relationStruct.service;
List relationList =
relationService.getInList(relationStruct.relationOneToMany.slaveIdField(), masterIdSet);
MyModelUtil.makeOneToManyRelation(
@@ -911,7 +1035,7 @@ public abstract class BaseService extends ServiceImpl
}
Object id = ReflectUtil.getFieldValue(dataObject, relationStruct.masterIdField);
if (id != null) {
- BaseService relationService = relationStruct.service;
+ BaseService relationService = relationStruct.service;
Set masterIdSet = new HashSet<>(1);
masterIdSet.add(id);
List relationObject = relationService.getInList(
@@ -1160,6 +1284,23 @@ public abstract class BaseService extends ServiceImpl
}
}
+ @Transactional(rollbackFor = Exception.class)
+ @Override
+ public void saveInternal(List dataList, Supplier idGenerator, Consumer> batchInserter) {
+ if (CollectionUtils.isEmpty(dataList)) {
+ return;
+ }
+ dataList.stream().filter(c -> ReflectUtil.getFieldValue(c, idFieldName) == null)
+ .forEach(o -> ReflectUtil.setFieldValue(o, idFieldName, idGenerator.get()));
+ if (batchInserter != null) {
+ batchInserter.accept(dataList);
+ } else {
+ for (M data : dataList) {
+ mapper().insert(data);
+ }
+ }
+ }
+
/**
* 缺省实现返回null,在进行一对多和多对多聚合计算时,没有额外的自定义过滤条件。如有需要,需子类自行实现。
*
@@ -1197,97 +1338,32 @@ public abstract class BaseService extends ServiceImpl
}
/**
- * 因为Mybatis Plus中QueryWrapper的条件方法都要求传入数据表字段名,因此提供该函数将
- * Java实体对象的字段名转换为数据表字段名,如果不存在会抛出异常。
- * 另外在MyModelUtil.mapToColumnName有一级缓存,对于查询过的对象字段都会放到缓存中,
- * 下次映射转换的时候,会直接从缓存获取。
+ * 通过(In-list)条件和orderBy条件,构建Example对象,以供后续的查询操作使用。
*
- * @param fieldName Java实体对象的字段名。
- * @return 对应的数据表字段名。
+ * @param inFilterField 参与(In-list)过滤的Java字段。
+ * @param inFilterValues 参与(In-list)过滤的Java字段值集合。
+ * @param orderBy 排序字段。
+ * @param in 属性字段的类型。
+ * @return 构建后的Example对象。
*/
- protected String safeMapToColumnName(String fieldName) {
- String columnName = MyModelUtil.mapToColumnName(fieldName, modelClass);
- if (columnName == null) {
- throw new InvalidDataFieldException(modelClass.getSimpleName(), fieldName);
+ protected Example makeDefaultInListExample(String inFilterField, Collection inFilterValues, String orderBy) {
+ Set inFilterValueSet;
+ Example e = new Example(modelClass);
+ if (StringUtils.isNotBlank(orderBy)) {
+ e.setOrderByClause(orderBy);
}
- return columnName;
- }
-
- /**
- * 因为Mybatis Plus在update的时候,不能将实体对象中值为null的字段,更新为null,
- * 而且忽略更新,在全部更新场景下,这个是非常重要的,所以我们写了这个函数绕开这一问题。
- * 该函数会遍历实体对象中,所有不包含@Transient注解,没有transient修饰符的字段,如果
- * 当前对象的该字段值为null,则会调用UpdateWrapper的set方法,将该字段赋值为null。
- * 相比于其他重载方法,该方法会将参数中的主键id,设置到UpdateWrapper的过滤条件中。
- *
- * @param o 实体对象。
- * @param id 实体对象的主键值。
- * @return 创建后的UpdateWrapper。
- */
- protected UpdateWrapper createUpdateQueryForNullValue(M o, K id) {
- UpdateWrapper uw = createUpdateQueryForNullValue(o, modelClass);
- try {
- M filter = modelClass.newInstance();
- this.setIdFieldMethod.invoke(filter, id);
- uw.setEntity(filter);
- } catch (Exception e) {
- log.error("Failed to call reflection code of BaseService.createUpdateQueryForNullValue.", e);
- throw new MyRuntimeException(e);
+ if (inFilterValues instanceof Set) {
+ inFilterValueSet = (Set) inFilterValues;
+ } else {
+ inFilterValueSet = new HashSet<>(inFilterValues.size());
+ inFilterValueSet.addAll(inFilterValues);
}
- return uw;
- }
-
- /**
- * 因为Mybatis Plus在update的时候,不能将实体对象中值为null的字段,更新为null,
- * 而且忽略更新,在全部更新场景下,这个是非常重要的,所以我们写了这个函数绕开这一问题。
- * 该函数会遍历实体对象中,所有不包含@Transient注解,没有transient修饰符的字段,如果
- * 当前对象的该字段值为null,则会调用UpdateWrapper的set方法,将该字段赋值为null。
- *
- * @param o 实体对象。
- * @return 创建后的UpdateWrapper。
- */
- protected UpdateWrapper createUpdateQueryForNullValue(M o) {
- return createUpdateQueryForNullValue(o, modelClass);
- }
-
- /**
- * 因为Mybatis Plus在update的时候,不能将实体对象中值为null的字段,更新为null,
- * 而且忽略更新,在全部更新场景下,这个是非常重要的,所以我们写了这个函数绕开这一问题。
- * 该函数会遍历实体对象中,所有不包含@Transient注解,没有transient修饰符的字段,如果
- * 当前对象的该字段值为null,则会调用UpdateWrapper的set方法,将该字段赋值为null。
- *
- * @param o 实体对象。
- * @param clazz 实体对象的class。
- * @return 创建后的UpdateWrapper。
- */
- public static UpdateWrapper createUpdateQueryForNullValue(T o, Class clazz) {
- UpdateWrapper uw = new UpdateWrapper<>();
- Field[] fields = ReflectUtil.getFields(clazz);
- List nullColumnList = new LinkedList<>();
- for (Field field : fields) {
- TableField tableField = field.getAnnotation(TableField.class);
- if (tableField == null || tableField.exist()) {
- int modifiers = field.getModifiers();
- // transient类型的字段不能作为查询条件,静态字段和逻辑删除都不考虑。
- int transientMask = 128;
- if ((modifiers & transientMask) == 1
- || Modifier.isStatic(modifiers)
- || field.getAnnotation(TableLogic.class) != null) {
- continue;
- }
- // 仅当实体对象参数中,当前字段值为null的时候,才会赋值给UpdateWrapper。
- // 以便在后续的更新中,可以将这些null字段的值设置到数据库表对应的字段中。
- if (ReflectUtil.getFieldValue(o, field) == null) {
- nullColumnList.add(MyModelUtil.safeMapToColumnName(field.getName(), clazz));
- }
- }
+ Example.Criteria c = e.createCriteria();
+ c.andIn(inFilterField, inFilterValueSet);
+ if (deletedFlagFieldName != null) {
+ c.andEqualTo(deletedFlagFieldName, GlobalDeletedFlag.NORMAL);
}
- if (CollectionUtils.isNotEmpty(nullColumnList)) {
- for (String nullColumn : nullColumnList) {
- uw.set(nullColumn, null);
- }
- }
- return uw;
+ return e;
}
@SuppressWarnings("unchecked")
@@ -1302,7 +1378,7 @@ public abstract class BaseService extends ServiceImpl
relationStruct.service = ApplicationContextHolder.getBean(
StringUtils.uncapitalize(relationOneToOne.slaveServiceName()));
} else {
- relationStruct.service = (BaseService)
+ relationStruct.service = (BaseService)
ApplicationContextHolder.getBean(relationOneToOne.slaveServiceClass());
}
relationOneToOneStructList.add(relationStruct);
@@ -1318,7 +1394,7 @@ public abstract class BaseService extends ServiceImpl
relationStruct.service = ApplicationContextHolder.getBean(
StringUtils.uncapitalize(relationOneToMany.slaveServiceName()));
} else {
- relationStruct.service = (BaseService)
+ relationStruct.service = (BaseService)
ApplicationContextHolder.getBean(relationOneToMany.slaveServiceClass());
}
relationOneToManyStructList.add(relationStruct);
@@ -1348,7 +1424,7 @@ public abstract class BaseService extends ServiceImpl
relationStruct.service = ApplicationContextHolder.getBean(
StringUtils.uncapitalize(relationOneToManyAggregation.slaveServiceName()));
} else {
- relationStruct.service = (BaseService)
+ relationStruct.service = (BaseService)
ApplicationContextHolder.getBean(relationOneToManyAggregation.slaveServiceClass());
}
relationOneToManyAggrStructList.add(relationStruct);
@@ -1364,7 +1440,7 @@ public abstract class BaseService extends ServiceImpl
relationStruct.service = ApplicationContextHolder.getBean(
StringUtils.uncapitalize(relationManyToManyAggregation.slaveServiceName()));
} else {
- relationStruct.service = (BaseService)
+ relationStruct.service = (BaseService)
ApplicationContextHolder.getBean(relationManyToManyAggregation.slaveServiceClass());
}
relationManyToManyAggrStructList.add(relationStruct);
@@ -1397,7 +1473,7 @@ public abstract class BaseService extends ServiceImpl
relationStruct.service = ApplicationContextHolder.getBean(
StringUtils.uncapitalize(relationDict.slaveServiceName()));
} else {
- relationStruct.service = (BaseService)
+ relationStruct.service = (BaseService)
ApplicationContextHolder.getBean(relationDict.slaveServiceClass());
}
relationDictStructList.add(relationStruct);
@@ -1594,7 +1670,7 @@ public abstract class BaseService extends ServiceImpl
private Field relationField;
private Field masterIdField;
private Field equalOneToOneRelationField;
- private BaseService service;
+ private BaseService service;
private BaseDaoMapper manyToManyMapper;
private Map dictMap;
private RelationDict relationDict;
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseDictService.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseDictService.java
index e00a20cd..b7319d69 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseDictService.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseDictService.java
@@ -1,6 +1,5 @@
package com.orange.demo.common.core.base.service;
-import java.io.Serializable;
import java.util.List;
/**
@@ -11,7 +10,7 @@ import java.util.List;
* @author Jerry
* @date 2020-09-24
*/
-public interface IBaseDictService extends IBaseService {
+public interface IBaseDictService extends IBaseService {
/**
* 重新加载数据库中所有当前表数据到系统内存。
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseService.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseService.java
index 93e8cf45..f24dcdfe 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseService.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/base/service/IBaseService.java
@@ -1,10 +1,10 @@
package com.orange.demo.common.core.base.service;
-import com.baomidou.mybatisplus.extension.service.IService;
import com.orange.demo.common.core.object.MyRelationParam;
-import java.io.Serializable;
import java.util.*;
+import java.util.function.Consumer;
+import java.util.function.Supplier;
/**
* 所有Service的接口。
@@ -14,7 +14,15 @@ import java.util.*;
* @author Jerry
* @date 2020-09-24
*/
-public interface IBaseService extends IService{
+public interface IBaseService {
+
+ /**
+ * 基于主键Id删除数据。如果包含逻辑删除字段,则进行逻辑删除。
+ *
+ * @param id 主键Id值。
+ * @return true删除成功,false数据不存在。
+ */
+ boolean removeById(K id);
/**
* 根据过滤条件删除数据。
@@ -42,6 +50,14 @@ public interface IBaseService extends IService{
*/
boolean existId(K id);
+ /**
+ * 获取主键Id关联的数据。
+ *
+ * @param id 主键Id。
+ * @return 主键关联的数据,不存在返回null。
+ */
+ M getById(K id);
+
/**
* 返回符合 filterField = filterValue 条件的一条数据。
*
@@ -218,7 +234,7 @@ public interface IBaseService extends IService{
*
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
* @param relationParam 实体对象数据组装的参数构建器。
- * @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
+ * @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
*/
void buildRelationForDataList(List resultList, MyRelationParam relationParam, int batchSize);
@@ -236,7 +252,7 @@ public interface IBaseService extends IService{
*
* @param resultList 主表实体对象列表。数据集成将直接作用于该对象列表。
* @param relationParam 实体对象数据组装的参数构建器。
- * @param batchSize 每批集成的记录数量。小于等于时将不做分批处理。
+ * @param batchSize 每批集成的记录数量。小于等于0时将不做分批处理。
* @param ignoreFields 该集合中的字段,即便包含注解也不会在当前调用中进行数据组装。
*/
void buildRelationForDataList(
@@ -269,4 +285,16 @@ public interface IBaseService extends IService{
* 仅仅在spring boot 启动后的监听器事件中调用,缓存所有service的关联关系,加速后续的数据绑定效率。
*/
void loadRelationStruct();
+
+ /**
+ * 内部使用的批量保存方法。在使用前要确保清楚该方法的实现功能。
+ * 该方法通常用于从表数据的批量更新,为了保证已有数据的主键不变,我们通常会在执行该方法前,根据主表的关联数据,
+ * 删除从表中的数据。之后在迭代参数dataList,并将没有主键值的对象视为新对象,该方法将为这些新对象生成主键值。
+ * 其他包含主键值的对象,为已有对象,不做任何修改。填充主键后,将dataList集合中的数据批量插入到数据表。
+ *
+ * @param dataList 待操作的数据列表。
+ * @param idGenerator 主键值生成器方法。
+ * @param batchInserter 批量插入方法。
+ */
+ void saveInternal(List dataList, Supplier idGenerator, Consumer> batchInserter);
}
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/constant/AppDeviceType.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/constant/AppDeviceType.java
new file mode 100644
index 00000000..22fbdbd4
--- /dev/null
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/constant/AppDeviceType.java
@@ -0,0 +1,59 @@
+package com.orange.demo.common.core.constant;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * App 登录的设备类型。
+ *
+ * @author Jerry
+ * @date 2020-09-24
+ */
+public final class AppDeviceType {
+
+ /**
+ * 移动端 (如果不考虑区分android或ios的,可以使用该值)
+ */
+ public static final int MOBILE = 0;
+ /**
+ * android
+ */
+ public static final int ANDROID = 1;
+ /**
+ * iOS
+ */
+ public static final int IOS = 2;
+ /**
+ * 微信公众号和小程序
+ */
+ public static final int WEIXIN = 3;
+ /**
+ * PC WEB
+ */
+ public static final int WEB = 4;
+
+ private static final Map DICT_MAP = new HashMap<>(5);
+ static {
+ DICT_MAP.put(MOBILE, "移动端");
+ DICT_MAP.put(ANDROID, "Android");
+ DICT_MAP.put(IOS, "iOS");
+ DICT_MAP.put(WEIXIN, "微信");
+ DICT_MAP.put(WEB, "PC WEB");
+ }
+
+ /**
+ * 判断参数是否为当前常量字典的合法值。
+ *
+ * @param value 待验证的参数值。
+ * @return 合法返回true,否则false。
+ */
+ public static boolean isValid(Integer value) {
+ return value != null && DICT_MAP.containsKey(value);
+ }
+
+ /**
+ * 私有构造函数,明确标识该常量类的作用。
+ */
+ private AppDeviceType() {
+ }
+}
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/LoginUserInfo.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/LoginUserInfo.java
index e11581d6..e0012f46 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/LoginUserInfo.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/LoginUserInfo.java
@@ -55,4 +55,8 @@ public class LoginUserInfo {
* 登录时间。
*/
private Date loginTime;
+ /**
+ * 登录设备类型。
+ */
+ private Integer deviceType;
}
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/ResponseResult.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/ResponseResult.java
index eeddf40c..b83b5ec0 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/ResponseResult.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/ResponseResult.java
@@ -131,7 +131,7 @@ public class ResponseResult {
* @return 返回创建的ResponseResult实例对象
*/
public static ResponseResult error(String errorCode, String errorMessage) {
- return new ResponseResult<>(false, errorCode, errorMessage);
+ return new ResponseResult<>(errorCode, errorMessage);
}
/**
@@ -213,8 +213,8 @@ public class ResponseResult {
}
- private ResponseResult(boolean success, String errorCode, String errorMessage) {
- this.success = success;
+ private ResponseResult(String errorCode, String errorMessage) {
+ this.success = false;
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/TokenData.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/TokenData.java
index 6d5281f5..0b084335 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/TokenData.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/object/TokenData.java
@@ -30,6 +30,10 @@ public class TokenData {
* 仅当系统支持uaa时可用,否则可以直接忽略该字段。保留该字段是为了保持单体和微服务通用代码部分的兼容性。
*/
private Long deptId;
+ /**
+ * 用户的部门岗位Id。多个岗位之间逗号分隔。仅当系统支持岗位时有值。
+ */
+ private String deptPostIds;
/**
* 租户Id。
* 仅当系统支持uaa时可用,否则可以直接忽略该字段。保留该字段是为了保持单体和微服务通用代码部分的兼容性。
@@ -47,6 +51,10 @@ public class TokenData {
* 用户显示名称。
*/
private String showName;
+ /**
+ * 设备类型。参考 AppDeviceType。
+ */
+ private Integer deviceType;
/**
* 标识不同登录的会话Id。
*/
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyCommonUtil.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyCommonUtil.java
index d8b49d18..1ac8c56e 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyCommonUtil.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyCommonUtil.java
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
+import com.orange.demo.common.core.constant.AppDeviceType;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
@@ -168,6 +169,24 @@ public class MyCommonUtil {
return new String[]{};
}
+ /**
+ * 获取请求头中的设备信息。
+ *
+ * @return 设备类型,具体值可参考AppDeviceType常量类。
+ */
+ public static int getDeviceType() {
+ // 缺省都按照Web登录方式设置,如果前端header中的值为不合法值,这里也不会报错,而是使用Web缺省方式。
+ int deviceType = AppDeviceType.WEB;
+ String deviceTypeString = ContextUtil.getHttpRequest().getHeader("deviceType");
+ if (StrUtil.isNotBlank(deviceTypeString)) {
+ Integer type = Integer.valueOf(deviceTypeString);
+ if (AppDeviceType.isValid(type)) {
+ deviceType = type;
+ }
+ }
+ return deviceType;
+ }
+
/**
* 私有构造函数,明确标识该常量类的作用。
*/
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyModelUtil.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyModelUtil.java
index d2d6197f..e45ef19b 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyModelUtil.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/MyModelUtil.java
@@ -2,19 +2,22 @@ package com.orange.demo.common.core.util;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ReflectUtil;
-import com.baomidou.mybatisplus.annotation.*;
import com.orange.demo.common.core.exception.InvalidDataFieldException;
import com.orange.demo.common.core.annotation.*;
import com.orange.demo.common.core.exception.MyRuntimeException;
import com.orange.demo.common.core.object.TokenData;
import com.orange.demo.common.core.object.Tuple2;
import com.orange.demo.common.core.upload.UploadStoreInfo;
-import com.google.common.base.CaseFormat;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
+import tk.mybatis.mapper.entity.Example;
+import javax.persistence.Column;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+import java.lang.reflect.Modifier;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -204,20 +207,8 @@ public class MyModelUtil {
if (field == null) {
return null;
}
- TableField c = field.getAnnotation(TableField.class);
- String columnName = null;
- if (c == null) {
- TableId id = field.getAnnotation(TableId.class);
- if (id != null) {
- columnName = id.value();
- }
- }
- if (columnName == null) {
- columnName = c == null ? CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, fieldName) : c.value();
- if (StringUtils.isBlank(columnName)) {
- columnName = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, fieldName);
- }
- }
+ Column c = field.getAnnotation(Column.class);
+ String columnName = c == null ? fieldName : c.name();
// 这里缺省情况下都是按照整型去处理,因为他覆盖太多的类型了。
// 如Integer/Long/Double/BigDecimal,可根据实际情况完善和扩充。
String typeName = field.getType().getSimpleName();
@@ -240,8 +231,8 @@ public class MyModelUtil {
* @return Model对象对应的数据表名称。
*/
public static String mapToTableName(Class> modelClazz) {
- TableName t = modelClazz.getAnnotation(TableName.class);
- return t == null ? null : t.value();
+ Table t = modelClazz.getAnnotation(Table.class);
+ return t == null ? null : t.name();
}
/**
@@ -601,6 +592,43 @@ public class MyModelUtil {
return isMap ? BeanUtil.beanToMap(model) : model;
}
+ /**
+ * 转换过滤对象到与其等效的Example对象。
+ *
+ * @param filterModel 过滤对象。
+ * @param modelClass 过滤对象的Class对象。
+ * @param 过滤对象类型。
+ * @return 转换后的Example对象。
+ */
+ public static Example convertFilterModelToExample(T filterModel, Class modelClass) {
+ if (filterModel == null) {
+ return null;
+ }
+ Example e = new Example(modelClass);
+ Example.Criteria c = e.createCriteria();
+ Field[] fields = ReflectUtil.getFields(modelClass);
+ for (Field field : fields) {
+ if (field.getAnnotation(Transient.class) == null) {
+ int modifiers = field.getModifiers();
+ // transient类型的字段不能作为查询条件
+ if ((modifiers & 128) != 0 || Modifier.isStatic(modifiers)) {
+ continue;
+ }
+ ReflectUtil.setAccessible(field);
+ try {
+ Object o = field.get(filterModel);
+ if (o != null) {
+ c.andEqualTo(field.getName(), field.get(filterModel));
+ }
+ } catch (IllegalAccessException ex) {
+ log.error("Failed to call reflection code.", ex);
+ throw new MyRuntimeException(ex);
+ }
+ }
+ }
+ return e;
+ }
+
/**
* 获取上传字段的存储信息。
*
diff --git a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/RedisKeyUtil.java b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/RedisKeyUtil.java
index f36f1c5b..127bc0a5 100644
--- a/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/RedisKeyUtil.java
+++ b/orange-demo-single-service/common/common-core/src/main/java/com/orange/demo/common/core/util/RedisKeyUtil.java
@@ -27,6 +27,17 @@ public class RedisKeyUtil {
return "SESSIONID__" + loginName + "_";
}
+ /**
+ * 获取指定用户Id和登录设备类型的session缓存的键前缀。
+ *
+ * @param loginName 指定的用户登录名。
+ * @param deviceType 设备类型。
+ * @return session缓存的键前缀。
+ */
+ public static String getSessionIdPrefix(String loginName, int deviceType) {
+ return "SESSIONID__" + loginName + "_" + deviceType + "_";
+ }
+
/**
* 计算SessionId返回存储于Redis中的键。
*
diff --git a/orange-demo-single-service/pom.xml b/orange-demo-single-service/pom.xml
index 3f6016e7..7038463a 100644
--- a/orange-demo-single-service/pom.xml
+++ b/orange-demo-single-service/pom.xml
@@ -33,7 +33,8 @@
6.2.0.Final
1.2.6
- 3.4.2
+ 2.1.5
+ 1.3.7
1.3.0
3.15.4
2.0.0