张延森 6 jaren geleden
bovenliggende
commit
6952abbce8
44 gewijzigde bestanden met toevoegingen van 1990 en 304 verwijderingen
  1. 13
    0
      .idea/libraries/Maven__io_jsonwebtoken_jjwt_api_0_10_5.xml
  2. 13
    0
      .idea/libraries/Maven__io_jsonwebtoken_jjwt_impl_0_10_5.xml
  3. 13
    0
      .idea/libraries/Maven__io_jsonwebtoken_jjwt_jackson_0_10_5.xml
  4. 5
    2
      .idea/service.iml
  5. 376
    291
      .idea/workspace.xml
  6. 18
    1
      pom.xml
  7. 28
    3
      src/main/java/com.huiju.welcome/common/base/ResponseBean.java
  8. 135
    0
      src/main/java/com.huiju.welcome/controller/TaFirstUsherRecordController.java
  9. 134
    0
      src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java
  10. 2
    4
      src/main/java/com.huiju.welcome/controller/TaPersonController.java
  11. 126
    0
      src/main/java/com.huiju.welcome/controller/TaVisitorAppointmentController.java
  12. 204
    0
      src/main/java/com.huiju.welcome/controller/TaWechatUserController.java
  13. 59
    2
      src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java
  14. 18
    0
      src/main/java/com.huiju.welcome/mapper/TaFirstUsherRecordMapper.java
  15. 18
    0
      src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java
  16. 9
    0
      src/main/java/com.huiju.welcome/mapper/TaOperationLogMapper.java
  17. 10
    0
      src/main/java/com.huiju.welcome/mapper/TaVisitorAppointmentMapper.java
  18. 18
    0
      src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java
  19. 51
    0
      src/main/java/com.huiju.welcome/model/TaFirstUsherRecord.java
  20. 53
    0
      src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java
  21. 33
    0
      src/main/java/com.huiju.welcome/model/TaOperationLog.java
  22. 41
    0
      src/main/java/com.huiju.welcome/model/TaVisitorAppointment.java
  23. 50
    0
      src/main/java/com.huiju.welcome/model/TaWechatUser.java
  24. 16
    0
      src/main/java/com.huiju.welcome/service/ITaFirstUsherRecordService.java
  25. 16
    0
      src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java
  26. 18
    0
      src/main/java/com.huiju.welcome/service/ITaOperationLogService.java
  27. 6
    0
      src/main/java/com.huiju.welcome/service/ITaPersonService.java
  28. 16
    0
      src/main/java/com.huiju.welcome/service/ITaVisitorAppointmentService.java
  29. 17
    0
      src/main/java/com.huiju.welcome/service/ITaWechatUserService.java
  30. 20
    0
      src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java
  31. 20
    0
      src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java
  32. 42
    0
      src/main/java/com.huiju.welcome/service/impl/TaOperationLogServiceImpl.java
  33. 77
    0
      src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java
  34. 20
    0
      src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java
  35. 35
    0
      src/main/java/com.huiju.welcome/service/impl/TaWechatUserServiceImpl.java
  36. 30
    0
      src/main/java/com.huiju.welcome/utils/DateUtils.java
  37. 55
    0
      src/main/java/com.huiju.welcome/utils/JWTUtils.java
  38. 38
    0
      src/main/java/com.huiju.welcome/utils/LogBuilder.java
  39. 79
    0
      src/main/java/com.huiju.welcome/utils/MiniApp.java
  40. 36
    0
      src/main/java/com.huiju.welcome/utils/StringUtils.java
  41. 7
    1
      src/main/resources/application.yml
  42. 5
    0
      src/main/resources/mapper/TaOperationLogMapper.xml
  43. 5
    0
      src/main/resources/mapper/TaVisitorAppointmentMapper.xml
  44. 5
    0
      src/main/resources/mapper/TaWechatUserMapper.xml

+ 13
- 0
.idea/libraries/Maven__io_jsonwebtoken_jjwt_api_0_10_5.xml Bestand weergeven

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: io.jsonwebtoken:jjwt-api:0.10.5">
3
+    <CLASSES>
4
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-api/0.10.5/jjwt-api-0.10.5.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-api/0.10.5/jjwt-api-0.10.5-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-api/0.10.5/jjwt-api-0.10.5-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/libraries/Maven__io_jsonwebtoken_jjwt_impl_0_10_5.xml Bestand weergeven

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: io.jsonwebtoken:jjwt-impl:0.10.5">
3
+    <CLASSES>
4
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-impl/0.10.5/jjwt-impl-0.10.5.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-impl/0.10.5/jjwt-impl-0.10.5-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-impl/0.10.5/jjwt-impl-0.10.5-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 13
- 0
.idea/libraries/Maven__io_jsonwebtoken_jjwt_jackson_0_10_5.xml Bestand weergeven

@@ -0,0 +1,13 @@
1
+<component name="libraryTable">
2
+  <library name="Maven: io.jsonwebtoken:jjwt-jackson:0.10.5">
3
+    <CLASSES>
4
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-jackson/0.10.5/jjwt-jackson-0.10.5.jar!/" />
5
+    </CLASSES>
6
+    <JAVADOC>
7
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-jackson/0.10.5/jjwt-jackson-0.10.5-javadoc.jar!/" />
8
+    </JAVADOC>
9
+    <SOURCES>
10
+      <root url="jar://D:/REPO/io/jsonwebtoken/jjwt-jackson/0.10.5/jjwt-jackson-0.10.5-sources.jar!/" />
11
+    </SOURCES>
12
+  </library>
13
+</component>

+ 5
- 2
.idea/service.iml Bestand weergeven

@@ -44,8 +44,6 @@
44 44
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.1.4.RELEASE" level="project" />
45 45
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.4.RELEASE" level="project" />
46 46
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.1.4.RELEASE" level="project" />
47
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
48
-    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
49 47
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8" level="project" />
50 48
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8" level="project" />
51 49
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.8" level="project" />
@@ -120,5 +118,10 @@
120 118
     <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.6.RELEASE" level="project" />
121 119
     <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
122 120
     <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.1.0.Final" level="project" />
121
+    <orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-api:0.10.5" level="project" />
122
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.jsonwebtoken:jjwt-impl:0.10.5" level="project" />
123
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.jsonwebtoken:jjwt-jackson:0.10.5" level="project" />
124
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
125
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
123 126
   </component>
124 127
 </module>

+ 376
- 291
.idea/workspace.xml
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 18
- 1
pom.xml Bestand weergeven

@@ -10,7 +10,7 @@
10 10
 	</parent>
11 11
 	<groupId>com.huiju.welcome</groupId>
12 12
 	<artifactId>mainbiz</artifactId>
13
-	<version>v3.1.0</version>
13
+	<version>v4.0.0</version>
14 14
 	<name>mainbiz</name>
15 15
 	<description>com.huiju.welcome main service</description>
16 16
 
@@ -75,6 +75,23 @@
75 75
 			<artifactId>springfox-swagger2</artifactId>
76 76
 			<version>2.7.0</version>
77 77
 		</dependency>
78
+		<dependency>
79
+			<groupId>io.jsonwebtoken</groupId>
80
+			<artifactId>jjwt-api</artifactId>
81
+			<version>0.10.5</version>
82
+		</dependency>
83
+		<dependency>
84
+			<groupId>io.jsonwebtoken</groupId>
85
+			<artifactId>jjwt-impl</artifactId>
86
+			<version>0.10.5</version>
87
+			<scope>runtime</scope>
88
+		</dependency>
89
+		<dependency>
90
+			<groupId>io.jsonwebtoken</groupId>
91
+			<artifactId>jjwt-jackson</artifactId>
92
+			<version>0.10.5</version>
93
+			<scope>runtime</scope>
94
+		</dependency>
78 95
 	</dependencies>
79 96
 
80 97
 	<build>

+ 28
- 3
src/main/java/com.huiju.welcome/common/base/ResponseBean.java Bestand weergeven

@@ -9,9 +9,6 @@ public class ResponseBean<T> implements Serializable {
9 9
 
10 10
     private static final long serialVersionUID = 3593827217136880822L;
11 11
 
12
-    public static final String CODE_SUCCESS =  "0";
13
-    public static final String CODE_FAIL =  "1";
14
-
15 12
     private int code = 200;
16 13
 
17 14
     private String message = "成功";
@@ -56,6 +53,34 @@ public class ResponseBean<T> implements Serializable {
56 53
         return this.message;
57 54
     }
58 55
 
56
+    public static <T> ResponseBean success(T data, String ...msgs) {
57
+        ResponseBean responseBean = new ResponseBean();
58
+        responseBean.code = 200;
59
+        responseBean.data = data;
60
+
61
+        if (null != msgs && msgs.length > 0) {
62
+            responseBean.message = msgs[0];
63
+        }
64
+
65
+        return responseBean;
66
+    }
67
+
68
+    public static <T> ResponseBean error(String msg, int code, T ...datas) {
69
+        ResponseBean responseBean = new ResponseBean();
70
+        responseBean.code = code;
71
+        responseBean.message = msg;
72
+
73
+        if (null != datas && datas.length > 0) {
74
+            responseBean.data = datas[0];
75
+        }
76
+
77
+        return responseBean;
78
+    }
79
+
80
+    public void setCode(int code) {
81
+        this.code = code;
82
+    }
83
+
59 84
     @Override
60 85
     public String toString() {
61 86
         return  "{ code: "+code+", message: "+message+", data: <T> }";

+ 135
- 0
src/main/java/com.huiju.welcome/controller/TaFirstUsherRecordController.java Bestand weergeven

@@ -0,0 +1,135 @@
1
+package com.huiju.welcome.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.welcome.common.base.BaseController;
7
+import com.huiju.welcome.common.base.ResponseBean;
8
+import com.huiju.welcome.model.TaFirstUsherRecord;
9
+import com.huiju.welcome.service.ITaFirstUsherRecordService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.*;
14
+
15
+/**
16
+ * <p>
17
+    *  前端控制器
18
+    * </p>
19
+ *
20
+ * @author jobob
21
+ * @since 2019-06-04
22
+ */
23
+@RestController
24
+@RequestMapping("/")
25
+public class TaFirstUsherRecordController extends BaseController {
26
+
27
+    private final Logger logger = LoggerFactory.getLogger(TaFirstUsherRecordController.class);
28
+
29
+    @Autowired
30
+    public ITaFirstUsherRecordService iTaFirstUsherRecordService;
31
+
32
+
33
+    /**
34
+     * 保存对象
35
+     * @param taFirstUsherRecord 实体对象
36
+     * @return
37
+     */
38
+    @RequestMapping(value="/firstUsherRecord",method= RequestMethod.POST)
39
+    public ResponseBean save(@RequestBody TaFirstUsherRecord taFirstUsherRecord){
40
+        ResponseBean responseBean = new ResponseBean();
41
+        try {
42
+            if (iTaFirstUsherRecordService.save(taFirstUsherRecord)){
43
+                responseBean.addSuccess(taFirstUsherRecord);
44
+            }else {
45
+                responseBean.addError("fail");
46
+            }
47
+        }catch (Exception e){
48
+            logger.error("taFirstUsherRecordAdd -=- {}",e.toString());
49
+            responseBean.addError(e.getMessage());
50
+        }
51
+        return responseBean;
52
+    }
53
+
54
+    /**
55
+     * 根据id删除对象
56
+     * @param id  实体ID
57
+     */
58
+    @ResponseBody
59
+    @RequestMapping(value="/firstUsherRecord/{id}", method= RequestMethod.DELETE)
60
+    public ResponseBean delete(@PathVariable Integer id){
61
+        ResponseBean responseBean = new ResponseBean();
62
+        try {
63
+            if(iTaFirstUsherRecordService.removeById(id)){
64
+                responseBean.addSuccess("success");
65
+            }else {
66
+                responseBean.addError("fail");
67
+            }
68
+        }catch (Exception e){
69
+            logger.error("taFirstUsherRecordDelete -=- {}",e.toString());
70
+            responseBean.addError(e.getMessage());
71
+        }
72
+        return responseBean;
73
+    }
74
+
75
+    /**
76
+     * 修改对象
77
+     * @param taFirstUsherRecord 实体对象
78
+     * @return
79
+     */
80
+    @RequestMapping(value="/firstUsherRecord/{id}",method= RequestMethod.PUT)
81
+    public ResponseBean update(@RequestBody TaFirstUsherRecord taFirstUsherRecord, @PathVariable Integer id){
82
+        ResponseBean responseBean = new ResponseBean();
83
+        try {
84
+            if (iTaFirstUsherRecordService.updateById(taFirstUsherRecord)){
85
+                responseBean.addSuccess("success");
86
+            }else {
87
+                responseBean.addError("fail");
88
+            }
89
+        }catch (Exception e){
90
+            logger.error("taFirstUsherRecordUpdate -=- {}",e.toString());
91
+            responseBean.addError(e.getMessage());
92
+        }
93
+        return responseBean;
94
+    }
95
+
96
+    /**
97
+     * 根据id查询对象
98
+     * @param id  实体ID
99
+     */
100
+    @RequestMapping(value="/firstUsherRecord/{id}",method= RequestMethod.GET)
101
+    public ResponseBean get(@PathVariable Integer id){
102
+        ResponseBean responseBean = new ResponseBean();
103
+        try {
104
+            responseBean.addSuccess(iTaFirstUsherRecordService.getById(id));
105
+        }catch (Exception e){
106
+            logger.error("taFirstUsherRecordGetByID -=- {}",e.toString());
107
+            responseBean.addError(e.getMessage());
108
+        }
109
+        return responseBean;
110
+    }
111
+
112
+    /**
113
+     * 根据id查询对象
114
+     * @param id  实体ID
115
+     */
116
+    @RequestMapping(value="/firstUsherRecord",method= RequestMethod.GET)
117
+    public ResponseBean list(
118
+        @RequestParam(defaultValue = "1") int pageNumber,
119
+        @RequestParam(defaultValue = "10") int pageSize
120
+    ){
121
+        ResponseBean responseBean = new ResponseBean();
122
+        try {
123
+            IPage<TaFirstUsherRecord> pg = new Page<>(pageNumber, pageSize);
124
+            QueryWrapper<TaFirstUsherRecord> queryWrapper = new QueryWrapper<>();
125
+            queryWrapper.orderByDesc("create_date");
126
+
127
+            IPage<TaFirstUsherRecord> result = iTaFirstUsherRecordService.page(pg, queryWrapper);
128
+            responseBean.addSuccess(result);
129
+        }catch (Exception e){
130
+            logger.error("taFirstUsherRecordList -=- {}",e.toString());
131
+            responseBean.addError(e.getMessage());
132
+        }
133
+        return responseBean;
134
+    }
135
+}

+ 134
- 0
src/main/java/com.huiju.welcome/controller/TaMainUsherRecordController.java Bestand weergeven

@@ -0,0 +1,134 @@
1
+package com.huiju.welcome.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.huiju.welcome.common.base.BaseController;
7
+import com.huiju.welcome.common.base.ResponseBean;
8
+import com.huiju.welcome.model.TaMainUsherRecord;
9
+import com.huiju.welcome.service.ITaMainUsherRecordService;
10
+import org.slf4j.Logger;
11
+import org.slf4j.LoggerFactory;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.*;
14
+
15
+/**
16
+ * <p>
17
+    *  前端控制器
18
+    * </p>
19
+ *
20
+ * @author jobob
21
+ * @since 2019-06-04
22
+ */
23
+@RestController
24
+@RequestMapping("/")
25
+public class TaMainUsherRecordController extends BaseController {
26
+
27
+    private final Logger logger = LoggerFactory.getLogger(TaMainUsherRecordController.class);
28
+
29
+    @Autowired
30
+    public ITaMainUsherRecordService iTaMainUsherRecordService;
31
+
32
+
33
+    /**
34
+     * 保存对象
35
+     * @param taMainUsherRecord 实体对象
36
+     * @return
37
+     */
38
+    @RequestMapping(value="/mainUsherRecord",method= RequestMethod.POST)
39
+    public ResponseBean save(@RequestBody TaMainUsherRecord taMainUsherRecord){
40
+        ResponseBean responseBean = new ResponseBean();
41
+        try {
42
+            if (iTaMainUsherRecordService.save(taMainUsherRecord)){
43
+                responseBean.addSuccess(taMainUsherRecord);
44
+            }else {
45
+                responseBean.addError("fail");
46
+            }
47
+        }catch (Exception e){
48
+            logger.error("taMainUsherRecordAdd -=- {}",e.toString());
49
+            responseBean.addError(e.getMessage());
50
+        }
51
+        return responseBean;
52
+    }
53
+
54
+    /**
55
+     * 根据id删除对象
56
+     * @param id  实体ID
57
+     */
58
+    @ResponseBody
59
+    @RequestMapping(value="/mainUsherRecord/{id}", method= RequestMethod.DELETE)
60
+    public ResponseBean delete(@PathVariable Integer id){
61
+        ResponseBean responseBean = new ResponseBean();
62
+        try {
63
+            if(iTaMainUsherRecordService.removeById(id)){
64
+                responseBean.addSuccess("success");
65
+            }else {
66
+                responseBean.addError("fail");
67
+            }
68
+        }catch (Exception e){
69
+            logger.error("taMainUsherRecordDelete -=- {}",e.toString());
70
+            responseBean.addError(e.getMessage());
71
+        }
72
+        return responseBean;
73
+    }
74
+
75
+    /**
76
+     * 修改对象
77
+     * @param taMainUsherRecord 实体对象
78
+     * @return
79
+     */
80
+    @RequestMapping(value="/mainUsherRecord/{id}",method= RequestMethod.PUT)
81
+    public ResponseBean update(@RequestBody TaMainUsherRecord taMainUsherRecord, @PathVariable Integer id){
82
+        ResponseBean responseBean = new ResponseBean();
83
+        try {
84
+            if (iTaMainUsherRecordService.updateById(taMainUsherRecord)){
85
+                responseBean.addSuccess("success");
86
+            }else {
87
+                responseBean.addError("fail");
88
+            }
89
+        }catch (Exception e){
90
+            logger.error("taMainUsherRecordUpdate -=- {}",e.toString());
91
+            responseBean.addError(e.getMessage());
92
+        }
93
+        return responseBean;
94
+    }
95
+
96
+    /**
97
+     * 根据id查询对象
98
+     * @param id  实体ID
99
+     */
100
+    @RequestMapping(value="/mainUsherRecord/{id}",method= RequestMethod.GET)
101
+    public ResponseBean get(@PathVariable Integer id){
102
+        ResponseBean responseBean = new ResponseBean();
103
+        try {
104
+            responseBean.addSuccess(iTaMainUsherRecordService.getById(id));
105
+        }catch (Exception e){
106
+            logger.error("taMainUsherRecordGetByID -=- {}",e.toString());
107
+            responseBean.addError(e.getMessage());
108
+        }
109
+        return responseBean;
110
+    }
111
+
112
+    /**
113
+     * 分页查询
114
+     */
115
+    @RequestMapping(value="/mainUsherRecord",method= RequestMethod.GET)
116
+    public ResponseBean list(
117
+        @RequestParam(defaultValue = "1") int pageNumber,
118
+        @RequestParam(defaultValue = "10") int pageSize
119
+    ){
120
+        ResponseBean responseBean = new ResponseBean();
121
+        try {
122
+            IPage<TaMainUsherRecord> pg = new Page<>(pageNumber, pageSize);
123
+            QueryWrapper<TaMainUsherRecord> queryWrapper = new QueryWrapper<>();
124
+            queryWrapper.orderByDesc("create_date");
125
+
126
+            IPage<TaMainUsherRecord> result = iTaMainUsherRecordService.page(pg, queryWrapper);
127
+            responseBean.addSuccess(result);
128
+        }catch (Exception e){
129
+            logger.error("taMainUsherRecordList -=- {}",e.toString());
130
+            responseBean.addError(e.getMessage());
131
+        }
132
+        return responseBean;
133
+    }
134
+}

+ 2
- 4
src/main/java/com.huiju.welcome/controller/TaPersonController.java Bestand weergeven

@@ -5,10 +5,7 @@ import com.huiju.welcome.common.base.BaseController;
5 5
 import com.huiju.welcome.common.base.ResponseBean;
6 6
 import com.huiju.welcome.model.TaPerson;
7 7
 import com.huiju.welcome.model.TaVisitingLog;
8
-import com.huiju.welcome.service.ICameraService;
9
-import com.huiju.welcome.service.ITaDeviceService;
10
-import com.huiju.welcome.service.ITaPersonService;
11
-import com.huiju.welcome.service.ITaVisitingLogService;
8
+import com.huiju.welcome.service.*;
12 9
 import com.huiju.welcome.utils.StatusUtils;
13 10
 import io.swagger.annotations.Api;
14 11
 import io.swagger.annotations.ApiImplicitParam;
@@ -224,4 +221,5 @@ public class TaPersonController extends BaseController {
224 221
         responseBean.addSuccess(person);
225 222
         return responseBean;
226 223
     }
224
+
227 225
 }

+ 126
- 0
src/main/java/com.huiju.welcome/controller/TaVisitorAppointmentController.java Bestand weergeven

@@ -0,0 +1,126 @@
1
+package com.huiju.welcome.controller;
2
+
3
+
4
+import com.alibaba.fastjson.JSONObject;
5
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
6
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
7
+import com.baomidou.mybatisplus.core.metadata.IPage;
8
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
9
+import com.huiju.welcome.common.base.BaseController;
10
+import com.huiju.welcome.common.base.ResponseBean;
11
+import com.huiju.welcome.model.TaVisitorAppointment;
12
+import com.huiju.welcome.service.ITaVisitorAppointmentService;
13
+import com.huiju.welcome.utils.DateUtils;
14
+import com.huiju.welcome.utils.StringUtils;
15
+import org.springframework.beans.factory.annotation.Autowired;
16
+import org.apache.http.HttpStatus;
17
+import org.springframework.web.bind.annotation.*;
18
+
19
+import java.time.LocalDateTime;
20
+import java.util.Date;
21
+
22
+/**
23
+ * <p>
24
+ *  前端控制器
25
+ * </p>
26
+ *
27
+ * @author jobob
28
+ * @since 2019-03-12
29
+ */
30
+@RestController
31
+@RequestMapping("/")
32
+public class TaVisitorAppointmentController extends BaseController {
33
+    @Autowired
34
+    ITaVisitorAppointmentService taVisitorAppointmentService;
35
+
36
+    @GetMapping("/appointment")
37
+    public ResponseBean list(
38
+            @RequestParam(defaultValue = "1") Integer page,
39
+            @RequestParam(defaultValue = "10") Integer size,
40
+            String name,
41
+            String phone,
42
+            String platNumber
43
+    ) {
44
+        IPage<TaVisitorAppointment> pg = new Page<>(page, size);
45
+        QueryWrapper<TaVisitorAppointment> queryWrapper = new QueryWrapper<>();
46
+        queryWrapper.like(!StringUtils.isEmpty(name), "person_name", name);
47
+        queryWrapper.like(!StringUtils.isEmpty(phone), "phone", phone);
48
+        queryWrapper.like(!StringUtils.isEmpty(platNumber), "plat_number", platNumber);
49
+        queryWrapper.orderByDesc("create_date");
50
+
51
+        IPage<TaVisitorAppointment> result = taVisitorAppointmentService.page(pg, queryWrapper);
52
+
53
+        ResponseBean resp = new ResponseBean();
54
+        resp.addSuccess(result);
55
+        return resp;
56
+    }
57
+
58
+    @GetMapping("/appointment/{id}")
59
+    public ResponseBean getByID(@PathVariable Integer id) {
60
+        TaVisitorAppointment taVisitorAppointment = taVisitorAppointmentService.getById(id);
61
+        return ResponseBean.success(taVisitorAppointment);
62
+    }
63
+
64
+    @PostMapping("/appointment")
65
+    public ResponseBean save(@RequestBody String paramStr) {
66
+        if (StringUtils.isEmpty(paramStr)) {
67
+            return ResponseBean.error("请设置保存内容", HttpStatus.SC_BAD_REQUEST);
68
+        }
69
+
70
+        JSONObject params = JSONObject.parseObject(paramStr);
71
+        TaVisitorAppointment taVisitorAppointment = new TaVisitorAppointment();
72
+        taVisitorAppointment.setPersonId(params.getInteger("personId"));
73
+        taVisitorAppointment.setPersonName(params.getString("personName"));
74
+        taVisitorAppointment.setPhone(params.getString("phone"));
75
+        taVisitorAppointment.setPersonNum(params.getInteger("personNum"));
76
+        taVisitorAppointment.setCarNum(params.getInteger("carNum"));
77
+        taVisitorAppointment.setCarModel(params.getString("carModel"));
78
+        taVisitorAppointment.setPlatNumber(params.getString("platNumber"));
79
+//        taVisitorAppointment.setStatus(params.getInteger("status"));
80
+
81
+        Date dt = params.getDate("visitDate");
82
+        if (null != dt) {
83
+            taVisitorAppointment.setVisitDate(DateUtils.date2LocalDateTime(dt));
84
+        }
85
+
86
+        taVisitorAppointment.setCreateDate(LocalDateTime.now());
87
+        boolean success = taVisitorAppointmentService.save(taVisitorAppointment);
88
+        if (success) {
89
+            return ResponseBean.success(taVisitorAppointment);
90
+        } else {
91
+            return ResponseBean.error("保存数据失败", HttpStatus.SC_INTERNAL_SERVER_ERROR);
92
+        }
93
+    }
94
+
95
+    @PutMapping("/appointment/{id}")
96
+    public ResponseBean update(@PathVariable Integer id, @RequestBody String paramStr) {
97
+        if (StringUtils.isEmpty(paramStr)) {
98
+            return ResponseBean.error("请设置保存内容", HttpStatus.SC_BAD_REQUEST);
99
+        }
100
+
101
+        JSONObject params = JSONObject.parseObject(paramStr);
102
+        UpdateWrapper<TaVisitorAppointment> wrapper = new UpdateWrapper<>();
103
+        wrapper.eq("appointment_id", id);
104
+        wrapper.set("person_id", params.getInteger("personId"));
105
+        wrapper.set("person_name", params.getString("personName"));
106
+        wrapper.set("phone", params.getString("phone"));
107
+        wrapper.set("visit_date", params.getString("visitDate"));
108
+        wrapper.set("person_num", params.getInteger("personNum"));
109
+        wrapper.set("car_num", params.getInteger("carNum"));
110
+        wrapper.set("car_model", params.getString("carModel"));
111
+        wrapper.set("plat_number", params.getString("platNumber"));
112
+        wrapper.set("status", params.getInteger("status"));
113
+
114
+        Date dt = params.getDate("visitDate");
115
+        if (null != dt) {
116
+            wrapper.set("visit_date", DateUtils.date2LocalDateTime(dt));
117
+        }
118
+
119
+        boolean success = taVisitorAppointmentService.update(new TaVisitorAppointment(), wrapper);
120
+        if (success) {
121
+            return ResponseBean.success(null);
122
+        } else {
123
+            return ResponseBean.error("更新数据失败", HttpStatus.SC_INTERNAL_SERVER_ERROR);
124
+        }
125
+    }
126
+}

+ 204
- 0
src/main/java/com.huiju.welcome/controller/TaWechatUserController.java Bestand weergeven

@@ -0,0 +1,204 @@
1
+package com.huiju.welcome.controller;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
6
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
7
+import com.huiju.welcome.common.base.BaseController;
8
+import com.huiju.welcome.common.base.ResponseBean;
9
+import com.huiju.welcome.model.TaPerson;
10
+import com.huiju.welcome.model.TaWechatUser;
11
+import com.huiju.welcome.service.ITaPersonService;
12
+import com.huiju.welcome.service.ITaWechatUserService;
13
+import com.huiju.welcome.utils.JWTUtils;
14
+import com.huiju.welcome.utils.MiniApp;
15
+import com.huiju.welcome.utils.StatusUtils;
16
+import org.apache.http.HttpStatus;
17
+import org.slf4j.Logger;
18
+import org.slf4j.LoggerFactory;
19
+import org.springframework.beans.factory.annotation.Autowired;
20
+import org.springframework.web.bind.annotation.*;
21
+
22
+import javax.servlet.http.HttpServletRequest;
23
+import java.time.LocalDateTime;
24
+import java.util.HashMap;
25
+import java.util.Map;
26
+
27
+/**
28
+ * <p>
29
+    *  前端控制器
30
+    * </p>
31
+ *
32
+ * @author jobob
33
+ * @since 2019-06-11
34
+ */
35
+@RestController
36
+@RequestMapping("/miniapp")
37
+public class TaWechatUserController extends BaseController {
38
+
39
+    private final Logger logger = LoggerFactory.getLogger(TaWechatUserController.class);
40
+
41
+    @Autowired
42
+    private ITaWechatUserService iTaWechatUserService;
43
+
44
+    @Autowired
45
+    private ITaPersonService iTaPersonService;
46
+
47
+    @GetMapping("/login")
48
+    public ResponseBean login(@RequestParam String code) {
49
+        MiniApp miniApp = new MiniApp();
50
+        ResponseBean resp = miniApp.getOpenid(code);
51
+        if (resp.getCode() != 200) {
52
+            return resp;
53
+        }
54
+
55
+        JSONObject data = (JSONObject) resp.getData();
56
+        String openid = data.getString("openid");
57
+        String sessionKey = data.getString("session_key");
58
+        String unionId = data.getString("unionid");
59
+        String appid = miniApp.getAppid();
60
+
61
+        Map<String, Object> map = new HashMap<>();
62
+        map.put("openid", openid);
63
+        map.put("sessionKey", sessionKey);
64
+        map.put("unionId", unionId);
65
+        map.put("appid", appid);
66
+
67
+        // 如果已经存在的用户, 直接返回
68
+        TaWechatUser taWechatUser = iTaWechatUserService.getByOpenid(openid, appid);
69
+        if (null != taWechatUser) {
70
+            map.put("user", taWechatUser);
71
+            map.put("token", JWTUtils.newToken(taWechatUser.getUserId() + ""));
72
+            return ResponseBean.success(map);
73
+        }
74
+
75
+        // 否则新增用户数据
76
+        TaWechatUser newUser = new TaWechatUser();
77
+        newUser.setAppid(appid);
78
+        newUser.setClientType("miniapp");
79
+        newUser.setOpenid(openid);
80
+        newUser.setUnionId(unionId);
81
+        newUser.setStatus(StatusUtils.Normal);
82
+        newUser.setCreateDate(LocalDateTime.now());
83
+
84
+        boolean success = iTaWechatUserService.save(newUser);
85
+        if (!success) {
86
+            ResponseBean.error("预存用户信息失败", HttpStatus.SC_INTERNAL_SERVER_ERROR);
87
+        }
88
+
89
+        map.put("user", newUser);
90
+        map.put("token", JWTUtils.newToken(newUser.getUserId() + ""));
91
+        return ResponseBean.success(map);
92
+    }
93
+
94
+    @PostMapping("/bind")
95
+    public ResponseBean bind(@RequestBody String paramStr, HttpServletRequest request) {
96
+        String userId = JWTUtils.getSubject(request);
97
+        TaWechatUser taWechatUser = iTaWechatUserService.getById(Integer.valueOf(userId));
98
+
99
+        if (null == taWechatUser) {
100
+            ResponseBean.error("数据异常, 请清空缓存后重新操作", HttpStatus.SC_INTERNAL_SERVER_ERROR);
101
+        }
102
+
103
+        if (null != taWechatUser.getPersonId()) {
104
+            ResponseBean.error("不支持人员重复绑定", HttpStatus.SC_BAD_REQUEST);
105
+        }
106
+
107
+        JSONObject params = JSONObject.parseObject(paramStr);
108
+        if (null == params) {
109
+            ResponseBean.error("绑定参数为空或者非法", HttpStatus.SC_BAD_REQUEST);
110
+        }
111
+
112
+        String phone = params.getString("phone");
113
+        String captcha = params.getString("captcha");
114
+
115
+        if (null == phone || "".equals(phone.trim()) || null == captcha || "".equals(captcha.trim())) {
116
+            ResponseBean.error("绑定参数为空或者非法", HttpStatus.SC_BAD_REQUEST);
117
+        }
118
+
119
+        // todo
120
+        // 先简单验证
121
+        if (!"1234".equals(captcha)) {
122
+            ResponseBean.error("绑定参数为空或者非法", HttpStatus.SC_BAD_REQUEST);
123
+        }
124
+
125
+        TaPerson taPerson = iTaPersonService.getByPhone(phone);
126
+        if (null == taPerson) {
127
+            ResponseBean.error("该手机号对应人员不存在", HttpStatus.SC_BAD_REQUEST);
128
+        }
129
+
130
+        taWechatUser.setPersonId(taPerson.getRealId());
131
+        boolean success = iTaWechatUserService.updateById(taWechatUser);
132
+
133
+        if (!success) {
134
+            ResponseBean.error("人员绑定失败", HttpStatus.SC_INTERNAL_SERVER_ERROR);
135
+        }
136
+
137
+        return ResponseBean.success(taWechatUser);
138
+    }
139
+
140
+    /**
141
+     * 修改对象
142
+     * @param taWechatUser 实体对象
143
+     * @return
144
+     */
145
+    @RequestMapping(value="/user/{id}",method= RequestMethod.PUT)
146
+    public ResponseBean update(@RequestBody TaWechatUser taWechatUser, @PathVariable Integer id){
147
+        ResponseBean responseBean = new ResponseBean();
148
+        try {
149
+            if (iTaWechatUserService.updateById(taWechatUser)){
150
+                responseBean.addSuccess("success");
151
+            }else {
152
+                responseBean.addError("fail");
153
+            }
154
+        }catch (Exception e){
155
+            logger.error("taWechatUserUpdate -=- {}",e.toString());
156
+            responseBean.addError(e.getMessage());
157
+        }
158
+        return responseBean;
159
+    }
160
+
161
+    /**
162
+     * 根据id查询对象
163
+     * @param id  实体ID
164
+     */
165
+    @RequestMapping(value="/user/{id}",method= RequestMethod.GET)
166
+    public ResponseBean get(@PathVariable Integer id, HttpServletRequest request){
167
+        ResponseBean responseBean = new ResponseBean();
168
+        try {
169
+            if (id.intValue() == 0) {
170
+                String userId = JWTUtils.getSubject(request);
171
+                responseBean.addSuccess(iTaWechatUserService.getById(Integer.valueOf(userId)));
172
+            } else {
173
+                responseBean.addSuccess(iTaWechatUserService.getById(id));
174
+            }
175
+        }catch (Exception e){
176
+            logger.error("taWechatUserGetByID -=- {}",e.toString());
177
+            responseBean.addError(e.getMessage());
178
+        }
179
+        return responseBean;
180
+    }
181
+
182
+    /**
183
+     * 分页查询
184
+     */
185
+    @RequestMapping(value="/user",method= RequestMethod.GET)
186
+    public ResponseBean list(
187
+        @RequestParam(defaultValue = "1") int pageNumber,
188
+        @RequestParam(defaultValue = "10") int pageSize
189
+    ){
190
+        ResponseBean responseBean = new ResponseBean();
191
+        try {
192
+            IPage<TaWechatUser> pg = new Page<>(pageNumber, pageSize);
193
+            QueryWrapper<TaWechatUser> queryWrapper = new QueryWrapper<>();
194
+            queryWrapper.orderByDesc("create_date");
195
+
196
+            IPage<TaWechatUser> result = iTaWechatUserService.page(pg, queryWrapper);
197
+            responseBean.addSuccess(result);
198
+        }catch (Exception e){
199
+            logger.error("taWechatUserList -=- {}",e.toString());
200
+            responseBean.addError(e.getMessage());
201
+        }
202
+        return responseBean;
203
+    }
204
+}

+ 59
- 2
src/main/java/com.huiju.welcome/interceptor/AccessInterceptor.java Bestand weergeven

@@ -1,6 +1,11 @@
1 1
 package com.huiju.welcome.interceptor;
2 2
 
3 3
 import com.alibaba.fastjson.JSONObject;
4
+import com.huiju.welcome.common.base.ResponseBean;
5
+import com.huiju.welcome.utils.JWTUtils;
6
+import io.jsonwebtoken.ExpiredJwtException;
7
+import io.jsonwebtoken.JwtException;
8
+import io.jsonwebtoken.Jwts;
4 9
 import org.apache.http.HttpStatus;
5 10
 import org.springframework.stereotype.Component;
6 11
 import org.springframework.web.servlet.HandlerInterceptor;
@@ -29,7 +34,8 @@ public class AccessInterceptor implements HandlerInterceptor {
29 34
             "/stranger",
30 35
             "/screen",
31 36
             "/camera",
32
-            "/websocket"
37
+            "/websocket",
38
+            "/miniapp/login"
33 39
     };
34 40
 
35 41
     /*
@@ -60,6 +66,53 @@ public class AccessInterceptor implements HandlerInterceptor {
60 66
             return true;
61 67
         }
62 68
 
69
+        return isWechat(request) ? checkJWT(request, response, obj) : checkSession(request, response, obj);
70
+    }
71
+
72
+    private boolean checkJWT(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
73
+
74
+        // 消息头必须包含 authorization 字段
75
+        String jwtHeader = request.getHeader("authorization");
76
+        if (null == jwtHeader || "".equals(jwtHeader)) {
77
+            ResponseBean resp = ResponseBean.error("请先进行系统登录操作", HttpStatus.SC_UNAUTHORIZED);
78
+
79
+            response.addHeader("Content-type", "application/json");
80
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
81
+            return false;
82
+        }
83
+
84
+        String[] jwtAuths = jwtHeader.split("Bearer ");
85
+        if (null == jwtAuths || jwtAuths.length < 2) {
86
+            ResponseBean resp = ResponseBean.error("权限验证非法, 数据格式不正确", HttpStatus.SC_UNAUTHORIZED);
87
+
88
+            response.addHeader("Content-type", "application/json");
89
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
90
+            return false;
91
+        }
92
+
93
+        try {
94
+            // 只尝试去解析
95
+            Jwts.parser().setSigningKey(JWTUtils.key).parseClaimsJws(jwtAuths[1]);
96
+        } catch (ExpiredJwtException e) {
97
+            ResponseBean resp = ResponseBean.error("权限验证非法, Token 已过期", HttpStatus.SC_UNAUTHORIZED);
98
+            response.addHeader("Content-type", "application/json");
99
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
100
+            return false;
101
+
102
+        } catch (JwtException e) {
103
+            ResponseBean resp = ResponseBean.error("权限验证非法, " + e.getMessage(), HttpStatus.SC_UNAUTHORIZED);
104
+
105
+
106
+            response.addHeader("Content-type", "application/json");
107
+            response.getOutputStream().write(JSONObject.toJSONBytes(resp));
108
+            return false;
109
+        }
110
+
111
+        return true;
112
+    }
113
+
114
+    private boolean checkSession(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
115
+
63 116
         HttpSession httpSession = request.getSession();
64 117
         String token = (String) httpSession.getAttribute("token");
65 118
 
@@ -72,10 +125,14 @@ public class AccessInterceptor implements HandlerInterceptor {
72 125
             response.getOutputStream().write(JSONObject.toJSONBytes(error));
73 126
             return false;
74 127
         }
75
-
76 128
         return true;
77 129
     }
78 130
 
131
+    private boolean isWechat(HttpServletRequest request) {
132
+        String ua = request.getHeader("user-agent");
133
+        return ua.contains("micromessenger") || ua.contains("MicroMessenger");
134
+    }
135
+
79 136
     private boolean inWhiteList(HttpServletRequest request) {
80 137
         String requestURI = request.getRequestURI();
81 138
 

+ 18
- 0
src/main/java/com.huiju.welcome/mapper/TaFirstUsherRecordMapper.java Bestand weergeven

@@ -0,0 +1,18 @@
1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.TaFirstUsherRecord;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ *  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-06-04
14
+ */
15
+@Mapper
16
+public interface TaFirstUsherRecordMapper extends BaseMapper<TaFirstUsherRecord> {
17
+
18
+}

+ 18
- 0
src/main/java/com.huiju.welcome/mapper/TaMainUsherRecordMapper.java Bestand weergeven

@@ -0,0 +1,18 @@
1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.TaMainUsherRecord;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ *  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-06-04
14
+ */
15
+@Mapper
16
+public interface TaMainUsherRecordMapper extends BaseMapper<TaMainUsherRecord> {
17
+
18
+}

+ 9
- 0
src/main/java/com.huiju.welcome/mapper/TaOperationLogMapper.java Bestand weergeven

@@ -0,0 +1,9 @@
1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.TaOperationLog;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+@Mapper
8
+public interface TaOperationLogMapper extends BaseMapper<TaOperationLog> {
9
+}

+ 10
- 0
src/main/java/com.huiju.welcome/mapper/TaVisitorAppointmentMapper.java Bestand weergeven

@@ -0,0 +1,10 @@
1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.TaVisitorAppointment;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+
8
+@Mapper
9
+public interface TaVisitorAppointmentMapper extends BaseMapper<TaVisitorAppointment> {
10
+}

+ 18
- 0
src/main/java/com.huiju.welcome/mapper/TaWechatUserMapper.java Bestand weergeven

@@ -0,0 +1,18 @@
1
+package com.huiju.welcome.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import com.huiju.welcome.model.TaWechatUser;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ *  Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author jobob
13
+ * @since 2019-06-11
14
+ */
15
+@Mapper
16
+public interface TaWechatUserMapper extends BaseMapper<TaWechatUser> {
17
+
18
+}

+ 51
- 0
src/main/java/com.huiju.welcome/model/TaFirstUsherRecord.java Bestand weergeven

@@ -0,0 +1,51 @@
1
+package com.huiju.welcome.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-06-04
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaFirstUsherRecord implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    @TableId(value = "rec_id", type = IdType.AUTO)
28
+    private Integer recId;
29
+
30
+    private String plateNumber;
31
+
32
+    private String carModel;
33
+
34
+    private Integer personNum;
35
+
36
+    private Boolean appointment;
37
+
38
+    private LocalDateTime visiteDate;
39
+
40
+    private Integer status;
41
+
42
+    private String plateNumber2;
43
+
44
+    private String carModel2;
45
+
46
+    private String plateNumber3;
47
+
48
+    private String carModel3;
49
+
50
+
51
+}

+ 53
- 0
src/main/java/com.huiju.welcome/model/TaMainUsherRecord.java Bestand weergeven

@@ -0,0 +1,53 @@
1
+package com.huiju.welcome.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.io.Serializable;
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ * 
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-06-04
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+public class TaMainUsherRecord implements Serializable {
24
+
25
+    private static final long serialVersionUID = 1L;
26
+
27
+    @TableId(value = "rec_id", type = IdType.AUTO)
28
+    private Integer recId;
29
+
30
+    private Integer visitorId;
31
+
32
+    private String visitorName;
33
+
34
+    private String visitorPhone;
35
+
36
+    private Integer personNum;
37
+
38
+    private Integer consultantId;
39
+
40
+    private String realtyConsultant;
41
+
42
+    private Boolean appointment;
43
+
44
+    private LocalDateTime visiteDate;
45
+
46
+    private Integer status;
47
+
48
+    private String carModel;
49
+
50
+    private String plateNumber;
51
+
52
+
53
+}

+ 33
- 0
src/main/java/com.huiju.welcome/model/TaOperationLog.java Bestand weergeven

@@ -0,0 +1,33 @@
1
+package com.huiju.welcome.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.time.LocalDateTime;
10
+
11
+@Data
12
+@EqualsAndHashCode(callSuper = false)
13
+@Accessors(chain = true)
14
+public class TaOperationLog {
15
+    private static final long serialVersionUID = 1L;
16
+
17
+    @TableId(value = "log_id", type = IdType.AUTO)
18
+    Integer logId;
19
+
20
+    LocalDateTime createDate;
21
+
22
+    String source;
23
+
24
+    String entity;
25
+
26
+    String srcId;
27
+
28
+    String optType;
29
+
30
+    String content;
31
+
32
+    String operator;
33
+}

+ 41
- 0
src/main/java/com.huiju.welcome/model/TaVisitorAppointment.java Bestand weergeven

@@ -0,0 +1,41 @@
1
+package com.huiju.welcome.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import lombok.Data;
6
+import lombok.EqualsAndHashCode;
7
+import lombok.experimental.Accessors;
8
+
9
+import java.time.LocalDateTime;
10
+
11
+@Data
12
+@EqualsAndHashCode(callSuper = false)
13
+@Accessors(chain = true)
14
+public class TaVisitorAppointment {
15
+    private static final long serialVersionUID = 1L;
16
+
17
+    @TableId(value = "appointment_id", type = IdType.AUTO)
18
+    Integer appointmentId;
19
+
20
+    Integer personId;
21
+
22
+    String personName;
23
+
24
+    String phone;
25
+
26
+    LocalDateTime visitDate;
27
+
28
+    Integer personNum;
29
+
30
+    Integer carNum;
31
+
32
+    String carModel;
33
+
34
+    String platNumber;
35
+
36
+    Integer status;
37
+
38
+    LocalDateTime createDate;
39
+
40
+    String remark;
41
+}

+ 50
- 0
src/main/java/com.huiju.welcome/model/TaWechatUser.java Bestand weergeven

@@ -0,0 +1,50 @@
1
+package com.huiju.welcome.model;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import java.time.LocalDateTime;
6
+import java.io.Serializable;
7
+import lombok.Data;
8
+import lombok.EqualsAndHashCode;
9
+import lombok.experimental.Accessors;
10
+
11
+/**
12
+ * <p>
13
+ * 
14
+ * </p>
15
+ *
16
+ * @author jobob
17
+ * @since 2019-06-11
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+public class TaWechatUser implements Serializable {
23
+
24
+    private static final long serialVersionUID = 1L;
25
+
26
+    @TableId(value = "user_id", type = IdType.AUTO)
27
+    private Integer userId;
28
+
29
+    private Integer personId;
30
+
31
+    private String nickName;
32
+
33
+    private String avatarUrl;
34
+
35
+    private String gender;
36
+
37
+    private String openid;
38
+
39
+    private String appid;
40
+
41
+    private String unionId;
42
+
43
+    private String clientType;
44
+
45
+    private Integer status;
46
+
47
+    private LocalDateTime createDate;
48
+
49
+
50
+}

+ 16
- 0
src/main/java/com.huiju.welcome/service/ITaFirstUsherRecordService.java Bestand weergeven

@@ -0,0 +1,16 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.TaFirstUsherRecord;
5
+
6
+/**
7
+ * <p>
8
+ *  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-06-04
13
+ */
14
+public interface ITaFirstUsherRecordService extends IService<TaFirstUsherRecord> {
15
+
16
+}

+ 16
- 0
src/main/java/com.huiju.welcome/service/ITaMainUsherRecordService.java Bestand weergeven

@@ -0,0 +1,16 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.TaMainUsherRecord;
5
+
6
+/**
7
+ * <p>
8
+ *  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-06-04
13
+ */
14
+public interface ITaMainUsherRecordService extends IService<TaMainUsherRecord> {
15
+
16
+}

+ 18
- 0
src/main/java/com.huiju.welcome/service/ITaOperationLogService.java Bestand weergeven

@@ -0,0 +1,18 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.TaOperationLog;
5
+
6
+/**
7
+ * <p>
8
+ *  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-03-12
13
+ */
14
+public interface ITaOperationLogService extends IService<TaOperationLog> {
15
+
16
+    int create(String operator, String source, String optType, String entity, String srcId, String content);
17
+
18
+}

+ 6
- 0
src/main/java/com.huiju.welcome/service/ITaPersonService.java Bestand weergeven

@@ -40,4 +40,10 @@ public interface ITaPersonService extends IService<TaPerson> {
40 40
             String beginDate,
41 41
             String endDate
42 42
     );
43
+
44
+    void logNew(String opertaor, TaPerson taPerson);
45
+
46
+    void logEdit(String opertaor, TaPerson from, TaPerson to);
47
+
48
+    TaPerson getByPhone(String phone);
43 49
 }

+ 16
- 0
src/main/java/com.huiju.welcome/service/ITaVisitorAppointmentService.java Bestand weergeven

@@ -0,0 +1,16 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.TaVisitorAppointment;
5
+
6
+/**
7
+ * <p>
8
+ *  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-03-12
13
+ */
14
+public interface ITaVisitorAppointmentService extends IService<TaVisitorAppointment> {
15
+
16
+}

+ 17
- 0
src/main/java/com.huiju.welcome/service/ITaWechatUserService.java Bestand weergeven

@@ -0,0 +1,17 @@
1
+package com.huiju.welcome.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.welcome.model.TaWechatUser;
5
+
6
+/**
7
+ * <p>
8
+ *  服务类
9
+ * </p>
10
+ *
11
+ * @author jobob
12
+ * @since 2019-06-11
13
+ */
14
+public interface ITaWechatUserService extends IService<TaWechatUser> {
15
+
16
+    TaWechatUser getByOpenid(String openid, String appid);
17
+}

+ 20
- 0
src/main/java/com.huiju.welcome/service/impl/TaFirstUsherRecordServiceImpl.java Bestand weergeven

@@ -0,0 +1,20 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.welcome.mapper.TaFirstUsherRecordMapper;
5
+import com.huiju.welcome.model.TaFirstUsherRecord;
6
+import com.huiju.welcome.service.ITaFirstUsherRecordService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ *  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-06-04
16
+ */
17
+@Service
18
+public class TaFirstUsherRecordServiceImpl extends ServiceImpl<TaFirstUsherRecordMapper, TaFirstUsherRecord> implements ITaFirstUsherRecordService {
19
+
20
+}

+ 20
- 0
src/main/java/com.huiju.welcome/service/impl/TaMainUsherRecordServiceImpl.java Bestand weergeven

@@ -0,0 +1,20 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.welcome.mapper.TaMainUsherRecordMapper;
5
+import com.huiju.welcome.model.TaMainUsherRecord;
6
+import com.huiju.welcome.service.ITaMainUsherRecordService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ *  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-06-04
16
+ */
17
+@Service
18
+public class TaMainUsherRecordServiceImpl extends ServiceImpl<TaMainUsherRecordMapper, TaMainUsherRecord> implements ITaMainUsherRecordService {
19
+
20
+}

+ 42
- 0
src/main/java/com.huiju.welcome/service/impl/TaOperationLogServiceImpl.java Bestand weergeven

@@ -0,0 +1,42 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.welcome.mapper.TaOperationLogMapper;
5
+import com.huiju.welcome.model.TaOperationLog;
6
+import com.huiju.welcome.service.ITaOperationLogService;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.stereotype.Service;
9
+
10
+import java.time.LocalDateTime;
11
+
12
+/**
13
+ * <p>
14
+ *  服务实现类
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-03-12
19
+ */
20
+@Service
21
+public class TaOperationLogServiceImpl extends ServiceImpl<TaOperationLogMapper, TaOperationLog> implements ITaOperationLogService {
22
+    @Autowired
23
+    TaOperationLogMapper taOperationLogMapper;
24
+
25
+    @Override
26
+    public int create(String operator, String source, String optType, String entity, String srcId, String content) {
27
+        if (null == content || "".equals(content.trim())) return 0;
28
+
29
+        if (null == optType || "".equals(optType.trim())) optType = "新增";
30
+
31
+        TaOperationLog taOperationLog = new TaOperationLog();
32
+        taOperationLog.setContent(content);
33
+        taOperationLog.setCreateDate(LocalDateTime.now());
34
+        taOperationLog.setEntity(entity);
35
+        taOperationLog.setOperator(operator);
36
+        taOperationLog.setSource(source);
37
+        taOperationLog.setSrcId(srcId);
38
+        taOperationLog.setOptType(optType);
39
+
40
+        return taOperationLogMapper.insert(taOperationLog);
41
+    }
42
+}

+ 77
- 0
src/main/java/com.huiju.welcome/service/impl/TaPersonServiceImpl.java Bestand weergeven

@@ -8,11 +8,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
8 8
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
9 9
 import com.huiju.welcome.mapper.TaDeviceMapper;
10 10
 import com.huiju.welcome.mapper.TaPersonMapper;
11
+import com.huiju.welcome.mapper.TaPersonTypeMapper;
11 12
 import com.huiju.welcome.model.TaDevice;
12 13
 import com.huiju.welcome.model.TaPerson;
14
+import com.huiju.welcome.model.TaPersonType;
13 15
 import com.huiju.welcome.model.TaVisitingLog;
16
+import com.huiju.welcome.service.ITaOperationLogService;
14 17
 import com.huiju.welcome.service.ITaPersonService;
15 18
 import com.huiju.welcome.service.ITaVisitingLogService;
19
+import com.huiju.welcome.utils.LogBuilder;
16 20
 import com.huiju.welcome.utils.StatusUtils;
17 21
 import org.slf4j.Logger;
18 22
 import org.slf4j.LoggerFactory;
@@ -48,11 +52,17 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
48 52
     @Autowired
49 53
     private TaPersonMapper taPersonMapper;
50 54
 
55
+    @Autowired
56
+    private TaPersonTypeMapper taPersonTypeMapper;
57
+
51 58
     @Autowired
52 59
     private ITaVisitingLogService taVisitingLogService;
53 60
     
54 61
     @Autowired
55 62
     private TaDeviceMapper taDeviceMapper;
63
+
64
+    @Autowired
65
+    private ITaOperationLogService taOperationLogService;
56 66
     
57 67
     @Value("${huiju.files}")
58 68
     private String huijuFiles;
@@ -182,4 +192,71 @@ public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> i
182 192
     public IPage<TaPerson> getRealPersonList(Page<TaPerson> page, Integer personId, Integer typeId, String name, String phone, String beginDate, String endDate) {
183 193
         return taPersonMapper.getRealPersonList(page, personId, typeId, name, phone, beginDate, endDate);
184 194
     }
195
+
196
+    @Override
197
+    public void logNew(String opertaor, TaPerson taPerson) {
198
+        String source = "人员信息";
199
+        String optType = "新增";
200
+        String entity = taPerson.getName();
201
+
202
+        LogBuilder logBuilder = new LogBuilder();
203
+        logBuilder.append("姓名", taPerson.getName());
204
+        logBuilder.append("类型", getTypeName(taPerson));
205
+        logBuilder.append("性别", getSex(taPerson));
206
+        logBuilder.append("头像", taPerson.getAvatar());
207
+        logBuilder.append("手机", taPerson.getPhone());
208
+        logBuilder.append("邮箱", taPerson.getEmail());
209
+        logBuilder.append("备注", taPerson.getRemark());
210
+        logBuilder.append("欢迎词", taPerson.getWords());
211
+
212
+        String content = logBuilder.build();
213
+        taOperationLogService.create(opertaor, source, optType, entity, String.valueOf(taPerson.getPersonId()), content);
214
+    }
215
+
216
+    @Override
217
+    public void logEdit(String opertaor, TaPerson from, TaPerson to) {
218
+        String source = "人员信息";
219
+        String optType = "编辑";
220
+        String entity = from.getName();
221
+
222
+        LogBuilder logBuilder = new LogBuilder();
223
+        logBuilder.append("姓名", from.getName(), to.getName());
224
+        logBuilder.append("类型", getTypeName(from), getTypeName(to));
225
+        logBuilder.append("性别", getSex(from), getSex(to));
226
+        logBuilder.append("头像", from.getAvatar(), to.getAvatar());
227
+        logBuilder.append("手机", from.getPhone(), to.getPhone());
228
+        logBuilder.append("邮箱", from.getEmail(), to.getEmail());
229
+        logBuilder.append("备注", from.getRemark(), to.getRemark());
230
+        logBuilder.append("欢迎词", from.getWords(), to.getWords());
231
+
232
+        String content = logBuilder.build();
233
+        taOperationLogService.create(opertaor, source, optType, entity, String.valueOf(from.getPersonId()), content);
234
+    }
235
+
236
+    @Override
237
+    public TaPerson getByPhone(String phone) {
238
+        QueryWrapper<TaPerson> wrapper = new QueryWrapper<>();
239
+        wrapper.eq("phone", phone);
240
+        wrapper.eq("status", StatusUtils.Normal);
241
+        wrapper.last("limit 1");
242
+
243
+        return taPersonMapper.selectOne(wrapper);
244
+    }
245
+
246
+    private String getTypeName(TaPerson taPerson) {
247
+        TaPersonType taPersonType = taPersonTypeMapper.selectById(taPerson.getTypeId());
248
+        return null == taPersonType ? null : taPersonType.getTypeName();
249
+    }
250
+
251
+    private String getSex(TaPerson taPerson) {
252
+        if (null == taPerson.getSex()) return null;
253
+
254
+        Map<String, String> dict = new HashMap<>();
255
+        dict.put("1", "男");
256
+        dict.put("1", "女");
257
+        dict.put("9", "未知");
258
+
259
+        String sex = dict.get(taPerson.getSex());
260
+        return null == sex ? taPerson.getSex() : sex;
261
+    }
185 262
 }

+ 20
- 0
src/main/java/com.huiju.welcome/service/impl/TaVisitorAppointmentServiceImpl.java Bestand weergeven

@@ -0,0 +1,20 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
4
+import com.huiju.welcome.mapper.TaVisitorAppointmentMapper;
5
+import com.huiju.welcome.model.TaVisitorAppointment;
6
+import com.huiju.welcome.service.ITaVisitorAppointmentService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ *  服务实现类
12
+ * </p>
13
+ *
14
+ * @author jobob
15
+ * @since 2019-03-12
16
+ */
17
+@Service
18
+public class TaVisitorAppointmentServiceImpl extends ServiceImpl<TaVisitorAppointmentMapper, TaVisitorAppointment> implements ITaVisitorAppointmentService {
19
+
20
+}

+ 35
- 0
src/main/java/com.huiju.welcome/service/impl/TaWechatUserServiceImpl.java Bestand weergeven

@@ -0,0 +1,35 @@
1
+package com.huiju.welcome.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
+import com.huiju.welcome.mapper.TaWechatUserMapper;
6
+import com.huiju.welcome.model.TaWechatUser;
7
+import com.huiju.welcome.service.ITaWechatUserService;
8
+import com.huiju.welcome.utils.StatusUtils;
9
+import org.springframework.beans.factory.annotation.Autowired;
10
+import org.springframework.stereotype.Service;
11
+
12
+/**
13
+ * <p>
14
+ *  服务实现类
15
+ * </p>
16
+ *
17
+ * @author jobob
18
+ * @since 2019-06-11
19
+ */
20
+@Service
21
+public class TaWechatUserServiceImpl extends ServiceImpl<TaWechatUserMapper, TaWechatUser> implements ITaWechatUserService {
22
+    @Autowired
23
+    TaWechatUserMapper taWechatUserMapper;
24
+
25
+    @Override
26
+    public TaWechatUser getByOpenid(String openid, String appid) {
27
+        QueryWrapper<TaWechatUser> wrapper = new QueryWrapper<>();
28
+        wrapper.eq("openid", openid);
29
+        wrapper.eq("appid", appid);
30
+        wrapper.eq("status", StatusUtils.Normal);
31
+        wrapper.last("limit 1");
32
+
33
+        return taWechatUserMapper.selectOne(wrapper);
34
+    }
35
+}

+ 30
- 0
src/main/java/com.huiju.welcome/utils/DateUtils.java Bestand weergeven

@@ -0,0 +1,30 @@
1
+package com.huiju.welcome.utils;
2
+
3
+import java.time.Instant;
4
+import java.time.LocalDateTime;
5
+import java.time.ZoneId;
6
+import java.time.format.DateTimeFormatter;
7
+import java.util.Date;
8
+
9
+public class DateUtils {
10
+    public static LocalDateTime date2LocalDateTime(Date date) {
11
+        Instant instant = date.toInstant();
12
+        ZoneId zone = ZoneId.systemDefault();
13
+        return LocalDateTime.ofInstant(instant, zone);
14
+    }
15
+
16
+    public static boolean sameDay(LocalDateTime d1, LocalDateTime d2) {
17
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
18
+        return d1.format(formatter).equals(d2.format(formatter));
19
+    }
20
+
21
+    public static String cutSecond(LocalDateTime dt) {
22
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
23
+        return dt.format(formatter);
24
+    }
25
+
26
+    public static LocalDateTime day2LocalDateime(String day) {
27
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
28
+        return LocalDateTime.parse(day + " 00:00:00",df);
29
+    }
30
+}

+ 55
- 0
src/main/java/com.huiju.welcome/utils/JWTUtils.java Bestand weergeven

@@ -0,0 +1,55 @@
1
+package com.huiju.welcome.utils;
2
+
3
+import io.jsonwebtoken.Jwts;
4
+import io.jsonwebtoken.security.Keys;
5
+
6
+import javax.servlet.http.HttpServletRequest;
7
+import java.security.Key;
8
+import java.util.Calendar;
9
+import java.util.Date;
10
+
11
+/**
12
+ * JWTUtils
13
+ * jwt 辅助类
14
+ * https://github.com/jwtk/jjwt
15
+ */
16
+public class JWTUtils {
17
+    // 直接定义常量是不安全的
18
+    // 注意, 不能修改值定义,否则已经生成的 token 会不可用
19
+    public final static Key key = Keys.hmacShaKeyFor("yansenisahero,2019-6-5 16:18:14".getBytes());
20
+
21
+    /**
22
+     * getSubject 获取 jwt subject
23
+     * @param request
24
+     * @return
25
+     */
26
+    public static String getSubject(HttpServletRequest request) {
27
+        String jwtHeader = request.getHeader("authorization");
28
+        if (null == jwtHeader || "".equals(jwtHeader.trim())) return null;
29
+
30
+        String[] jwtAuths = jwtHeader.split("Bearer ");
31
+        if (null == jwtAuths || jwtAuths.length < 2) return null;
32
+
33
+        try {
34
+            return Jwts.parser().setSigningKey(key).parseClaimsJws(jwtAuths[1]).getBody().getSubject();
35
+        } catch (Exception e) {
36
+            e.printStackTrace();
37
+        }
38
+
39
+        return null;
40
+    }
41
+
42
+    /**
43
+     * newToken 生成新的 token
44
+     * @param subject
45
+     * @return
46
+     */
47
+    public static String newToken(String subject) {
48
+        // 有效期 7 天
49
+        Calendar calendar = Calendar.getInstance();
50
+        calendar.setTime(new Date());
51
+        calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+7);
52
+
53
+        return Jwts.builder().setSubject(subject).setExpiration(calendar.getTime()).signWith(key).compact();
54
+    }
55
+}

+ 38
- 0
src/main/java/com.huiju.welcome/utils/LogBuilder.java Bestand weergeven

@@ -0,0 +1,38 @@
1
+package com.huiju.welcome.utils;
2
+
3
+import java.util.ArrayList;
4
+import java.util.List;
5
+
6
+public class LogBuilder {
7
+    private List<String> content = new ArrayList<>();
8
+
9
+    public LogBuilder append(String name, String value) {
10
+        if (null == value || "".equals(value.trim())) return this;
11
+        content.add(String.format("【%s】 %s ", name, value));
12
+        return this;
13
+    }
14
+
15
+    public LogBuilder append(String ctt) {
16
+        if (null == ctt || "".equals(ctt.trim())) return this;
17
+        content.add(ctt);
18
+        return this;
19
+    }
20
+
21
+    public LogBuilder append(String name, String before, String after) {
22
+        if ((null == before || "".equals(before.trim())) && (null == after || "".equals(after.trim()))) return this;
23
+
24
+        if (null == before) before = "null";
25
+        if (null == after) after = "null";
26
+
27
+        if (before.equals(after)) return this;
28
+
29
+        content.add(String.format("【%s】 修改前 %s, 修改后 %s", name, before, after));
30
+        return this;
31
+    }
32
+
33
+    public String build() {
34
+        String result = String.join(" ; ", content);
35
+        content.clear();
36
+        return result;
37
+    }
38
+}

+ 79
- 0
src/main/java/com.huiju.welcome/utils/MiniApp.java Bestand weergeven

@@ -0,0 +1,79 @@
1
+package com.huiju.welcome.utils;
2
+
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.huiju.welcome.common.base.ResponseBean;
5
+import lombok.Data;
6
+import org.apache.http.HttpStatus;
7
+import org.slf4j.Logger;
8
+import org.slf4j.LoggerFactory;
9
+import org.springframework.beans.factory.annotation.Value;
10
+import org.springframework.boot.context.properties.ConfigurationProperties;
11
+import org.springframework.http.HttpEntity;
12
+import org.springframework.http.HttpHeaders;
13
+import org.springframework.http.HttpMethod;
14
+import org.springframework.http.MediaType;
15
+import org.springframework.stereotype.Component;
16
+import org.springframework.web.client.RestTemplate;
17
+
18
+import java.util.HashMap;
19
+import java.util.List;
20
+import java.util.Map;
21
+
22
+@Component
23
+@ConfigurationProperties(prefix = "file")
24
+public class MiniApp {
25
+    private Logger log = LoggerFactory.getLogger(MiniApp.class);
26
+
27
+    @Value("${miniapp.api}")
28
+    private String url;
29
+
30
+    @Value("${miniapp.appid}")
31
+    private String appid;
32
+
33
+    @Value("${miniapp.sercret}")
34
+    private String sercret;
35
+
36
+    public String getAppid() {
37
+        return this.appid;
38
+    }
39
+
40
+    public ResponseBean getOpenid(String code) {
41
+        String api = url + "/" + appid + "/login?code=" + code;
42
+        RestTemplate restTemplate = new RestTemplate();
43
+        String resp = restTemplate.exchange(api,HttpMethod.resolve("GET"), new HttpEntity<String>(null, null),String.class).getBody();
44
+
45
+        JSONObject result = JSONObject.parseObject(resp);
46
+        Integer respCode = result.getInteger("code");
47
+        if (null == respCode || respCode.intValue() != 0) {
48
+            log.error("请求小程序服务接口失败, 请求地址 " + api);
49
+            log.error("请求结果: " + resp);
50
+            return ResponseBean.error("调用小程序接口失败", HttpStatus.SC_INTERNAL_SERVER_ERROR);
51
+        }
52
+
53
+        return ResponseBean.success(result.getJSONObject("data"));
54
+    }
55
+
56
+    public ResponseBean sendTPLMessage(String tplId, String formId, String toUser, String page, List<Object> data) {
57
+        String api = String.format("/api/%s/tpl/%s/form/%s/to/%s", appid, tplId, formId, toUser);
58
+
59
+        HttpHeaders headers = new HttpHeaders();
60
+        headers.setContentType(MediaType.APPLICATION_JSON);
61
+        Map<String, Object> sendData = new HashMap<String, Object>();
62
+        sendData.put("page", page);
63
+        sendData.put("data", data);
64
+
65
+        RestTemplate restTemplate = new RestTemplate();
66
+        HttpEntity<Map<String, Object>> request = new HttpEntity<Map<String, Object>>(sendData, headers);
67
+        String resp = restTemplate.postForEntity(url, request, String.class).getBody();
68
+
69
+        JSONObject result = JSONObject.parseObject(resp);
70
+        Integer respCode = result.getInteger("code");
71
+        if (null == respCode || respCode.intValue() != 0) {
72
+            log.error("请求小程序服务接口失败, 请求地址 " + api);
73
+            log.error("请求结果: " + resp);
74
+            return ResponseBean.error("调用小程序接口失败", HttpStatus.SC_INTERNAL_SERVER_ERROR);
75
+        }
76
+
77
+        return ResponseBean.success("");
78
+    }
79
+}

+ 36
- 0
src/main/java/com.huiju.welcome/utils/StringUtils.java Bestand weergeven

@@ -0,0 +1,36 @@
1
+package com.huiju.welcome.utils;
2
+
3
+import java.util.Random;
4
+
5
+public class StringUtils {
6
+    public static boolean isEmpty(String str) {
7
+        return null == str || "".equals(str.trim()) || "null".equals(str) || "undefined".equals(str);
8
+    }
9
+
10
+    public static String trim(String src, String ...st) {
11
+        if (null == src) return src;
12
+        if (null == st || st.length == 0) return src.trim();
13
+
14
+        String start = st[0];
15
+        if (!src.startsWith(start)) {
16
+            return src;
17
+        }
18
+
19
+        return src.substring(start.length());
20
+    }
21
+
22
+    public static String ifNull(String src, String defaultVal) {
23
+        return null == src || "".equals(src) ? defaultVal : src;
24
+    }
25
+
26
+    public static String random(int length) {
27
+        String str="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
28
+        Random random = new Random();
29
+        StringBuffer sb = new StringBuffer();
30
+        for(int i=0;i<length;i++){
31
+            int number=random.nextInt(62);
32
+            sb.append(str.charAt(number));
33
+        }
34
+        return sb.toString();
35
+    }
36
+}

+ 7
- 1
src/main/resources/application.yml Bestand weergeven

@@ -38,4 +38,10 @@ saweather:
38 38
   need3HourForcast: 0
39 39
   needAlarm: 0
40 40
   needHourData: 0
41
-  needMoreDay: 0
41
+  needMoreDay: 0
42
+
43
+# 小程序服务
44
+miniapp:
45
+  api: http://127.0.0.1:8088/api/miniapp
46
+  appid: wx3f26e5f48c72d39f
47
+  secret: 03fcb0228ada1dd27ba45fb5a64c6f52

+ 5
- 0
src/main/resources/mapper/TaOperationLogMapper.xml Bestand weergeven

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.welcome.mapper.TaOperationLogMapper">
4
+
5
+</mapper>

+ 5
- 0
src/main/resources/mapper/TaVisitorAppointmentMapper.xml Bestand weergeven

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.welcome.mapper.TaVisitorAppointmentMapper">
4
+
5
+</mapper>

+ 5
- 0
src/main/resources/mapper/TaWechatUserMapper.xml Bestand weergeven

@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.welcome.mapper.TaWechatUserMapper">
4
+
5
+</mapper>