张延森 3 лет назад
Родитель
Сommit
f75d4fdb7a
95 измененных файлов: 2227 добавлений и 297 удалений
  1. 9
    2
      src/main/java/com/yunzhi/training/common/BaseController.java
  2. 12
    10
      src/main/java/com/yunzhi/training/common/JWTUtils.java
  3. 85
    38
      src/main/java/com/yunzhi/training/controller/LoginController.java
  4. 1
    1
      src/main/java/com/yunzhi/training/controller/TaAnswerController.java
  5. 1
    1
      src/main/java/com/yunzhi/training/controller/TaAttachmentController.java
  6. 145
    0
      src/main/java/com/yunzhi/training/controller/TaBannerController.java
  7. 157
    0
      src/main/java/com/yunzhi/training/controller/TaCourseController.java
  8. 114
    40
      src/main/java/com/yunzhi/training/controller/TaPersonController.java
  9. 1
    1
      src/main/java/com/yunzhi/training/controller/TaQuePersonController.java
  10. 1
    1
      src/main/java/com/yunzhi/training/controller/TaQuestionController.java
  11. 1
    1
      src/main/java/com/yunzhi/training/controller/TaQuestionPersonController.java
  12. 1
    1
      src/main/java/com/yunzhi/training/controller/TaQuestionnaireController.java
  13. 169
    0
      src/main/java/com/yunzhi/training/controller/TaSchoolClassController.java
  14. 162
    0
      src/main/java/com/yunzhi/training/controller/TaSchoolTermController.java
  15. 159
    0
      src/main/java/com/yunzhi/training/controller/TaSignInController.java
  16. 30
    30
      src/main/java/com/yunzhi/training/controller/TaSignPersonController.java
  17. 30
    30
      src/main/java/com/yunzhi/training/controller/TaSignPlainController.java
  18. 136
    0
      src/main/java/com/yunzhi/training/controller/TaStudentController.java
  19. 1
    1
      src/main/java/com/yunzhi/training/entity/TaAnswer.java
  20. 1
    1
      src/main/java/com/yunzhi/training/entity/TaAttachment.java
  21. 55
    0
      src/main/java/com/yunzhi/training/entity/TaBanner.java
  22. 55
    0
      src/main/java/com/yunzhi/training/entity/TaCourse.java
  23. 14
    2
      src/main/java/com/yunzhi/training/entity/TaPerson.java
  24. 1
    1
      src/main/java/com/yunzhi/training/entity/TaQuePerson.java
  25. 1
    1
      src/main/java/com/yunzhi/training/entity/TaQuestion.java
  26. 1
    1
      src/main/java/com/yunzhi/training/entity/TaQuestionPerson.java
  27. 1
    1
      src/main/java/com/yunzhi/training/entity/TaQuestionnaire.java
  28. 50
    0
      src/main/java/com/yunzhi/training/entity/TaSchoolClass.java
  29. 12
    12
      src/main/java/com/yunzhi/training/entity/TaSchoolTerm.java
  30. 8
    8
      src/main/java/com/yunzhi/training/entity/TaSignIn.java
  31. 52
    0
      src/main/java/com/yunzhi/training/entity/TaSignPerson.java
  32. 50
    0
      src/main/java/com/yunzhi/training/entity/TaSignPlain.java
  33. 67
    0
      src/main/java/com/yunzhi/training/entity/TaStudent.java
  34. 1
    0
      src/main/java/com/yunzhi/training/interceptor/PermissionInterceptor.java
  35. 1
    1
      src/main/java/com/yunzhi/training/mapper/TaAnswerMapper.java
  36. 1
    1
      src/main/java/com/yunzhi/training/mapper/TaAttachmentMapper.java
  37. 4
    4
      src/main/java/com/yunzhi/training/mapper/TaBannerMapper.java
  38. 27
    0
      src/main/java/com/yunzhi/training/mapper/TaCourseMapper.java
  39. 1
    1
      src/main/java/com/yunzhi/training/mapper/TaPersonMapper.java
  40. 1
    1
      src/main/java/com/yunzhi/training/mapper/TaQuePersonMapper.java
  41. 1
    1
      src/main/java/com/yunzhi/training/mapper/TaQuestionMapper.java
  42. 1
    1
      src/main/java/com/yunzhi/training/mapper/TaQuestionPersonMapper.java
  43. 1
    1
      src/main/java/com/yunzhi/training/mapper/TaQuestionnaireMapper.java
  44. 24
    0
      src/main/java/com/yunzhi/training/mapper/TaSchoolClassMapper.java
  45. 4
    4
      src/main/java/com/yunzhi/training/mapper/TaSchoolTermMapper.java
  46. 18
    0
      src/main/java/com/yunzhi/training/mapper/TaSignInMapper.java
  47. 18
    0
      src/main/java/com/yunzhi/training/mapper/TaSignPersonMapper.java
  48. 18
    0
      src/main/java/com/yunzhi/training/mapper/TaSignPlainMapper.java
  49. 25
    0
      src/main/java/com/yunzhi/training/mapper/TaStudentMapper.java
  50. 6
    0
      src/main/java/com/yunzhi/training/service/IBaseService.java
  51. 0
    16
      src/main/java/com/yunzhi/training/service/ITaActivityService.java
  52. 0
    16
      src/main/java/com/yunzhi/training/service/ITaActivitySignService.java
  53. 1
    1
      src/main/java/com/yunzhi/training/service/ITaAnswerService.java
  54. 1
    1
      src/main/java/com/yunzhi/training/service/ITaAttachmentService.java
  55. 15
    0
      src/main/java/com/yunzhi/training/service/ITaBannerService.java
  56. 19
    0
      src/main/java/com/yunzhi/training/service/ITaCourseService.java
  57. 2
    1
      src/main/java/com/yunzhi/training/service/ITaPersonService.java
  58. 1
    1
      src/main/java/com/yunzhi/training/service/ITaQuePersonService.java
  59. 1
    1
      src/main/java/com/yunzhi/training/service/ITaQuestionPersonService.java
  60. 1
    1
      src/main/java/com/yunzhi/training/service/ITaQuestionService.java
  61. 1
    1
      src/main/java/com/yunzhi/training/service/ITaQuestionnaireService.java
  62. 21
    0
      src/main/java/com/yunzhi/training/service/ITaSchoolClassService.java
  63. 15
    0
      src/main/java/com/yunzhi/training/service/ITaSchoolTermService.java
  64. 15
    0
      src/main/java/com/yunzhi/training/service/ITaSignInService.java
  65. 16
    0
      src/main/java/com/yunzhi/training/service/ITaSignPersonService.java
  66. 16
    0
      src/main/java/com/yunzhi/training/service/ITaSignPlainService.java
  67. 17
    0
      src/main/java/com/yunzhi/training/service/ITaStudentService.java
  68. 32
    1
      src/main/java/com/yunzhi/training/service/impl/BaseServiceImpl.java
  69. 0
    20
      src/main/java/com/yunzhi/training/service/impl/TaActivityServiceImpl.java
  70. 0
    20
      src/main/java/com/yunzhi/training/service/impl/TaActivitySignServiceImpl.java
  71. 1
    1
      src/main/java/com/yunzhi/training/service/impl/TaAnswerServiceImpl.java
  72. 1
    1
      src/main/java/com/yunzhi/training/service/impl/TaAttachmentServiceImpl.java
  73. 19
    0
      src/main/java/com/yunzhi/training/service/impl/TaBannerServiceImpl.java
  74. 26
    0
      src/main/java/com/yunzhi/training/service/impl/TaCourseServiceImpl.java
  75. 11
    1
      src/main/java/com/yunzhi/training/service/impl/TaPersonServiceImpl.java
  76. 1
    1
      src/main/java/com/yunzhi/training/service/impl/TaQuePersonServiceImpl.java
  77. 1
    1
      src/main/java/com/yunzhi/training/service/impl/TaQuestionPersonServiceImpl.java
  78. 1
    1
      src/main/java/com/yunzhi/training/service/impl/TaQuestionServiceImpl.java
  79. 1
    1
      src/main/java/com/yunzhi/training/service/impl/TaQuestionnaireServiceImpl.java
  80. 46
    0
      src/main/java/com/yunzhi/training/service/impl/TaSchoolClassServiceImpl.java
  81. 19
    0
      src/main/java/com/yunzhi/training/service/impl/TaSchoolTermServiceImpl.java
  82. 19
    0
      src/main/java/com/yunzhi/training/service/impl/TaSignInServiceImpl.java
  83. 20
    0
      src/main/java/com/yunzhi/training/service/impl/TaSignPersonServiceImpl.java
  84. 20
    0
      src/main/java/com/yunzhi/training/service/impl/TaSignPlainServiceImpl.java
  85. 24
    0
      src/main/java/com/yunzhi/training/service/impl/TaStudentServiceImpl.java
  86. 0
    5
      src/main/java/com/yunzhi/training/vo/TokenParam.java
  87. 9
    4
      src/main/resources/application.yml
  88. 1
    1
      src/main/resources/mapper/TaBannerMapper.xml
  89. 24
    0
      src/main/resources/mapper/TaCourseMapper.xml
  90. 25
    0
      src/main/resources/mapper/TaSchoolClassMapper.xml
  91. 1
    1
      src/main/resources/mapper/TaSchoolTermMapper.xml
  92. 5
    0
      src/main/resources/mapper/TaSignInMapper.xml
  93. 5
    0
      src/main/resources/mapper/TaSignPersonMapper.xml
  94. 5
    0
      src/main/resources/mapper/TaSignPlainMapper.xml
  95. 33
    0
      src/main/resources/mapper/TaStudentMapper.xml

+ 9
- 2
src/main/java/com/yunzhi/training/common/BaseController.java Просмотреть файл

@@ -1,5 +1,6 @@
1 1
 package com.yunzhi.training.common;
2 2
 
3
+import cn.hutool.json.JSONObject;
3 4
 import com.yunzhi.training.entity.SysUser;
4 5
 import com.yunzhi.training.entity.TaPerson;
5 6
 import com.yunzhi.training.service.ISysUserService;
@@ -23,7 +24,10 @@ public class BaseController {
23 24
      * @return
24 25
      */
25 26
     public SysUser getCurrentUser(HttpServletRequest request) throws Exception {
26
-        String userId = request.getHeader("x-userid");
27
+        String token = JWTUtils.getToken(request);
28
+        JSONObject tkJSON = JWTUtils.decode(token);
29
+
30
+        String userId = tkJSON.get("userId", String.class);
27 31
         if (StringUtils.isEmpty(userId)) {
28 32
             throw new Exception("获取当前人员信息失败");
29 33
         }
@@ -41,7 +45,10 @@ public class BaseController {
41 45
      * @return
42 46
      */
43 47
     public TaPerson getCurrentPerson(HttpServletRequest request) throws Exception {
44
-        String personId = request.getHeader("x-person");
48
+        String token = JWTUtils.getToken(request);
49
+        JSONObject tkJSON = JWTUtils.decode(token);
50
+
51
+        String personId = tkJSON.get("userId", String.class);
45 52
         if (StringUtils.isEmpty(personId)) {
46 53
             throw new Exception("获取当前人员信息失败");
47 54
         }

+ 12
- 10
src/main/java/com/yunzhi/training/common/JWTUtils.java Просмотреть файл

@@ -3,9 +3,6 @@ package com.yunzhi.training.common;
3 3
 import cn.hutool.json.JSONObject;
4 4
 import cn.hutool.jwt.JWT;
5 5
 import cn.hutool.jwt.JWTUtil;
6
-import cn.hutool.jwt.JWTValidator;
7
-import cn.hutool.jwt.signers.JWTSigner;
8
-import cn.hutool.jwt.signers.JWTSignerUtil;
9 6
 import org.slf4j.Logger;
10 7
 import org.slf4j.LoggerFactory;
11 8
 
@@ -28,7 +25,7 @@ public class JWTUtils {
28 25
     public static final long EXPIRE_TIME = 30 * 60 * 24;
29 26
 
30 27
     // 私钥
31
-    static final JWTSigner signer = JWTSignerUtil.hs512("Yansen is so handsome. He is a good man. Everyone like him !!!".getBytes());
28
+    static final byte[] key = "Yansen is so handsome. He is a good man. Everyone like him !!!".getBytes();
32 29
 
33 30
     // 请求头
34 31
     public static final String AUTH_HEADER = "X-Authorization-JWT";
@@ -47,7 +44,8 @@ public class JWTUtils {
47 44
                 .setIssuedAt(iat)
48 45
                 .setExpiresAt(exp)
49 46
                 .addPayloads(claims)
50
-                .sign(signer);
47
+                .setKey(key)
48
+                .sign();
51 49
     }
52 50
 
53 51
     public static JSONObject decode(String token) throws Exception {
@@ -60,10 +58,10 @@ public class JWTUtils {
60 58
 
61 59
             Object obj = jwt.getPayload("iat");
62 60
             if (null != obj) {
63
-                Date dt = (Date) obj;
61
+                Integer iat = (Integer) obj;
64 62
                 long currentTime = System.currentTimeMillis() / 1000;
65 63
                 int oneMinute = 60;
66
-                if (currentTime - dt.getTime() < oneMinute) {
64
+                if (currentTime - iat < oneMinute) {
67 65
                     return token;
68 66
                 }
69 67
             }
@@ -73,9 +71,10 @@ public class JWTUtils {
73 71
             Date exp = datePair[1];
74 72
             jwt.setIssuedAt(iat).setExpiresAt(exp);
75 73
 
76
-            return jwt.sign(signer);
74
+            return jwt.sign();
77 75
         } catch (Exception e) {
78
-            log.error("解析 JWT Token 失败: {}", e.getMessage());
76
+            e.printStackTrace();
77
+            log.error("刷新 JWT Token 失败: {}", e.getMessage());
79 78
         }
80 79
         return null;
81 80
     }
@@ -92,7 +91,10 @@ public class JWTUtils {
92 91
     }
93 92
 
94 93
     public static void verify(String token) throws Exception {
95
-        JWTValidator.of(token).validateAlgorithm(signer);
94
+        boolean isOk = JWTUtil.verify(token, key);
95
+        if (!isOk) {
96
+            throw new Exception("JWT TOKEN 校验失败");
97
+        }
96 98
     }
97 99
 
98 100
     private static Date[] getDatePair() {

+ 85
- 38
src/main/java/com/yunzhi/training/controller/LoginController.java Просмотреть файл

@@ -1,20 +1,27 @@
1 1
 package com.yunzhi.training.controller;
2 2
 
3
+import cn.hutool.json.JSONUtil;
3 4
 import com.yunzhi.training.common.*;
4 5
 import com.yunzhi.training.entity.SysUser;
6
+import com.yunzhi.training.entity.TaPerson;
7
+import com.yunzhi.training.entity.TaStudent;
5 8
 import com.yunzhi.training.service.ISysUserService;
6 9
 import com.yunzhi.training.service.ITaPersonService;
10
+import com.yunzhi.training.service.ITaStudentService;
7 11
 import com.yunzhi.training.vo.ChangePassword;
8 12
 import com.yunzhi.training.vo.AdminLoginParam;
9
-import com.yunzhi.training.vo.LoginParam;
10 13
 import com.yunzhi.training.vo.TokenParam;
11 14
 import io.swagger.annotations.Api;
12 15
 import io.swagger.annotations.ApiOperation;
13 16
 import io.swagger.annotations.ApiParam;
14 17
 import org.springframework.beans.factory.annotation.Autowired;
18
+import org.springframework.beans.factory.annotation.Value;
19
+import org.springframework.http.*;
15 20
 import org.springframework.web.bind.annotation.*;
21
+import org.springframework.web.client.RestTemplate;
16 22
 
17 23
 import javax.servlet.http.HttpServletRequest;
24
+import java.util.Arrays;
18 25
 import java.util.HashMap;
19 26
 import java.util.Map;
20 27
 
@@ -31,6 +38,12 @@ public class LoginController extends BaseController {
31 38
     @Autowired
32 39
     ITaPersonService iTaPersonService;
33 40
 
41
+    @Autowired
42
+    ITaStudentService iTaStudentService;
43
+
44
+    @Value("${yz.mp.openidAPI}")
45
+    String openidAPI;
46
+
34 47
     @PostMapping("/admin/login")
35 48
     @ApiOperation(value="登录", notes = "登录", httpMethod = "POST", response = ResponseBean.class)
36 49
     public ResponseBean login(@ApiParam("登录参数") @RequestBody AdminLoginParam loginParam) throws Exception {
@@ -65,7 +78,6 @@ public class LoginController extends BaseController {
65 78
 
66 79
         Map<String, Object> tokenMap = tokenParam.toMap();
67 80
         String token = JWTUtils.encode(tokenMap);
68
-//        CurrentContext.setTokenParam(tokenMap);
69 81
 
70 82
         Map<String, Object> res = new HashMap<String, Object>() {{
71 83
             put("user", sysUser);
@@ -95,43 +107,78 @@ public class LoginController extends BaseController {
95 107
         return ResponseBean.success("密码修改成功");
96 108
     }
97 109
 
110
+    @ApiParam("客户端登录")
111
+    @PostMapping("/wx/login")
112
+    public ResponseBean clientLogin(@ApiParam("code") @RequestParam String code) throws Exception {
113
+        if (StringUtils.isEmpty(code)) {
114
+            return ResponseBean.error("登录参数不存在", ResponseBean.ERROR_ILLEGAL_PARAMS);
115
+        }
98 116
 
99
-//    @ApiParam("客户端登录")
100
-//    @PostMapping("/{appid}/login")
101
-//    public ResponseBean clientLogin(@ApiParam("APPID") @PathVariable String appid,
102
-//                                    @ApiParam("登录参数") @RequestBody LoginParam loginParam) throws Exception {
103
-//        if (null == loginParam) {
104
-//            return ResponseBean.error("登录参数不存在", ResponseBean.ERROR_ILLEGAL_PARAMS);
105
-//        }
106
-//
107
-//        if (StringUtils.isEmpty(loginParam.getName())
108
-//            || StringUtils.isEmpty(loginParam.getPhone())
109
-//            || StringUtils.isEmpty(loginParam.getCaptcha())) {
110
-//            return ResponseBean.error("登录参数不合法", ResponseBean.ERROR_ILLEGAL_PARAMS);
111
-//        }
112
-//
113
-//        boolean isCapatchRight = smsCaptcha.validate(loginParam.getPhone(), loginParam.getCaptcha());
114
-//        if (!isCapatchRight) {
115
-//            return ResponseBean.error("验证码不正确", ResponseBean.ERROR_ILLEGAL_PARAMS);
116
-//        }
117
-//
118
-//        TaPerson taPerson = iTaPersonService.getByPhone(loginParam.getPhone());
119
-//        if (null != taPerson) {
120
-//           return ResponseBean.success(taPerson);
121
-//        }
122
-//
123
-//        taPerson = new TaPerson();
124
-//        taPerson.setNickName(loginParam.getName());
125
-//        taPerson.setPhone(loginParam.getPhone());
126
-//        if (iTaPersonService.save(taPerson)) {
127
-//            Map<String, Object> result = new HashMap<>();
128
-//            result.put("person", taPerson);
129
-//
130
-//            return ResponseBean.success(taPerson);
131
-//        } else {
132
-//            return ResponseBean.error("登录失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
133
-//        }
134
-//    }
117
+        // restTemplate 用来发送请求
118
+        RestTemplate restTemplate = new RestTemplate();
119
+        HttpHeaders headers = new HttpHeaders();
120
+        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
121
+        HttpEntity<String> entity = new HttpEntity<String>(headers);
122
+        ResponseEntity<String> resp = restTemplate.exchange(String.format(openidAPI, code), HttpMethod.GET, entity, String.class);
123
+
124
+        String body = resp.getBody();
125
+        if (StringUtils.isEmpty(body)) {
126
+            return ResponseBean.error("登录系统失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
127
+        }
128
+
129
+        ResponseBean result = JSONUtil.toBean(body, ResponseBean.class);
130
+        if (result.getCode() != ResponseBean.CODE_SUCCESS) {
131
+            return result;
132
+        }
133
+
134
+        String openID = (String) result.getData();
135
+
136
+        TaPerson taPerson = iTaPersonService.getByOpenID(openID);
137
+        if (null == taPerson) {
138
+            taPerson = new TaPerson();
139
+            taPerson.setOpenid(openID);
140
+            taPerson.setState(Constants.STATUS_NORMAL);
141
+            if (!iTaPersonService.save(taPerson)) {
142
+                return ResponseBean.error("登录系统失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
143
+            }
144
+        } else {
145
+            if (Constants.STATUS_NORMAL != taPerson.getState()) {
146
+                return ResponseBean.error("您的账户异常, 请联系管理人员", ResponseBean.ERROR_UNAVAILABLE);
147
+            }
148
+        }
149
+
150
+        // 先找关联学生
151
+        TaStudent taStudent = iTaStudentService.getExistBy("person_id", taPerson.getPersonId(), false, true);
152
+        if (taStudent == null) {
153
+            // 未找到再依据手机号查找
154
+            if (!StringUtils.isEmpty(taPerson.getPhone())) {
155
+                taStudent = iTaStudentService.getExistBy("phone", taPerson.getPhone(), false, true);
156
+                if (taStudent != null && StringUtils.isEmpty(taStudent.getPersonId())) {
157
+                    taStudent.setPersonId(taPerson.getPersonId());
158
+                    try {
159
+                        iTaStudentService.updateById(taStudent);
160
+                    } catch (Exception e) {
161
+                        e.printStackTrace();
162
+                    }
163
+                }
164
+            }
165
+        }
166
+
167
+        // 生成 token
168
+        TokenParam tokenParam = new TokenParam()
169
+                .setUserId(taPerson.getPersonId())
170
+                .setOrgId("0");
171
+
172
+        Map<String, Object> tokenMap = tokenParam.toMap();
173
+        String token = JWTUtils.encode(tokenMap);
174
+
175
+        Map<String, Object> res = new HashMap<>();
176
+        res.put("person", taPerson);
177
+        res.put("student", taStudent);
178
+        res.put("token", token);
179
+
180
+        return ResponseBean.success(res);
181
+    }
135 182
 
136 183
 //    @PutMapping("/admin/reset-password/{userId}")
137 184
 //    @ApiOperation(value="重置密码", notes = "重置密码", httpMethod = "PUT", response = ResponseBean.class)

+ 1
- 1
src/main/java/com/yunzhi/training/controller/TaAnswerController.java Просмотреть файл

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32 32
 @Api(tags = "问题答案")

+ 1
- 1
src/main/java/com/yunzhi/training/controller/TaAttachmentController.java Просмотреть файл

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32 32
 @Api(tags = "附件表")

+ 145
- 0
src/main/java/com/yunzhi/training/controller/TaBannerController.java Просмотреть файл

@@ -0,0 +1,145 @@
1
+package com.yunzhi.training.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.yunzhi.training.common.BaseController;
7
+import com.yunzhi.training.common.Constants;
8
+import com.yunzhi.training.common.ResponseBean;
9
+import com.yunzhi.training.common.StringUtils;
10
+import io.swagger.annotations.Api;
11
+import io.swagger.annotations.ApiOperation;
12
+import io.swagger.annotations.ApiParam;
13
+import org.slf4j.Logger;
14
+import org.slf4j.LoggerFactory;
15
+import org.springframework.beans.factory.annotation.Autowired;
16
+import org.springframework.web.bind.annotation.PathVariable;
17
+import org.springframework.web.bind.annotation.RequestBody;
18
+import org.springframework.web.bind.annotation.RequestMapping;
19
+import org.springframework.web.bind.annotation.RequestMethod;
20
+import org.springframework.web.bind.annotation.RequestParam;
21
+import com.yunzhi.training.service.ITaBannerService;
22
+import com.yunzhi.training.entity.TaBanner;
23
+import org.springframework.web.bind.annotation.RestController;
24
+
25
+/**
26
+ * <p>
27
+    * Banner表 前端控制器
28
+    * </p>
29
+ *
30
+ * @author yansen
31
+ * @since 2022-02-21
32
+ */
33
+
34
+@Api(tags = "Banner表")
35
+@RestController
36
+@RequestMapping("/")
37
+public class TaBannerController extends BaseController {
38
+
39
+    private final Logger logger = LoggerFactory.getLogger(TaBannerController.class);
40
+
41
+    @Autowired
42
+    public ITaBannerService iTaBannerService;
43
+
44
+
45
+    /**
46
+     * 分页查询列表
47
+     * @param pageNum
48
+     * @param pageSize
49
+     * @return
50
+     */
51
+    @RequestMapping(value="/{client}/banner",method= RequestMethod.GET)
52
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
53
+    public ResponseBean taBannerList(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
54
+                                     @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
55
+									 @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
56
+                                     @ApiParam("位置") @RequestParam(value ="position", required = false) String position) throws Exception{
57
+
58
+        if (!"admin".equals(client) && !"wx".equals(client)) {
59
+            return ResponseBean.error("不支持的请求", ResponseBean.ERROR_ILLEGAL_PARAMS);
60
+        }
61
+
62
+        IPage<TaBanner> pg = new Page<>(pageNum, pageSize);
63
+        QueryWrapper<TaBanner> queryWrapper = new QueryWrapper<>();
64
+        queryWrapper.gt("admin".equals(client), "state", Constants.STATUS_DELETED);
65
+        queryWrapper.eq("wx".equals(client), "state", Constants.STATUS_NORMAL);
66
+        queryWrapper.eq(!StringUtils.isEmpty(position), "position", position);
67
+        queryWrapper.orderByDesc("sort_no");
68
+
69
+        IPage<TaBanner> result = iTaBannerService.page(pg, queryWrapper);
70
+        return ResponseBean.success(result);
71
+    }
72
+
73
+    /**
74
+     * 保存对象
75
+     * @param taBanner 实体对象
76
+     * @return
77
+     */
78
+    @RequestMapping(value="/admin/banner",method= RequestMethod.POST)
79
+    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
80
+    public ResponseBean taBannerAdd(@ApiParam("保存内容") @RequestBody TaBanner taBanner) throws Exception{
81
+
82
+//        if (StringUtils.isEmpty(taBanner.getCourseId())) {
83
+//            return ResponseBean.error("请设置关联课程", ResponseBean.ERROR_ILLEGAL_PARAMS);
84
+//        }
85
+
86
+        if (StringUtils.isEmpty(taBanner.getTitle())) {
87
+            return ResponseBean.error("Banner 名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
88
+        }
89
+
90
+        taBanner.setBannerId(null);
91
+
92
+        if (iTaBannerService.save(taBanner)){
93
+            return ResponseBean.success(taBanner);
94
+        }else {
95
+            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
96
+        }
97
+    }
98
+
99
+    /**
100
+     * 根据id删除对象
101
+     * @param id  实体ID
102
+     */
103
+    @RequestMapping(value="/admin/banner/{id}", method= RequestMethod.DELETE)
104
+    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
105
+    public ResponseBean taBannerDelete(@ApiParam("对象ID") @PathVariable String id) throws Exception{
106
+        if(iTaBannerService.removeLogicById(id)){
107
+            return ResponseBean.success("success");
108
+        }else {
109
+            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
110
+        }
111
+    }
112
+
113
+    /**
114
+     * 修改对象
115
+     * @param id  实体ID
116
+     * @param taBanner 实体对象
117
+     * @return
118
+     */
119
+    @RequestMapping(value="/admin/banner/{id}",method= RequestMethod.PUT)
120
+    @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
121
+    public ResponseBean taBannerUpdate(@ApiParam("对象ID") @PathVariable String id,
122
+                                        @ApiParam("更新内容") @RequestBody TaBanner taBanner) throws Exception{
123
+
124
+        taBanner.setBannerId(id);
125
+        if (StringUtils.isEmpty(taBanner.getTitle())) {
126
+            return ResponseBean.error("Banner 名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
127
+        }
128
+
129
+        if (iTaBannerService.updateById(taBanner)){
130
+            return ResponseBean.success(iTaBannerService.getById(id));
131
+        }else {
132
+            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
133
+        }
134
+    }
135
+
136
+    /**
137
+     * 根据id查询对象
138
+     * @param id  实体ID
139
+     */
140
+    @RequestMapping(value="/admin/banner/{id}",method= RequestMethod.GET)
141
+    @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
142
+    public ResponseBean taBannerGet(@ApiParam("对象ID") @PathVariable String id) throws Exception{
143
+        return ResponseBean.success(iTaBannerService.getExistBy("banner_id", id, false, true));
144
+    }
145
+}

+ 157
- 0
src/main/java/com/yunzhi/training/controller/TaCourseController.java Просмотреть файл

@@ -0,0 +1,157 @@
1
+package com.yunzhi.training.controller;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
+import com.yunzhi.training.common.*;
6
+import io.swagger.annotations.Api;
7
+import io.swagger.annotations.ApiOperation;
8
+import io.swagger.annotations.ApiParam;
9
+import org.slf4j.Logger;
10
+import org.slf4j.LoggerFactory;
11
+import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.web.bind.annotation.PathVariable;
13
+import org.springframework.web.bind.annotation.RequestBody;
14
+import org.springframework.web.bind.annotation.RequestMapping;
15
+import org.springframework.web.bind.annotation.RequestMethod;
16
+import org.springframework.web.bind.annotation.RequestParam;
17
+import com.yunzhi.training.service.ITaCourseService;
18
+import com.yunzhi.training.entity.TaCourse;
19
+import org.springframework.web.bind.annotation.RestController;
20
+
21
+import java.time.LocalDateTime;
22
+
23
+/**
24
+ * <p>
25
+    * 课程表 前端控制器
26
+    * </p>
27
+ *
28
+ * @author yansen
29
+ * @since 2022-02-21
30
+ */
31
+
32
+@Api(tags = "课程表")
33
+@RestController
34
+@RequestMapping("/")
35
+public class TaCourseController extends BaseController {
36
+
37
+    private final Logger logger = LoggerFactory.getLogger(TaCourseController.class);
38
+
39
+    @Autowired
40
+    public ITaCourseService iTaCourseService;
41
+
42
+
43
+    /**
44
+     * 分页查询列表
45
+     * @param pageNum
46
+     * @param pageSize
47
+     * @return
48
+     */
49
+    @RequestMapping(value="/{client}/course",method= RequestMethod.GET)
50
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
51
+    public ResponseBean taCourseList(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
52
+                                     @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
53
+									 @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
54
+                                     @ApiParam("名称") @RequestParam(value ="title", required = false) String title,
55
+                                     @ApiParam(value = "开始时间", example = "2022-02-21") @RequestParam(value ="startDate", required = false) String startDate,
56
+                                     @ApiParam(value = "结束时间", example = "2022-02-28") @RequestParam(value ="endDate", required = false) String endDate) throws Exception{
57
+        LocalDateTime start = null;
58
+        LocalDateTime end = null;
59
+        if ((StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) || (!StringUtils.isEmpty(startDate) && StringUtils.isEmpty(endDate))) {
60
+            return ResponseBean.error("请选择完整的开始结束时间", ResponseBean.ERROR_ILLEGAL_PARAMS);
61
+        }
62
+
63
+        IPage<TaCourse> pg = new Page<>(pageNum, pageSize);
64
+
65
+        if (!StringUtils.isEmpty(startDate)) {
66
+            start = DateUtils.from(startDate + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
67
+            end = DateUtils.from(endDate + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
68
+        }
69
+
70
+        IPage<TaCourse> result = iTaCourseService.getPagedBy(pg, client, title, start, end);
71
+        return ResponseBean.success(result);
72
+    }
73
+
74
+    /**
75
+     * 保存对象
76
+     * @param taCourse 实体对象
77
+     * @return
78
+     */
79
+    @RequestMapping(value="/admin/course",method= RequestMethod.POST)
80
+    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
81
+    public ResponseBean taCourseAdd(@ApiParam("保存内容") @RequestBody TaCourse taCourse) throws Exception{
82
+
83
+        if (StringUtils.isEmpty(taCourse.getTitle())) {
84
+            return ResponseBean.error("课程名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
85
+        }
86
+
87
+        int cnt = iTaCourseService.countBy("title", taCourse.getTitle(), true);
88
+        if (cnt > 0) {
89
+            return ResponseBean.error("课程名称重复", ResponseBean.ERROR_ILLEGAL_PARAMS);
90
+        }
91
+
92
+        taCourse.setCourseId(null);
93
+
94
+        if (iTaCourseService.save(taCourse)){
95
+            return ResponseBean.success(taCourse);
96
+        } else {
97
+            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
98
+        }
99
+    }
100
+
101
+    /**
102
+     * 根据id删除对象
103
+     * @param id  实体ID
104
+     */
105
+    @RequestMapping(value="/admin/course/{id}", method= RequestMethod.DELETE)
106
+    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
107
+    public ResponseBean taCourseDelete(@ApiParam("对象ID") @PathVariable String id) throws Exception{
108
+        if(iTaCourseService.removeLogicById(id)){
109
+            return ResponseBean.success("success");
110
+        }else {
111
+            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
112
+        }
113
+    }
114
+
115
+    /**
116
+     * 修改对象
117
+     * @param id  实体ID
118
+     * @param taCourse 实体对象
119
+     * @return
120
+     */
121
+    @RequestMapping(value="/admin/course/{id}",method= RequestMethod.PUT)
122
+    @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
123
+    public ResponseBean taCourseUpdate(@ApiParam("对象ID") @PathVariable String id,
124
+                                        @ApiParam("更新内容") @RequestBody TaCourse taCourse) throws Exception{
125
+
126
+        if (StringUtils.isEmpty(taCourse.getTitle())) {
127
+            return ResponseBean.error("课程名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
128
+        }
129
+
130
+        TaCourse origin = iTaCourseService.getById(id);
131
+        if (null == origin || Constants.STATUS_DELETED == origin.getState()) {
132
+            return ResponseBean.error("更新失败, 未找到有效资源", ResponseBean.ERROR_ILLEGAL_PARAMS);
133
+        }
134
+
135
+        TaCourse exist = iTaCourseService.getByButNot("title", taCourse.getTitle(), "course_id", id, true);
136
+        if (exist != null) {
137
+            return ResponseBean.error("课程称重复", ResponseBean.ERROR_ILLEGAL_PARAMS);
138
+        }
139
+
140
+        if (iTaCourseService.updateById(taCourse)){
141
+            return ResponseBean.success(iTaCourseService.getById(id));
142
+        }else {
143
+            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
144
+        }
145
+    }
146
+
147
+    /**
148
+     * 根据id查询对象
149
+     * @param id  实体ID
150
+     */
151
+    @RequestMapping(value="/{client}/course/{id}",method= RequestMethod.GET)
152
+    @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
153
+    public ResponseBean taCourseGet(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
154
+                                    @ApiParam("对象ID") @PathVariable String id) throws Exception{
155
+        return ResponseBean.success(iTaCourseService.getExistBy("course_id", id, "wx".equals(client), true));
156
+    }
157
+}

+ 114
- 40
src/main/java/com/yunzhi/training/controller/TaPersonController.java Просмотреть файл

@@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.yunzhi.training.common.BaseController;
7 7
 import com.yunzhi.training.common.ResponseBean;
8
+import com.yunzhi.training.common.SMSCaptcha;
9
+import com.yunzhi.training.common.StringUtils;
10
+import com.yunzhi.training.entity.TaStudent;
11
+import com.yunzhi.training.service.ITaStudentService;
8 12
 import io.swagger.annotations.Api;
9 13
 import io.swagger.annotations.ApiOperation;
10 14
 import io.swagger.annotations.ApiParam;
@@ -20,13 +24,15 @@ import com.yunzhi.training.service.ITaPersonService;
20 24
 import com.yunzhi.training.entity.TaPerson;
21 25
 import org.springframework.web.bind.annotation.RestController;
22 26
 
27
+import javax.servlet.http.HttpServletRequest;
28
+
23 29
 /**
24 30
  * <p>
25 31
     * 人员表 前端控制器
26 32
     * </p>
27 33
  *
28 34
  * @author yansen
29
- * @since 2022-02-18
35
+ * @since 2022-02-21
30 36
  */
31 37
 
32 38
 @Api(tags = "人员表")
@@ -39,6 +45,11 @@ public class TaPersonController extends BaseController {
39 45
     @Autowired
40 46
     public ITaPersonService iTaPersonService;
41 47
 
48
+    @Autowired
49
+    public ITaStudentService iTaStudentService;
50
+
51
+    @Autowired
52
+    public SMSCaptcha smsCaptcha;
42 53
 
43 54
     /**
44 55
      * 分页查询列表
@@ -51,43 +62,43 @@ public class TaPersonController extends BaseController {
51 62
     public ResponseBean taPersonList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52 63
 									 @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception{
53 64
 
54
-		    IPage<TaPerson> pg = new Page<>(pageNum, pageSize);
55
-            QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
56
-            queryWrapper.orderByDesc("create_date");
65
+        IPage<TaPerson> pg = new Page<>(pageNum, pageSize);
66
+        QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
67
+        queryWrapper.orderByDesc("create_date");
57 68
 
58
-            IPage<TaPerson> result = iTaPersonService.page(pg, queryWrapper);
59
-            return ResponseBean.success(result);
69
+        IPage<TaPerson> result = iTaPersonService.page(pg, queryWrapper);
70
+        return ResponseBean.success(result);
60 71
     }
61 72
 
62
-    /**
63
-     * 保存对象
64
-     * @param taPerson 实体对象
65
-     * @return
66
-     */
67
-    @RequestMapping(value="/taPerson",method= RequestMethod.POST)
68
-    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
69
-    public ResponseBean taPersonAdd(@ApiParam("保存内容") @RequestBody TaPerson taPerson) throws Exception{
73
+//    /**
74
+//     * 保存对象
75
+//     * @param taPerson 实体对象
76
+//     * @return
77
+//     */
78
+//    @RequestMapping(value="/wx/person",method= RequestMethod.POST)
79
+//    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
80
+//    public ResponseBean taPersonAdd(@ApiParam("保存内容") @RequestBody TaPerson taPerson) throws Exception{
81
+//
82
+//        if (iTaPersonService.save(taPerson)){
83
+//            return ResponseBean.success(taPerson);
84
+//        }else {
85
+//            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
86
+//        }
87
+//    }
70 88
 
71
-        if (iTaPersonService.save(taPerson)){
72
-            return ResponseBean.success(taPerson);
73
-        }else {
74
-            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
75
-        }
76
-    }
77
-
78
-    /**
79
-     * 根据id删除对象
80
-     * @param id  实体ID
81
-     */
82
-    @RequestMapping(value="/taPerson/{id}", method= RequestMethod.DELETE)
83
-    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
84
-    public ResponseBean taPersonDelete(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
85
-        if(iTaPersonService.removeById(id)){
86
-            return ResponseBean.success("success");
87
-        }else {
88
-            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
89
-        }
90
-    }
89
+//    /**
90
+//     * 根据id删除对象
91
+//     * @param id  实体ID
92
+//     */
93
+//    @RequestMapping(value="/taPerson/{id}", method= RequestMethod.DELETE)
94
+//    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
95
+//    public ResponseBean taPersonDelete(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
96
+//        if(iTaPersonService.removeById(id)){
97
+//            return ResponseBean.success("success");
98
+//        }else {
99
+//            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
100
+//        }
101
+//    }
91 102
 
92 103
     /**
93 104
      * 修改对象
@@ -95,11 +106,62 @@ public class TaPersonController extends BaseController {
95 106
      * @param taPerson 实体对象
96 107
      * @return
97 108
      */
98
-    @RequestMapping(value="/taPerson/{id}",method= RequestMethod.PUT)
109
+    @RequestMapping(value="/wx/person/{id}",method= RequestMethod.PUT)
99 110
     @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
100
-    public ResponseBean taPersonUpdate(@ApiParam("对象ID") @PathVariable Integer id,
111
+    public ResponseBean taPersonUpdate(@ApiParam("对象ID") @PathVariable String id,
101 112
                                         @ApiParam("更新内容") @RequestBody TaPerson taPerson) throws Exception{
102 113
 
114
+        if (StringUtils.isEmpty(taPerson.getPhone())) {
115
+            return ResponseBean.error("手机号不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
116
+        }
117
+
118
+
119
+
120
+        if ((!StringUtils.isEmpty(taPerson.getTermId()) && StringUtils.isEmpty(taPerson.getClassId()))
121
+            || (StringUtils.isEmpty(taPerson.getTermId()) && !StringUtils.isEmpty(taPerson.getClassId()))) {
122
+            return ResponseBean.error("请正确的设置学期与班级", ResponseBean.ERROR_ILLEGAL_PARAMS);
123
+        }
124
+
125
+        if (!StringUtils.isEmpty(taPerson.getTermId())) {
126
+            taPerson.setPersonType("student");
127
+        } else {
128
+            taPerson.setPersonType("");
129
+        }
130
+
131
+        // 找对应的学生信息
132
+        TaStudent taStudent = getStudent(taPerson);
133
+        if (taStudent != null && StringUtils.isEmpty(taStudent.getPersonId())) {
134
+            // 映射信息
135
+            taStudent.setPersonId(taPerson.getPersonId());
136
+            taStudent.setName(taPerson.getName());
137
+            taStudent.setPhone(taPerson.getPhone());
138
+
139
+            if (!StringUtils.isEmpty(taPerson.getTermId())) {
140
+                taStudent.setTermId(taPerson.getTermId());
141
+                taStudent.setClassId(taPerson.getClassId());
142
+            }
143
+
144
+            try {
145
+                iTaStudentService.updateById(taStudent);
146
+            } catch (Exception e) {
147
+                e.printStackTrace();
148
+            }
149
+        }
150
+
151
+        // 如果没有映射学生, 但是当前人员是学生身份, 则建立关系
152
+        if (taStudent == null && !StringUtils.isEmpty(taPerson.getTermId())) {
153
+            taStudent = new TaStudent();
154
+            taStudent.setPersonId(taPerson.getPersonId());
155
+            taStudent.setName(taPerson.getName());
156
+            taStudent.setPhone(taPerson.getPhone());
157
+            taStudent.setTermId(taPerson.getTermId());
158
+            taStudent.setClassId(taPerson.getClassId());
159
+
160
+            if (!iTaStudentService.save(taStudent)) {
161
+                return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
162
+            }
163
+        }
164
+
103 165
         if (iTaPersonService.updateById(taPerson)){
104 166
             return ResponseBean.success(iTaPersonService.getById(id));
105 167
         }else {
@@ -109,11 +171,23 @@ public class TaPersonController extends BaseController {
109 171
 
110 172
     /**
111 173
      * 根据id查询对象
112
-     * @param id  实体ID
113 174
      */
114
-    @RequestMapping(value="/taPerson/{id}",method= RequestMethod.GET)
175
+    @RequestMapping(value="/wx/person/current",method= RequestMethod.GET)
115 176
     @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
116
-    public ResponseBean taPersonGet(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
117
-        return ResponseBean.success(iTaPersonService.getById(id));
177
+    public ResponseBean taPersonGet(HttpServletRequest request) throws Exception{
178
+        return ResponseBean.success(getCurrentPerson(request));
179
+    }
180
+
181
+    public TaStudent getStudent(TaPerson taPerson) {
182
+        // 先找关联学生
183
+        TaStudent taStudent = iTaStudentService.getExistBy("person_id", taPerson.getPersonId(), false, true);
184
+        if (taStudent == null) {
185
+            // 未找到再依据手机号查找
186
+            if (!StringUtils.isEmpty(taPerson.getPhone())) {
187
+                taStudent = iTaStudentService.getExistBy("phone", taPerson.getPhone(), false, true);
188
+            }
189
+        }
190
+
191
+        return taStudent;
118 192
     }
119 193
 }

+ 1
- 1
src/main/java/com/yunzhi/training/controller/TaQuePersonController.java Просмотреть файл

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32 32
 @Api(tags = "问卷参与人")

+ 1
- 1
src/main/java/com/yunzhi/training/controller/TaQuestionController.java Просмотреть файл

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32 32
 @Api(tags = "问卷问题")

+ 1
- 1
src/main/java/com/yunzhi/training/controller/TaQuestionPersonController.java Просмотреть файл

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32 32
 @Api(tags = "答卷明细")

+ 1
- 1
src/main/java/com/yunzhi/training/controller/TaQuestionnaireController.java Просмотреть файл

@@ -26,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32 32
 @Api(tags = "问卷调查")

+ 169
- 0
src/main/java/com/yunzhi/training/controller/TaSchoolClassController.java Просмотреть файл

@@ -0,0 +1,169 @@
1
+package com.yunzhi.training.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.yunzhi.training.common.BaseController;
7
+import com.yunzhi.training.common.Constants;
8
+import com.yunzhi.training.common.ResponseBean;
9
+import com.yunzhi.training.common.StringUtils;
10
+import io.swagger.annotations.Api;
11
+import io.swagger.annotations.ApiOperation;
12
+import io.swagger.annotations.ApiParam;
13
+import org.slf4j.Logger;
14
+import org.slf4j.LoggerFactory;
15
+import org.springframework.beans.factory.annotation.Autowired;
16
+import org.springframework.web.bind.annotation.PathVariable;
17
+import org.springframework.web.bind.annotation.RequestBody;
18
+import org.springframework.web.bind.annotation.RequestMapping;
19
+import org.springframework.web.bind.annotation.RequestMethod;
20
+import org.springframework.web.bind.annotation.RequestParam;
21
+import com.yunzhi.training.service.ITaSchoolClassService;
22
+import com.yunzhi.training.entity.TaSchoolClass;
23
+import org.springframework.web.bind.annotation.RestController;
24
+
25
+import java.time.LocalDateTime;
26
+
27
+/**
28
+ * <p>
29
+    * 班级 前端控制器
30
+    * </p>
31
+ *
32
+ * @author yansen
33
+ * @since 2022-02-21
34
+ */
35
+
36
+@Api(tags = "班级")
37
+@RestController
38
+@RequestMapping("/")
39
+public class TaSchoolClassController extends BaseController {
40
+
41
+    private final Logger logger = LoggerFactory.getLogger(TaSchoolClassController.class);
42
+
43
+    @Autowired
44
+    public ITaSchoolClassService iTaSchoolClassService;
45
+
46
+
47
+    /**
48
+     * 分页查询列表
49
+     * @param pageNum
50
+     * @param pageSize
51
+     * @return
52
+     */
53
+    @RequestMapping(value="/{client}/school-class",method= RequestMethod.GET)
54
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
55
+    public ResponseBean taSchoolClassList(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
56
+                                          @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
57
+                                          @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
58
+                                          @ApiParam("所属学期") @RequestParam(value ="termId", required = false) String termId,
59
+                                          @ApiParam("名称") @RequestParam(value ="name", required = false) String name) throws Exception{
60
+
61
+        IPage<TaSchoolClass> pg = new Page<>(pageNum, pageSize);
62
+        QueryWrapper<TaSchoolClass> queryWrapper = new QueryWrapper<>();
63
+        queryWrapper.eq(!StringUtils.isEmpty(termId), "term_id", termId);
64
+        queryWrapper.like(!StringUtils.isEmpty(name), "name", "%"+name+"%");
65
+        queryWrapper.gt("admin".equals(client), "state", Constants.STATUS_DELETED);
66
+        queryWrapper.eq("wx".equals(client), "state", Constants.STATUS_NORMAL);
67
+        queryWrapper.orderByDesc("create_date");
68
+
69
+        IPage<TaSchoolClass> result = iTaSchoolClassService.getPageBy(pg, termId, name, client);
70
+        return ResponseBean.success(result);
71
+    }
72
+
73
+    /**
74
+     * 保存对象
75
+     * @param taSchoolClass 实体对象
76
+     * @return
77
+     */
78
+    @RequestMapping(value="/admin/school-class",method= RequestMethod.POST)
79
+    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
80
+    public ResponseBean taSchoolClassAdd(@ApiParam("保存内容") @RequestBody TaSchoolClass taSchoolClass) throws Exception{
81
+
82
+        if (StringUtils.isEmpty(taSchoolClass.getTermId())) {
83
+            return ResponseBean.error("请设置班级所属学期", ResponseBean.ERROR_ILLEGAL_PARAMS);
84
+        }
85
+
86
+        if (StringUtils.isEmpty(taSchoolClass.getName())) {
87
+            return ResponseBean.error("班级名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
88
+        }
89
+
90
+        int cnt = iTaSchoolClassService.countName(taSchoolClass.getTermId(), taSchoolClass.getName());
91
+        if (cnt > 0) {
92
+            return ResponseBean.error("班级名称重复", ResponseBean.ERROR_ILLEGAL_PARAMS);
93
+        }
94
+
95
+        taSchoolClass.setClassId(null);
96
+        taSchoolClass.setCreateDate(LocalDateTime.now());
97
+
98
+        if (iTaSchoolClassService.save(taSchoolClass)){
99
+            return ResponseBean.success(taSchoolClass);
100
+        }else {
101
+            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
102
+        }
103
+    }
104
+
105
+    /**
106
+     * 根据id删除对象
107
+     * @param id  实体ID
108
+     */
109
+    @RequestMapping(value="/admin/school-class/{id}", method= RequestMethod.DELETE)
110
+    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
111
+    public ResponseBean taSchoolClassDelete(@ApiParam("对象ID") @PathVariable String id) throws Exception{
112
+        if(iTaSchoolClassService.removeLogicById(id)){
113
+            return ResponseBean.success("success");
114
+        }else {
115
+            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
116
+        }
117
+    }
118
+
119
+    /**
120
+     * 修改对象
121
+     * @param id  实体ID
122
+     * @param taSchoolClass 实体对象
123
+     * @return
124
+     */
125
+    @RequestMapping(value="/admin/school-class/{id}",method= RequestMethod.PUT)
126
+    @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
127
+    public ResponseBean taSchoolClassUpdate(@ApiParam("对象ID") @PathVariable String id,
128
+                                        @ApiParam("更新内容") @RequestBody TaSchoolClass taSchoolClass) throws Exception{
129
+        if (StringUtils.isEmpty(taSchoolClass.getTermId())) {
130
+            return ResponseBean.error("请设置班级所属学期", ResponseBean.ERROR_ILLEGAL_PARAMS);
131
+        }
132
+
133
+        if (StringUtils.isEmpty(taSchoolClass.getName())) {
134
+            return ResponseBean.error("班级名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
135
+        }
136
+
137
+        TaSchoolClass origin = iTaSchoolClassService.getById(id);
138
+        if (null == origin || Constants.STATUS_DELETED == origin.getState()) {
139
+            return ResponseBean.error("更新失败, 未找到有效资源", ResponseBean.ERROR_ILLEGAL_PARAMS);
140
+        }
141
+
142
+        taSchoolClass.setClassId(id);
143
+        boolean isOnly = iTaSchoolClassService.checkOnly(taSchoolClass);
144
+        if (!isOnly) {
145
+            return ResponseBean.error("班级名称重复", ResponseBean.ERROR_ILLEGAL_PARAMS);
146
+        }
147
+
148
+        origin.setName(taSchoolClass.getName());
149
+        origin.setTermId(taSchoolClass.getTermId());
150
+        origin.setState(taSchoolClass.getState());
151
+
152
+        if (iTaSchoolClassService.updateById(origin)){
153
+            return ResponseBean.success(origin);
154
+        }else {
155
+            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
156
+        }
157
+    }
158
+
159
+    /**
160
+     * 根据id查询对象
161
+     * @param id  实体ID
162
+     */
163
+    @RequestMapping(value="/{client}/school-class/{id}",method= RequestMethod.GET)
164
+    @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
165
+    public ResponseBean taSchoolClassGet(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
166
+                                         @ApiParam("对象ID") @PathVariable String id) throws Exception{
167
+        return ResponseBean.success(iTaSchoolClassService.getExistBy("class_id", id, "wx".equals(client), true));
168
+    }
169
+}

+ 162
- 0
src/main/java/com/yunzhi/training/controller/TaSchoolTermController.java Просмотреть файл

@@ -0,0 +1,162 @@
1
+package com.yunzhi.training.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.yunzhi.training.common.BaseController;
7
+import com.yunzhi.training.common.Constants;
8
+import com.yunzhi.training.common.ResponseBean;
9
+import com.yunzhi.training.common.StringUtils;
10
+import io.swagger.annotations.Api;
11
+import io.swagger.annotations.ApiOperation;
12
+import io.swagger.annotations.ApiParam;
13
+import org.slf4j.Logger;
14
+import org.slf4j.LoggerFactory;
15
+import org.springframework.beans.factory.annotation.Autowired;
16
+import org.springframework.web.bind.annotation.PathVariable;
17
+import org.springframework.web.bind.annotation.RequestBody;
18
+import org.springframework.web.bind.annotation.RequestMapping;
19
+import org.springframework.web.bind.annotation.RequestMethod;
20
+import org.springframework.web.bind.annotation.RequestParam;
21
+import com.yunzhi.training.service.ITaSchoolTermService;
22
+import com.yunzhi.training.entity.TaSchoolTerm;
23
+import org.springframework.web.bind.annotation.RestController;
24
+
25
+import java.time.LocalDateTime;
26
+
27
+/**
28
+ * <p>
29
+    * 学期 前端控制器
30
+    * </p>
31
+ *
32
+ * @author yansen
33
+ * @since 2022-02-21
34
+ */
35
+
36
+@Api(tags = "学期")
37
+@RestController
38
+@RequestMapping("/")
39
+public class TaSchoolTermController extends BaseController {
40
+
41
+    private final Logger logger = LoggerFactory.getLogger(TaSchoolTermController.class);
42
+
43
+    @Autowired
44
+    public ITaSchoolTermService iTaSchoolTermService;
45
+
46
+
47
+    /**
48
+     * 分页查询列表
49
+     * @param pageNum
50
+     * @param pageSize
51
+     * @return
52
+     */
53
+    @RequestMapping(value="/{client}/school-term",method= RequestMethod.GET)
54
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
55
+    public ResponseBean taSchoolTermList(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
56
+                                         @ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
57
+                                         @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
58
+                                         @ApiParam("名称") @RequestParam(value ="name", required = false) String name) throws Exception{
59
+
60
+        if (!"admin".equals(client) && !"wx".equals(client)) {
61
+            return ResponseBean.error("不支持的请求", ResponseBean.ERROR_ILLEGAL_PARAMS);
62
+        }
63
+
64
+        IPage<TaSchoolTerm> pg = new Page<>(pageNum, pageSize);
65
+        QueryWrapper<TaSchoolTerm> queryWrapper = new QueryWrapper<>();
66
+        queryWrapper.like(!StringUtils.isEmpty(name), "name", "%"+name+"%");
67
+        queryWrapper.gt("admin".equals(client), "state", Constants.STATUS_DELETED);
68
+        queryWrapper.eq("wx".equals(client), "state", Constants.STATUS_NORMAL);
69
+        queryWrapper.orderByDesc("create_date");
70
+
71
+        IPage<TaSchoolTerm> result = iTaSchoolTermService.page(pg, queryWrapper);
72
+        return ResponseBean.success(result);
73
+    }
74
+
75
+    /**
76
+     * 保存对象
77
+     * @param taSchoolTerm 实体对象
78
+     * @return
79
+     */
80
+    @RequestMapping(value="/admin/school-term",method= RequestMethod.POST)
81
+    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
82
+    public ResponseBean taSchoolTermAdd(@ApiParam("保存内容") @RequestBody TaSchoolTerm taSchoolTerm) throws Exception{
83
+
84
+        if (StringUtils.isEmpty(taSchoolTerm.getName())) {
85
+            return ResponseBean.error("学期名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
86
+        }
87
+
88
+        int cnt = iTaSchoolTermService.countBy("name", taSchoolTerm.getName(), true);
89
+        if (cnt > 0) {
90
+            return ResponseBean.error("学期名称重复", ResponseBean.ERROR_ILLEGAL_PARAMS);
91
+        }
92
+
93
+        taSchoolTerm.setTermId(null);
94
+        taSchoolTerm.setCreateDate(LocalDateTime.now());
95
+
96
+        if (iTaSchoolTermService.save(taSchoolTerm)){
97
+            return ResponseBean.success(taSchoolTerm);
98
+        }else {
99
+            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
100
+        }
101
+    }
102
+
103
+    /**
104
+     * 根据id删除对象
105
+     * @param id  实体ID
106
+     */
107
+    @RequestMapping(value="/admin/school-term/{id}", method= RequestMethod.DELETE)
108
+    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
109
+    public ResponseBean taSchoolTermDelete(@ApiParam("对象ID") @PathVariable String id) throws Exception{
110
+        if(iTaSchoolTermService.removeLogicById(id)){
111
+            return ResponseBean.success("success");
112
+        }else {
113
+            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
114
+        }
115
+    }
116
+
117
+    /**
118
+     * 修改对象
119
+     * @param id  实体ID
120
+     * @param taSchoolTerm 实体对象
121
+     * @return
122
+     */
123
+    @RequestMapping(value="/admin/school-term/{id}",method= RequestMethod.PUT)
124
+    @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
125
+    public ResponseBean taSchoolTermUpdate(@ApiParam("对象ID") @PathVariable String id,
126
+                                           @ApiParam("更新内容") @RequestBody TaSchoolTerm taSchoolTerm) throws Exception{
127
+
128
+        if (StringUtils.isEmpty(taSchoolTerm.getName())) {
129
+            return ResponseBean.error("学期名称不能为空", ResponseBean.ERROR_ILLEGAL_PARAMS);
130
+        }
131
+
132
+        TaSchoolTerm origin = iTaSchoolTermService.getById(id);
133
+        if (null == origin || Constants.STATUS_DELETED == origin.getState()) {
134
+            return ResponseBean.error("更新失败, 未找到有效资源", ResponseBean.ERROR_ILLEGAL_PARAMS);
135
+        }
136
+
137
+        TaSchoolTerm exist = iTaSchoolTermService.getByButNot("name", taSchoolTerm.getName(), "term_id", id, true);
138
+        if (exist != null) {
139
+            return ResponseBean.error("学期名称重复", ResponseBean.ERROR_ILLEGAL_PARAMS);
140
+        }
141
+
142
+        origin.setName(taSchoolTerm.getName());
143
+        origin.setState(taSchoolTerm.getState());
144
+
145
+        if (iTaSchoolTermService.updateById(origin)){
146
+            return ResponseBean.success(origin);
147
+        }else {
148
+            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
149
+        }
150
+    }
151
+
152
+    /**
153
+     * 根据id查询对象
154
+     * @param id  实体ID
155
+     */
156
+    @RequestMapping(value="/{client}/school-term/{id}",method= RequestMethod.GET)
157
+    @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
158
+    public ResponseBean taSchoolTermGet(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
159
+                                        @ApiParam("对象ID") @PathVariable String id) throws Exception{
160
+        return ResponseBean.success(iTaSchoolTermService.getExistBy("term_id", id, "wx".equals(client), true));
161
+    }
162
+}

+ 159
- 0
src/main/java/com/yunzhi/training/controller/TaSignInController.java Просмотреть файл

@@ -0,0 +1,159 @@
1
+package com.yunzhi.training.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.yunzhi.training.common.*;
7
+import io.swagger.annotations.Api;
8
+import io.swagger.annotations.ApiOperation;
9
+import io.swagger.annotations.ApiParam;
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.PathVariable;
14
+import org.springframework.web.bind.annotation.RequestBody;
15
+import org.springframework.web.bind.annotation.RequestMapping;
16
+import org.springframework.web.bind.annotation.RequestMethod;
17
+import org.springframework.web.bind.annotation.RequestParam;
18
+import com.yunzhi.training.service.ITaSignInService;
19
+import com.yunzhi.training.entity.TaSignIn;
20
+import org.springframework.web.bind.annotation.RestController;
21
+
22
+import java.time.LocalDateTime;
23
+
24
+/**
25
+ * <p>
26
+    * 签到主表 前端控制器
27
+    * </p>
28
+ *
29
+ * @author yansen
30
+ * @since 2022-02-21
31
+ */
32
+
33
+@Api(tags = "签到主表")
34
+@RestController
35
+@RequestMapping("/")
36
+public class TaSignInController extends BaseController {
37
+
38
+    private final Logger logger = LoggerFactory.getLogger(TaSignInController.class);
39
+
40
+    @Autowired
41
+    public ITaSignInService iTaSignInService;
42
+
43
+
44
+    /**
45
+     * 分页查询列表
46
+     * @param pageNum
47
+     * @param pageSize
48
+     * @return
49
+     */
50
+    @RequestMapping(value="/admin/sign-in",method= RequestMethod.GET)
51
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
52
+    public ResponseBean taSignInList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
53
+									 @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
54
+                                     @ApiParam("名称") @RequestParam(value ="name", required = false) String name,
55
+                                     @ApiParam(value = "开始时间", example = "2022-02-21") @RequestParam(value ="startDate", required = false) String startDate,
56
+                                     @ApiParam(value = "结束时间", example = "2022-02-28") @RequestParam(value ="endDate", required = false) String endDate) throws Exception{
57
+        LocalDateTime start = null;
58
+        LocalDateTime end = null;
59
+        if ((StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) || (!StringUtils.isEmpty(startDate) && StringUtils.isEmpty(endDate))) {
60
+            return ResponseBean.error("请选择完整的开始结束时间", ResponseBean.ERROR_ILLEGAL_PARAMS);
61
+        }
62
+
63
+        IPage<TaSignIn> pg = new Page<>(pageNum, pageSize);
64
+        QueryWrapper<TaSignIn> queryWrapper = new QueryWrapper<>();
65
+        queryWrapper.like(!StringUtils.isEmpty(name), "name", "%"+name+"%");
66
+        queryWrapper.gt("state", Constants.STATUS_DELETED);
67
+        queryWrapper.orderByDesc("create_date");
68
+
69
+        if (!StringUtils.isEmpty(startDate)) {
70
+            start = DateUtils.from(startDate + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
71
+            end = DateUtils.from(endDate + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
72
+            queryWrapper.lt("start_time", end);
73
+            queryWrapper.gt("end_time", start);
74
+        }
75
+
76
+        IPage<TaSignIn> result = iTaSignInService.page(pg, queryWrapper);
77
+        return ResponseBean.success(result);
78
+    }
79
+
80
+    /**
81
+     * 保存对象
82
+     * @param taSignIn 实体对象
83
+     * @return
84
+     */
85
+    @RequestMapping(value="/admin/sign-in",method= RequestMethod.POST)
86
+    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
87
+    public ResponseBean taSignInAdd(@ApiParam("保存内容") @RequestBody TaSignIn taSignIn) throws Exception{
88
+
89
+        taSignIn.setSignId(null);
90
+
91
+        if (StringUtils.isEmpty(taSignIn.getName())) {
92
+            return ResponseBean.error("请设置签到名称", ResponseBean.ERROR_ILLEGAL_PARAMS);
93
+        }
94
+
95
+        if (iTaSignInService.save(taSignIn)){
96
+            return ResponseBean.success(taSignIn);
97
+        }else {
98
+            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
99
+        }
100
+    }
101
+
102
+    /**
103
+     * 根据id删除对象
104
+     * @param id  实体ID
105
+     */
106
+    @RequestMapping(value="/admin/sign-in/{id}", method= RequestMethod.DELETE)
107
+    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
108
+    public ResponseBean taSignInDelete(@ApiParam("对象ID") @PathVariable String id) throws Exception{
109
+        if(iTaSignInService.removeLogicById(id)){
110
+            return ResponseBean.success("success");
111
+        }else {
112
+            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
113
+        }
114
+    }
115
+
116
+    /**
117
+     * 修改对象
118
+     * @param id  实体ID
119
+     * @param taSignIn 实体对象
120
+     * @return
121
+     */
122
+    @RequestMapping(value="/admin/sign-in/{id}",method= RequestMethod.PUT)
123
+    @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
124
+    public ResponseBean taSignInUpdate(@ApiParam("对象ID") @PathVariable String id,
125
+                                        @ApiParam("更新内容") @RequestBody TaSignIn taSignIn) throws Exception{
126
+        if (StringUtils.isEmpty(taSignIn.getName())) {
127
+            return ResponseBean.error("请设置签到名称", ResponseBean.ERROR_ILLEGAL_PARAMS);
128
+        }
129
+
130
+        taSignIn.setSignId(id);
131
+
132
+        if (iTaSignInService.updateById(taSignIn)){
133
+            return ResponseBean.success(iTaSignInService.getById(id));
134
+        }else {
135
+            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
136
+        }
137
+    }
138
+
139
+    /**
140
+     * 根据id查询对象
141
+     * @param id  实体ID
142
+     */
143
+    @RequestMapping(value="/{client}/sign-in/{id}",method= RequestMethod.GET)
144
+    @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
145
+    public ResponseBean taSignInGet(@ApiParam(value = "客户端",allowableValues = "admin,wx") @PathVariable String client,
146
+                                    @ApiParam("对象ID") @PathVariable Integer id) throws Exception{
147
+
148
+        if ("admin".equals(client)) {
149
+            TaSignIn taSignIn = iTaSignInService.getExistBy("sign_id", id, false, true);
150
+            return ResponseBean.success(taSignIn);
151
+        }
152
+
153
+        if ("wx".equals(client)) {
154
+
155
+        }
156
+
157
+        return ResponseBean.error("不支持的请求", ResponseBean.ERROR_ILLEGAL_PARAMS);
158
+    }
159
+}

src/main/java/com/yunzhi/training/controller/TaActivitySignController.java → src/main/java/com/yunzhi/training/controller/TaSignPersonController.java Просмотреть файл

@@ -16,28 +16,28 @@ import org.springframework.web.bind.annotation.RequestBody;
16 16
 import org.springframework.web.bind.annotation.RequestMapping;
17 17
 import org.springframework.web.bind.annotation.RequestMethod;
18 18
 import org.springframework.web.bind.annotation.RequestParam;
19
-import com.yunzhi.training.service.ITaActivitySignService;
20
-import com.yunzhi.training.entity.TaActivitySign;
19
+import com.yunzhi.training.service.ITaSignPersonService;
20
+import com.yunzhi.training.entity.TaSignPerson;
21 21
 import org.springframework.web.bind.annotation.RestController;
22 22
 
23 23
 /**
24 24
  * <p>
25
-    * 签到表 前端控制器
25
+    * 人员签到表 前端控制器
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32
-@Api(tags = "签到表")
32
+@Api(tags = "人员签到表")
33 33
 @RestController
34 34
 @RequestMapping("/")
35
-public class TaActivitySignController extends BaseController {
35
+public class TaSignPersonController extends BaseController {
36 36
 
37
-    private final Logger logger = LoggerFactory.getLogger(TaActivitySignController.class);
37
+    private final Logger logger = LoggerFactory.getLogger(TaSignPersonController.class);
38 38
 
39 39
     @Autowired
40
-    public ITaActivitySignService iTaActivitySignService;
40
+    public ITaSignPersonService iTaSignPersonService;
41 41
 
42 42
 
43 43
     /**
@@ -46,30 +46,30 @@ public class TaActivitySignController extends BaseController {
46 46
      * @param pageSize
47 47
      * @return
48 48
      */
49
-    @RequestMapping(value="/taActivitySign",method= RequestMethod.GET)
49
+    @RequestMapping(value="/taSignPerson",method= RequestMethod.GET)
50 50
     @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
51
-    public ResponseBean taActivitySignList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
51
+    public ResponseBean taSignPersonList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52 52
 									 @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception{
53 53
 
54
-		    IPage<TaActivitySign> pg = new Page<>(pageNum, pageSize);
55
-            QueryWrapper<TaActivitySign> queryWrapper = new QueryWrapper<>();
54
+		    IPage<TaSignPerson> pg = new Page<>(pageNum, pageSize);
55
+            QueryWrapper<TaSignPerson> queryWrapper = new QueryWrapper<>();
56 56
             queryWrapper.orderByDesc("create_date");
57 57
 
58
-            IPage<TaActivitySign> result = iTaActivitySignService.page(pg, queryWrapper);
58
+            IPage<TaSignPerson> result = iTaSignPersonService.page(pg, queryWrapper);
59 59
             return ResponseBean.success(result);
60 60
     }
61 61
 
62 62
     /**
63 63
      * 保存对象
64
-     * @param taActivitySign 实体对象
64
+     * @param taSignPerson 实体对象
65 65
      * @return
66 66
      */
67
-    @RequestMapping(value="/taActivitySign",method= RequestMethod.POST)
67
+    @RequestMapping(value="/taSignPerson",method= RequestMethod.POST)
68 68
     @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
69
-    public ResponseBean taActivitySignAdd(@ApiParam("保存内容") @RequestBody TaActivitySign taActivitySign) throws Exception{
69
+    public ResponseBean taSignPersonAdd(@ApiParam("保存内容") @RequestBody TaSignPerson taSignPerson) throws Exception{
70 70
 
71
-        if (iTaActivitySignService.save(taActivitySign)){
72
-            return ResponseBean.success(taActivitySign);
71
+        if (iTaSignPersonService.save(taSignPerson)){
72
+            return ResponseBean.success(taSignPerson);
73 73
         }else {
74 74
             return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
75 75
         }
@@ -79,10 +79,10 @@ public class TaActivitySignController extends BaseController {
79 79
      * 根据id删除对象
80 80
      * @param id  实体ID
81 81
      */
82
-    @RequestMapping(value="/taActivitySign/{id}", method= RequestMethod.DELETE)
82
+    @RequestMapping(value="/taSignPerson/{id}", method= RequestMethod.DELETE)
83 83
     @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
84
-    public ResponseBean taActivitySignDelete(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
85
-        if(iTaActivitySignService.removeById(id)){
84
+    public ResponseBean taSignPersonDelete(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
85
+        if(iTaSignPersonService.removeById(id)){
86 86
             return ResponseBean.success("success");
87 87
         }else {
88 88
             return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
@@ -92,16 +92,16 @@ public class TaActivitySignController extends BaseController {
92 92
     /**
93 93
      * 修改对象
94 94
      * @param id  实体ID
95
-     * @param taActivitySign 实体对象
95
+     * @param taSignPerson 实体对象
96 96
      * @return
97 97
      */
98
-    @RequestMapping(value="/taActivitySign/{id}",method= RequestMethod.PUT)
98
+    @RequestMapping(value="/taSignPerson/{id}",method= RequestMethod.PUT)
99 99
     @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
100
-    public ResponseBean taActivitySignUpdate(@ApiParam("对象ID") @PathVariable Integer id,
101
-                                        @ApiParam("更新内容") @RequestBody TaActivitySign taActivitySign) throws Exception{
100
+    public ResponseBean taSignPersonUpdate(@ApiParam("对象ID") @PathVariable Integer id,
101
+                                        @ApiParam("更新内容") @RequestBody TaSignPerson taSignPerson) throws Exception{
102 102
 
103
-        if (iTaActivitySignService.updateById(taActivitySign)){
104
-            return ResponseBean.success(iTaActivitySignService.getById(id));
103
+        if (iTaSignPersonService.updateById(taSignPerson)){
104
+            return ResponseBean.success(iTaSignPersonService.getById(id));
105 105
         }else {
106 106
             return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
107 107
         }
@@ -111,9 +111,9 @@ public class TaActivitySignController extends BaseController {
111 111
      * 根据id查询对象
112 112
      * @param id  实体ID
113 113
      */
114
-    @RequestMapping(value="/taActivitySign/{id}",method= RequestMethod.GET)
114
+    @RequestMapping(value="/taSignPerson/{id}",method= RequestMethod.GET)
115 115
     @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
116
-    public ResponseBean taActivitySignGet(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
117
-        return ResponseBean.success(iTaActivitySignService.getById(id));
116
+    public ResponseBean taSignPersonGet(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
117
+        return ResponseBean.success(iTaSignPersonService.getById(id));
118 118
     }
119 119
 }

src/main/java/com/yunzhi/training/controller/TaActivityController.java → src/main/java/com/yunzhi/training/controller/TaSignPlainController.java Просмотреть файл

@@ -16,28 +16,28 @@ import org.springframework.web.bind.annotation.RequestBody;
16 16
 import org.springframework.web.bind.annotation.RequestMapping;
17 17
 import org.springframework.web.bind.annotation.RequestMethod;
18 18
 import org.springframework.web.bind.annotation.RequestParam;
19
-import com.yunzhi.training.service.ITaActivityService;
20
-import com.yunzhi.training.entity.TaActivity;
19
+import com.yunzhi.training.service.ITaSignPlainService;
20
+import com.yunzhi.training.entity.TaSignPlain;
21 21
 import org.springframework.web.bind.annotation.RestController;
22 22
 
23 23
 /**
24 24
  * <p>
25
-    * 活动表 前端控制器
25
+    * 预签到人员 前端控制器
26 26
     * </p>
27 27
  *
28 28
  * @author yansen
29
- * @since 2022-02-18
29
+ * @since 2022-02-21
30 30
  */
31 31
 
32
-@Api(tags = "活动表")
32
+@Api(tags = "预签到人员")
33 33
 @RestController
34 34
 @RequestMapping("/")
35
-public class TaActivityController extends BaseController {
35
+public class TaSignPlainController extends BaseController {
36 36
 
37
-    private final Logger logger = LoggerFactory.getLogger(TaActivityController.class);
37
+    private final Logger logger = LoggerFactory.getLogger(TaSignPlainController.class);
38 38
 
39 39
     @Autowired
40
-    public ITaActivityService iTaActivityService;
40
+    public ITaSignPlainService iTaSignPlainService;
41 41
 
42 42
 
43 43
     /**
@@ -46,30 +46,30 @@ public class TaActivityController extends BaseController {
46 46
      * @param pageSize
47 47
      * @return
48 48
      */
49
-    @RequestMapping(value="/taActivity",method= RequestMethod.GET)
49
+    @RequestMapping(value="/taSignPlain",method= RequestMethod.GET)
50 50
     @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
51
-    public ResponseBean taActivityList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
51
+    public ResponseBean taSignPlainList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52 52
 									 @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception{
53 53
 
54
-		    IPage<TaActivity> pg = new Page<>(pageNum, pageSize);
55
-            QueryWrapper<TaActivity> queryWrapper = new QueryWrapper<>();
54
+		    IPage<TaSignPlain> pg = new Page<>(pageNum, pageSize);
55
+            QueryWrapper<TaSignPlain> queryWrapper = new QueryWrapper<>();
56 56
             queryWrapper.orderByDesc("create_date");
57 57
 
58
-            IPage<TaActivity> result = iTaActivityService.page(pg, queryWrapper);
58
+            IPage<TaSignPlain> result = iTaSignPlainService.page(pg, queryWrapper);
59 59
             return ResponseBean.success(result);
60 60
     }
61 61
 
62 62
     /**
63 63
      * 保存对象
64
-     * @param taActivity 实体对象
64
+     * @param taSignPlain 实体对象
65 65
      * @return
66 66
      */
67
-    @RequestMapping(value="/taActivity",method= RequestMethod.POST)
67
+    @RequestMapping(value="/taSignPlain",method= RequestMethod.POST)
68 68
     @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
69
-    public ResponseBean taActivityAdd(@ApiParam("保存内容") @RequestBody TaActivity taActivity) throws Exception{
69
+    public ResponseBean taSignPlainAdd(@ApiParam("保存内容") @RequestBody TaSignPlain taSignPlain) throws Exception{
70 70
 
71
-        if (iTaActivityService.save(taActivity)){
72
-            return ResponseBean.success(taActivity);
71
+        if (iTaSignPlainService.save(taSignPlain)){
72
+            return ResponseBean.success(taSignPlain);
73 73
         }else {
74 74
             return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
75 75
         }
@@ -79,10 +79,10 @@ public class TaActivityController extends BaseController {
79 79
      * 根据id删除对象
80 80
      * @param id  实体ID
81 81
      */
82
-    @RequestMapping(value="/taActivity/{id}", method= RequestMethod.DELETE)
82
+    @RequestMapping(value="/taSignPlain/{id}", method= RequestMethod.DELETE)
83 83
     @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
84
-    public ResponseBean taActivityDelete(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
85
-        if(iTaActivityService.removeById(id)){
84
+    public ResponseBean taSignPlainDelete(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
85
+        if(iTaSignPlainService.removeById(id)){
86 86
             return ResponseBean.success("success");
87 87
         }else {
88 88
             return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
@@ -92,16 +92,16 @@ public class TaActivityController extends BaseController {
92 92
     /**
93 93
      * 修改对象
94 94
      * @param id  实体ID
95
-     * @param taActivity 实体对象
95
+     * @param taSignPlain 实体对象
96 96
      * @return
97 97
      */
98
-    @RequestMapping(value="/taActivity/{id}",method= RequestMethod.PUT)
98
+    @RequestMapping(value="/taSignPlain/{id}",method= RequestMethod.PUT)
99 99
     @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
100
-    public ResponseBean taActivityUpdate(@ApiParam("对象ID") @PathVariable Integer id,
101
-                                        @ApiParam("更新内容") @RequestBody TaActivity taActivity) throws Exception{
100
+    public ResponseBean taSignPlainUpdate(@ApiParam("对象ID") @PathVariable Integer id,
101
+                                        @ApiParam("更新内容") @RequestBody TaSignPlain taSignPlain) throws Exception{
102 102
 
103
-        if (iTaActivityService.updateById(taActivity)){
104
-            return ResponseBean.success(iTaActivityService.getById(id));
103
+        if (iTaSignPlainService.updateById(taSignPlain)){
104
+            return ResponseBean.success(iTaSignPlainService.getById(id));
105 105
         }else {
106 106
             return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
107 107
         }
@@ -111,9 +111,9 @@ public class TaActivityController extends BaseController {
111 111
      * 根据id查询对象
112 112
      * @param id  实体ID
113 113
      */
114
-    @RequestMapping(value="/taActivity/{id}",method= RequestMethod.GET)
114
+    @RequestMapping(value="/taSignPlain/{id}",method= RequestMethod.GET)
115 115
     @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
116
-    public ResponseBean taActivityGet(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
117
-        return ResponseBean.success(iTaActivityService.getById(id));
116
+    public ResponseBean taSignPlainGet(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
117
+        return ResponseBean.success(iTaSignPlainService.getById(id));
118 118
     }
119 119
 }

+ 136
- 0
src/main/java/com/yunzhi/training/controller/TaStudentController.java Просмотреть файл

@@ -0,0 +1,136 @@
1
+package com.yunzhi.training.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.yunzhi.training.common.BaseController;
7
+import com.yunzhi.training.common.ResponseBean;
8
+import com.yunzhi.training.entity.TaPerson;
9
+import io.swagger.annotations.Api;
10
+import io.swagger.annotations.ApiOperation;
11
+import io.swagger.annotations.ApiParam;
12
+import org.slf4j.Logger;
13
+import org.slf4j.LoggerFactory;
14
+import org.springframework.beans.factory.annotation.Autowired;
15
+import org.springframework.web.bind.annotation.PathVariable;
16
+import org.springframework.web.bind.annotation.RequestBody;
17
+import org.springframework.web.bind.annotation.RequestMapping;
18
+import org.springframework.web.bind.annotation.RequestMethod;
19
+import org.springframework.web.bind.annotation.RequestParam;
20
+import com.yunzhi.training.service.ITaStudentService;
21
+import com.yunzhi.training.entity.TaStudent;
22
+import org.springframework.web.bind.annotation.RestController;
23
+
24
+import javax.servlet.http.HttpServletRequest;
25
+
26
+/**
27
+ * <p>
28
+    * 学员表 前端控制器
29
+    * </p>
30
+ *
31
+ * @author yansen
32
+ * @since 2022-02-21
33
+ */
34
+
35
+@Api(tags = "学员表")
36
+@RestController
37
+@RequestMapping("/")
38
+public class TaStudentController extends BaseController {
39
+
40
+    private final Logger logger = LoggerFactory.getLogger(TaStudentController.class);
41
+
42
+    @Autowired
43
+    public ITaStudentService iTaStudentService;
44
+
45
+
46
+    /**
47
+     * 分页查询列表
48
+     * @param pageNum
49
+     * @param pageSize
50
+     * @return
51
+     */
52
+    @RequestMapping(value="/admin/student",method= RequestMethod.GET)
53
+    @ApiOperation(value="列表", notes = "列表", httpMethod = "GET", response = ResponseBean.class)
54
+    public ResponseBean taStudentList(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
55
+                                      @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
56
+                                      @ApiParam("学期") @RequestParam(value ="termId", required = false) String termId,
57
+                                      @ApiParam("班级") @RequestParam(value ="classId", required = false) String classId,
58
+                                      @ApiParam("姓名") @RequestParam(value ="name", required = false) String name,
59
+                                      @ApiParam("手机号") @RequestParam(value ="phone", required = false) String phone) throws Exception{
60
+
61
+        IPage<TaStudent> pg = new Page<>(pageNum, pageSize);
62
+
63
+        IPage<TaStudent> result = iTaStudentService.getPageBy(pg, termId, classId, name, phone);
64
+        return ResponseBean.success(result);
65
+    }
66
+
67
+//    /**
68
+//     * 保存对象
69
+//     * @param taStudent 实体对象
70
+//     * @return
71
+//     */
72
+//    @RequestMapping(value="/taStudent",method= RequestMethod.POST)
73
+//    @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
74
+//    public ResponseBean taStudentAdd(@ApiParam("保存内容") @RequestBody TaStudent taStudent) throws Exception{
75
+//
76
+//        if (iTaStudentService.save(taStudent)){
77
+//            return ResponseBean.success(taStudent);
78
+//        }else {
79
+//            return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
80
+//        }
81
+//    }
82
+
83
+    /**
84
+     * 根据id删除对象
85
+     * @param id  实体ID
86
+     */
87
+    @RequestMapping(value="/admin/student/{id}", method= RequestMethod.DELETE)
88
+    @ApiOperation(value="删除", notes = "删除", httpMethod = "DELETE", response = ResponseBean.class)
89
+    public ResponseBean taStudentDelete(@ApiParam("对象ID") @PathVariable String id) throws Exception{
90
+        if(iTaStudentService.removeLogicById(id)){
91
+            return ResponseBean.success("success");
92
+        }else {
93
+            return ResponseBean.error("删除失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
94
+        }
95
+    }
96
+
97
+//    /**
98
+//     * 修改对象
99
+//     * @param id  实体ID
100
+//     * @param taStudent 实体对象
101
+//     * @return
102
+//     */
103
+//    @RequestMapping(value="/taStudent/{id}",method= RequestMethod.PUT)
104
+//    @ApiOperation(value="更新", notes = "更新", httpMethod = "PUT", response = ResponseBean.class)
105
+//    public ResponseBean taStudentUpdate(@ApiParam("对象ID") @PathVariable Integer id,
106
+//                                        @ApiParam("更新内容") @RequestBody TaStudent taStudent) throws Exception{
107
+//
108
+//        if (iTaStudentService.updateById(taStudent)){
109
+//            return ResponseBean.success(iTaStudentService.getById(id));
110
+//        }else {
111
+//            return ResponseBean.error("修改失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);
112
+//        }
113
+//    }
114
+
115
+    /**
116
+     * 根据id查询对象
117
+     * @param id  实体ID
118
+     */
119
+    @RequestMapping(value="/admin/student/{id}",method= RequestMethod.GET)
120
+    @ApiOperation(value="详情", notes = "详情", httpMethod = "GET", response = ResponseBean.class)
121
+    public ResponseBean taStudentGet(@ApiParam("对象ID") @PathVariable Integer id) throws Exception{
122
+        return ResponseBean.success(iTaStudentService.getExistBy("student_id", id, false, true));
123
+    }
124
+
125
+    /**
126
+     * 根据id查询对象
127
+     */
128
+    @RequestMapping(value="/wx/student/current",method= RequestMethod.GET)
129
+    @ApiOperation(value="当前人", notes = "当前人", httpMethod = "GET", response = ResponseBean.class)
130
+    public ResponseBean wxStudentGet(HttpServletRequest request) throws Exception{
131
+        TaPerson taPerson = getCurrentPerson(request);
132
+        TaStudent student = iTaStudentService.getExistBy("person_id", taPerson.getPersonId(), false, true);
133
+
134
+        return ResponseBean.success(student);
135
+    }
136
+}

+ 1
- 1
src/main/java/com/yunzhi/training/entity/TaAnswer.java Просмотреть файл

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)

+ 1
- 1
src/main/java/com/yunzhi/training/entity/TaAttachment.java Просмотреть файл

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)

+ 55
- 0
src/main/java/com/yunzhi/training/entity/TaBanner.java Просмотреть файл

@@ -0,0 +1,55 @@
1
+package com.yunzhi.training.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import java.time.LocalDateTime;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import java.io.Serializable;
7
+import io.swagger.annotations.ApiModel;
8
+import io.swagger.annotations.ApiModelProperty;
9
+import lombok.Data;
10
+import lombok.EqualsAndHashCode;
11
+import lombok.experimental.Accessors;
12
+
13
+/**
14
+ * <p>
15
+ * Banner表
16
+ * </p>
17
+ *
18
+ * @author yansen
19
+ * @since 2022-02-21
20
+ */
21
+@Data
22
+@EqualsAndHashCode(callSuper = false)
23
+@Accessors(chain = true)
24
+@ApiModel(value="TaBanner对象", description="Banner表")
25
+public class TaBanner implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    @ApiModelProperty(value = "BannerID")
30
+    @TableId(value = "banner_id", type = IdType.UUID)
31
+    private String bannerId;
32
+
33
+    @ApiModelProperty(value = "课程ID")
34
+    private String courseId;
35
+
36
+    @ApiModelProperty(value = "名称")
37
+    private String title;
38
+
39
+    @ApiModelProperty(value = "图片")
40
+    private String thumb;
41
+
42
+    @ApiModelProperty(value = "位置")
43
+    private String position;
44
+
45
+    @ApiModelProperty(value = "排序")
46
+    private Integer sortNo;
47
+
48
+    @ApiModelProperty(value = "状态")
49
+    private Integer state;
50
+
51
+    @ApiModelProperty(value = "创建时间")
52
+    private LocalDateTime createDate;
53
+
54
+
55
+}

+ 55
- 0
src/main/java/com/yunzhi/training/entity/TaCourse.java Просмотреть файл

@@ -0,0 +1,55 @@
1
+package com.yunzhi.training.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import java.time.LocalDateTime;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6
+import java.io.Serializable;
7
+import io.swagger.annotations.ApiModel;
8
+import io.swagger.annotations.ApiModelProperty;
9
+import lombok.Data;
10
+import lombok.EqualsAndHashCode;
11
+import lombok.experimental.Accessors;
12
+
13
+/**
14
+ * <p>
15
+ * 课程表
16
+ * </p>
17
+ *
18
+ * @author yansen
19
+ * @since 2022-02-21
20
+ */
21
+@Data
22
+@EqualsAndHashCode(callSuper = false)
23
+@Accessors(chain = true)
24
+@ApiModel(value="TaCourse对象", description="课程表")
25
+public class TaCourse implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    @ApiModelProperty(value = "课程ID")
30
+    @TableId(value = "course_id", type = IdType.UUID)
31
+    private String courseId;
32
+
33
+    @ApiModelProperty(value = "课程名称")
34
+    private String title;
35
+
36
+    @ApiModelProperty(value = "课程简介")
37
+    private String subTitle;
38
+
39
+    @ApiModelProperty(value = "开始时间")
40
+    private LocalDateTime startDate;
41
+
42
+    @ApiModelProperty(value = "结束时间")
43
+    private LocalDateTime endDate;
44
+
45
+    @ApiModelProperty(value = "课程内容")
46
+    private String content;
47
+
48
+    @ApiModelProperty(value = "状态")
49
+    private Integer state;
50
+
51
+    @ApiModelProperty(value = "创建时间")
52
+    private LocalDateTime createDate;
53
+
54
+
55
+}

+ 14
- 2
src/main/java/com/yunzhi/training/entity/TaPerson.java Просмотреть файл

@@ -2,6 +2,8 @@ package com.yunzhi.training.entity;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.IdType;
4 4
 import java.time.LocalDateTime;
5
+
6
+import com.baomidou.mybatisplus.annotation.TableField;
5 7
 import com.baomidou.mybatisplus.annotation.TableId;
6 8
 import java.io.Serializable;
7 9
 import io.swagger.annotations.ApiModel;
@@ -16,7 +18,7 @@ import lombok.experimental.Accessors;
16 18
  * </p>
17 19
  *
18 20
  * @author yansen
19
- * @since 2022-02-18
21
+ * @since 2022-02-21
20 22
  */
21 23
 @Data
22 24
 @EqualsAndHashCode(callSuper = false)
@@ -27,7 +29,7 @@ public class TaPerson implements Serializable {
27 29
     private static final long serialVersionUID = 1L;
28 30
 
29 31
     @ApiModelProperty(value = "人员ID")
30
-    @TableId(value = "person_id", type = IdType.INPUT)
32
+    @TableId(value = "person_id", type = IdType.UUID)
31 33
     private String personId;
32 34
 
33 35
     @ApiModelProperty(value = "openid")
@@ -51,5 +53,15 @@ public class TaPerson implements Serializable {
51 53
     @ApiModelProperty(value = "创建时间")
52 54
     private LocalDateTime createDate;
53 55
 
56
+    @TableField(exist = false)
57
+    @ApiModelProperty(value = "所属学期")
58
+    private String termId;
59
+
60
+    @TableField(exist = false)
61
+    @ApiModelProperty(value = "班级ID")
62
+    private String classId;
54 63
 
64
+    @TableField(exist = false)
65
+    @ApiModelProperty(value = "验证码")
66
+    private String captcha;
55 67
 }

+ 1
- 1
src/main/java/com/yunzhi/training/entity/TaQuePerson.java Просмотреть файл

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)

+ 1
- 1
src/main/java/com/yunzhi/training/entity/TaQuestion.java Просмотреть файл

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)

+ 1
- 1
src/main/java/com/yunzhi/training/entity/TaQuestionPerson.java Просмотреть файл

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)

+ 1
- 1
src/main/java/com/yunzhi/training/entity/TaQuestionnaire.java Просмотреть файл

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)

+ 50
- 0
src/main/java/com/yunzhi/training/entity/TaSchoolClass.java Просмотреть файл

@@ -0,0 +1,50 @@
1
+package com.yunzhi.training.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import java.time.LocalDateTime;
5
+
6
+import com.baomidou.mybatisplus.annotation.TableField;
7
+import com.baomidou.mybatisplus.annotation.TableId;
8
+import java.io.Serializable;
9
+import io.swagger.annotations.ApiModel;
10
+import io.swagger.annotations.ApiModelProperty;
11
+import lombok.Data;
12
+import lombok.EqualsAndHashCode;
13
+import lombok.experimental.Accessors;
14
+
15
+/**
16
+ * <p>
17
+ * 班级
18
+ * </p>
19
+ *
20
+ * @author yansen
21
+ * @since 2022-02-21
22
+ */
23
+@Data
24
+@EqualsAndHashCode(callSuper = false)
25
+@Accessors(chain = true)
26
+@ApiModel(value="TaSchoolClass对象", description="班级")
27
+public class TaSchoolClass implements Serializable {
28
+
29
+    private static final long serialVersionUID = 1L;
30
+
31
+    @ApiModelProperty(value = "班级ID")
32
+    @TableId(value = "class_id", type = IdType.UUID)
33
+    private String classId;
34
+
35
+    @ApiModelProperty(value = "所属学期")
36
+    private String termId;
37
+
38
+    @ApiModelProperty(value = "班级名称")
39
+    private String name;
40
+
41
+    @ApiModelProperty(value = "状态")
42
+    private Integer state;
43
+
44
+    @ApiModelProperty(value = "创建时间")
45
+    private LocalDateTime createDate;
46
+
47
+    @TableField(exist = false)
48
+    @ApiModelProperty(value = "所属学期名称")
49
+    private String termName;
50
+}

src/main/java/com/yunzhi/training/entity/TaActivitySign.java → src/main/java/com/yunzhi/training/entity/TaSchoolTerm.java Просмотреть файл

@@ -1,8 +1,8 @@
1 1
 package com.yunzhi.training.entity;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.IdType;
4
-import com.baomidou.mybatisplus.annotation.TableId;
5 4
 import java.time.LocalDateTime;
5
+import com.baomidou.mybatisplus.annotation.TableId;
6 6
 import java.io.Serializable;
7 7
 import io.swagger.annotations.ApiModel;
8 8
 import io.swagger.annotations.ApiModelProperty;
@@ -12,29 +12,29 @@ import lombok.experimental.Accessors;
12 12
 
13 13
 /**
14 14
  * <p>
15
- * 签到表
15
+ * 学期
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)
23 23
 @Accessors(chain = true)
24
-@ApiModel(value="TaActivitySign对象", description="签到表")
25
-public class TaActivitySign implements Serializable {
24
+@ApiModel(value="TaSchoolTerm对象", description="学期")
25
+public class TaSchoolTerm implements Serializable {
26 26
 
27 27
     private static final long serialVersionUID = 1L;
28 28
 
29
-    @ApiModelProperty(value = "签到ID")
30
-    @TableId(value = "sign_id", type = IdType.AUTO)
31
-    private Integer signId;
29
+    @ApiModelProperty(value = "学期ID")
30
+    @TableId(value = "term_id", type = IdType.UUID)
31
+    private String termId;
32 32
 
33
-    @ApiModelProperty(value = "人员ID")
34
-    private String personId;
33
+    @ApiModelProperty(value = "学期名称")
34
+    private String name;
35 35
 
36
-    @ApiModelProperty(value = "活动ID")
37
-    private String activityId;
36
+    @ApiModelProperty(value = "状态")
37
+    private Integer state;
38 38
 
39 39
     @ApiModelProperty(value = "创建时间")
40 40
     private LocalDateTime createDate;

src/main/java/com/yunzhi/training/entity/TaActivity.java → src/main/java/com/yunzhi/training/entity/TaSignIn.java Просмотреть файл

@@ -12,25 +12,25 @@ import lombok.experimental.Accessors;
12 12
 
13 13
 /**
14 14
  * <p>
15
- * 活动
15
+ * 签到主
16 16
  * </p>
17 17
  *
18 18
  * @author yansen
19
- * @since 2022-02-18
19
+ * @since 2022-02-21
20 20
  */
21 21
 @Data
22 22
 @EqualsAndHashCode(callSuper = false)
23 23
 @Accessors(chain = true)
24
-@ApiModel(value="TaActivity对象", description="活动表")
25
-public class TaActivity implements Serializable {
24
+@ApiModel(value="TaSignIn对象", description="签到主表")
25
+public class TaSignIn implements Serializable {
26 26
 
27 27
     private static final long serialVersionUID = 1L;
28 28
 
29
-    @ApiModelProperty(value = "课程ID")
30
-    @TableId(value = "activity_id", type = IdType.INPUT)
31
-    private String activityId;
29
+    @ApiModelProperty(value = "签到ID")
30
+    @TableId(value = "sign_id", type = IdType.UUID)
31
+    private String signId;
32 32
 
33
-    @ApiModelProperty(value = "名称")
33
+    @ApiModelProperty(value = "签到名称")
34 34
     private String name;
35 35
 
36 36
     @ApiModelProperty(value = "计划人数")

+ 52
- 0
src/main/java/com/yunzhi/training/entity/TaSignPerson.java Просмотреть файл

@@ -0,0 +1,52 @@
1
+package com.yunzhi.training.entity;
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 io.swagger.annotations.ApiModel;
8
+import io.swagger.annotations.ApiModelProperty;
9
+import lombok.Data;
10
+import lombok.EqualsAndHashCode;
11
+import lombok.experimental.Accessors;
12
+
13
+/**
14
+ * <p>
15
+ * 人员签到表
16
+ * </p>
17
+ *
18
+ * @author yansen
19
+ * @since 2022-02-21
20
+ */
21
+@Data
22
+@EqualsAndHashCode(callSuper = false)
23
+@Accessors(chain = true)
24
+@ApiModel(value="TaSignPerson对象", description="人员签到表")
25
+public class TaSignPerson implements Serializable {
26
+
27
+    private static final long serialVersionUID = 1L;
28
+
29
+    @ApiModelProperty(value = "签到ID")
30
+    @TableId(value = "serial_no", type = IdType.AUTO)
31
+    private Integer serialNo;
32
+
33
+    @ApiModelProperty(value = "人员ID")
34
+    private String personId;
35
+
36
+    @ApiModelProperty(value = "签到ID")
37
+    private String signId;
38
+
39
+    @ApiModelProperty(value = "学员ID")
40
+    private String studentId;
41
+
42
+    @ApiModelProperty(value = "学期ID")
43
+    private String termId;
44
+
45
+    @ApiModelProperty(value = "班级ID")
46
+    private String classId;
47
+
48
+    @ApiModelProperty(value = "创建时间")
49
+    private LocalDateTime createDate;
50
+
51
+
52
+}

+ 50
- 0
src/main/java/com/yunzhi/training/entity/TaSignPlain.java Просмотреть файл

@@ -0,0 +1,50 @@
1
+package com.yunzhi.training.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import com.baomidou.mybatisplus.annotation.TableId;
5
+import java.io.Serializable;
6
+import io.swagger.annotations.ApiModel;
7
+import io.swagger.annotations.ApiModelProperty;
8
+import lombok.Data;
9
+import lombok.EqualsAndHashCode;
10
+import lombok.experimental.Accessors;
11
+
12
+/**
13
+ * <p>
14
+ * 预签到人员
15
+ * </p>
16
+ *
17
+ * @author yansen
18
+ * @since 2022-02-21
19
+ */
20
+@Data
21
+@EqualsAndHashCode(callSuper = false)
22
+@Accessors(chain = true)
23
+@ApiModel(value="TaSignPlain对象", description="预签到人员")
24
+public class TaSignPlain implements Serializable {
25
+
26
+    private static final long serialVersionUID = 1L;
27
+
28
+    @ApiModelProperty(value = "序号")
29
+    @TableId(value = "serial_no", type = IdType.AUTO)
30
+    private Integer serialNo;
31
+
32
+    @ApiModelProperty(value = "签到ID")
33
+    private String signId;
34
+
35
+    @ApiModelProperty(value = "人员ID")
36
+    private String personId;
37
+
38
+    @ApiModelProperty(value = "学员ID")
39
+    private String studentId;
40
+
41
+    @ApiModelProperty(value = "学期ID")
42
+    private String termId;
43
+
44
+    @ApiModelProperty(value = "班级ID")
45
+    private String classId;
46
+
47
+    @ApiModelProperty(value = "手机号")
48
+    private String phone;
49
+
50
+}

+ 67
- 0
src/main/java/com/yunzhi/training/entity/TaStudent.java Просмотреть файл

@@ -0,0 +1,67 @@
1
+package com.yunzhi.training.entity;
2
+
3
+import com.baomidou.mybatisplus.annotation.IdType;
4
+import java.time.LocalDateTime;
5
+
6
+import com.baomidou.mybatisplus.annotation.TableField;
7
+import com.baomidou.mybatisplus.annotation.TableId;
8
+import java.io.Serializable;
9
+import io.swagger.annotations.ApiModel;
10
+import io.swagger.annotations.ApiModelProperty;
11
+import lombok.Data;
12
+import lombok.EqualsAndHashCode;
13
+import lombok.experimental.Accessors;
14
+
15
+/**
16
+ * <p>
17
+ * 学员表
18
+ * </p>
19
+ *
20
+ * @author yansen
21
+ * @since 2022-02-21
22
+ */
23
+@Data
24
+@EqualsAndHashCode(callSuper = false)
25
+@Accessors(chain = true)
26
+@ApiModel(value="TaStudent对象", description="学员表")
27
+public class TaStudent implements Serializable {
28
+
29
+    private static final long serialVersionUID = 1L;
30
+
31
+    @ApiModelProperty(value = "学员ID")
32
+    @TableId(value = "student_id", type = IdType.UUID)
33
+    private String studentId;
34
+
35
+    @ApiModelProperty(value = "对应人员")
36
+    private String personId;
37
+
38
+    @ApiModelProperty(value = "所属学期")
39
+    private String termId;
40
+
41
+    @ApiModelProperty(value = "班级ID")
42
+    private String classId;
43
+
44
+    @ApiModelProperty(value = "名称")
45
+    private String name;
46
+
47
+    @ApiModelProperty(value = "性别")
48
+    private Integer sex;
49
+
50
+    @ApiModelProperty(value = "手机号")
51
+    private String phone;
52
+
53
+    @ApiModelProperty(value = "状态")
54
+    private Integer state;
55
+
56
+    @ApiModelProperty(value = "创建时间")
57
+    private LocalDateTime createDate;
58
+
59
+    @TableField(exist = false)
60
+    @ApiModelProperty(value = "学期名称")
61
+    private String termName;
62
+
63
+    @TableField(exist = false)
64
+    @ApiModelProperty(value = "班级名称")
65
+    private String className;
66
+
67
+}

+ 1
- 0
src/main/java/com/yunzhi/training/interceptor/PermissionInterceptor.java Просмотреть файл

@@ -23,6 +23,7 @@ public class PermissionInterceptor implements HandlerInterceptor {
23 23
         try {
24 24
             JWTUtils.verify(token);
25 25
         } catch (Exception e) {
26
+            e.printStackTrace();
26 27
             log.error("鉴权失败: {}", e.getMessage());
27 28
             responseTokenError(response, "鉴权失败, 请重新登录");
28 29
             return false;

+ 1
- 1
src/main/java/com/yunzhi/training/mapper/TaAnswerMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16 16
 public interface TaAnswerMapper extends BaseMapper<TaAnswer> {

+ 1
- 1
src/main/java/com/yunzhi/training/mapper/TaAttachmentMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16 16
 public interface TaAttachmentMapper extends BaseMapper<TaAttachment> {

src/main/java/com/yunzhi/training/mapper/TaActivityMapper.java → src/main/java/com/yunzhi/training/mapper/TaBannerMapper.java Просмотреть файл

@@ -1,18 +1,18 @@
1 1
 package com.yunzhi.training.mapper;
2 2
 
3
-import com.yunzhi.training.entity.TaActivity;
3
+import com.yunzhi.training.entity.TaBanner;
4 4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 5
 import org.apache.ibatis.annotations.Mapper;
6 6
 
7 7
 /**
8 8
  * <p>
9
- * 活动表 Mapper 接口
9
+ * Banner表 Mapper 接口
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16
-public interface TaActivityMapper extends BaseMapper<TaActivity> {
16
+public interface TaBannerMapper extends BaseMapper<TaBanner> {
17 17
 
18 18
 }

+ 27
- 0
src/main/java/com/yunzhi/training/mapper/TaCourseMapper.java Просмотреть файл

@@ -0,0 +1,27 @@
1
+package com.yunzhi.training.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaCourse;
5
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
+import org.apache.ibatis.annotations.Mapper;
7
+import org.apache.ibatis.annotations.Param;
8
+
9
+import java.time.LocalDateTime;
10
+
11
+/**
12
+ * <p>
13
+ * 课程表 Mapper 接口
14
+ * </p>
15
+ *
16
+ * @author yansen
17
+ * @since 2022-02-21
18
+ */
19
+@Mapper
20
+public interface TaCourseMapper extends BaseMapper<TaCourse> {
21
+
22
+    IPage<TaCourse> getPagedBy(IPage<TaCourse> pg,
23
+                               @Param("client") String client,
24
+                               @Param("title") String title,
25
+                               @Param("start") LocalDateTime start,
26
+                               @Param("end") LocalDateTime end);
27
+}

+ 1
- 1
src/main/java/com/yunzhi/training/mapper/TaPersonMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16 16
 public interface TaPersonMapper extends BaseMapper<TaPerson> {

+ 1
- 1
src/main/java/com/yunzhi/training/mapper/TaQuePersonMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16 16
 public interface TaQuePersonMapper extends BaseMapper<TaQuePerson> {

+ 1
- 1
src/main/java/com/yunzhi/training/mapper/TaQuestionMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16 16
 public interface TaQuestionMapper extends BaseMapper<TaQuestion> {

+ 1
- 1
src/main/java/com/yunzhi/training/mapper/TaQuestionPersonMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16 16
 public interface TaQuestionPersonMapper extends BaseMapper<TaQuestionPerson> {

+ 1
- 1
src/main/java/com/yunzhi/training/mapper/TaQuestionnaireMapper.java Просмотреть файл

@@ -10,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16 16
 public interface TaQuestionnaireMapper extends BaseMapper<TaQuestionnaire> {

+ 24
- 0
src/main/java/com/yunzhi/training/mapper/TaSchoolClassMapper.java Просмотреть файл

@@ -0,0 +1,24 @@
1
+package com.yunzhi.training.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaSchoolClass;
5
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
+import org.apache.ibatis.annotations.Mapper;
7
+import org.apache.ibatis.annotations.Param;
8
+
9
+/**
10
+ * <p>
11
+ * 班级 Mapper 接口
12
+ * </p>
13
+ *
14
+ * @author yansen
15
+ * @since 2022-02-21
16
+ */
17
+@Mapper
18
+public interface TaSchoolClassMapper extends BaseMapper<TaSchoolClass> {
19
+
20
+    IPage<TaSchoolClass> getPageBy(IPage<TaSchoolClass> pg,
21
+                                   @Param("termId") String termId,
22
+                                   @Param("name") String name,
23
+                                   @Param("client") String client);
24
+}

src/main/java/com/yunzhi/training/mapper/TaActivitySignMapper.java → src/main/java/com/yunzhi/training/mapper/TaSchoolTermMapper.java Просмотреть файл

@@ -1,18 +1,18 @@
1 1
 package com.yunzhi.training.mapper;
2 2
 
3
-import com.yunzhi.training.entity.TaActivitySign;
3
+import com.yunzhi.training.entity.TaSchoolTerm;
4 4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 5
 import org.apache.ibatis.annotations.Mapper;
6 6
 
7 7
 /**
8 8
  * <p>
9
- * 签到表 Mapper 接口
9
+ * 学期 Mapper 接口
10 10
  * </p>
11 11
  *
12 12
  * @author yansen
13
- * @since 2022-02-18
13
+ * @since 2022-02-21
14 14
  */
15 15
 @Mapper
16
-public interface TaActivitySignMapper extends BaseMapper<TaActivitySign> {
16
+public interface TaSchoolTermMapper extends BaseMapper<TaSchoolTerm> {
17 17
 
18 18
 }

+ 18
- 0
src/main/java/com/yunzhi/training/mapper/TaSignInMapper.java Просмотреть файл

@@ -0,0 +1,18 @@
1
+package com.yunzhi.training.mapper;
2
+
3
+import com.yunzhi.training.entity.TaSignIn;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 签到主表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author yansen
13
+ * @since 2022-02-21
14
+ */
15
+@Mapper
16
+public interface TaSignInMapper extends BaseMapper<TaSignIn> {
17
+
18
+}

+ 18
- 0
src/main/java/com/yunzhi/training/mapper/TaSignPersonMapper.java Просмотреть файл

@@ -0,0 +1,18 @@
1
+package com.yunzhi.training.mapper;
2
+
3
+import com.yunzhi.training.entity.TaSignPerson;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 人员签到表 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author yansen
13
+ * @since 2022-02-21
14
+ */
15
+@Mapper
16
+public interface TaSignPersonMapper extends BaseMapper<TaSignPerson> {
17
+
18
+}

+ 18
- 0
src/main/java/com/yunzhi/training/mapper/TaSignPlainMapper.java Просмотреть файл

@@ -0,0 +1,18 @@
1
+package com.yunzhi.training.mapper;
2
+
3
+import com.yunzhi.training.entity.TaSignPlain;
4
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5
+import org.apache.ibatis.annotations.Mapper;
6
+
7
+/**
8
+ * <p>
9
+ * 预签到人员 Mapper 接口
10
+ * </p>
11
+ *
12
+ * @author yansen
13
+ * @since 2022-02-21
14
+ */
15
+@Mapper
16
+public interface TaSignPlainMapper extends BaseMapper<TaSignPlain> {
17
+
18
+}

+ 25
- 0
src/main/java/com/yunzhi/training/mapper/TaStudentMapper.java Просмотреть файл

@@ -0,0 +1,25 @@
1
+package com.yunzhi.training.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaStudent;
5
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
6
+import org.apache.ibatis.annotations.Mapper;
7
+import org.apache.ibatis.annotations.Param;
8
+
9
+/**
10
+ * <p>
11
+ * 学员表 Mapper 接口
12
+ * </p>
13
+ *
14
+ * @author yansen
15
+ * @since 2022-02-21
16
+ */
17
+@Mapper
18
+public interface TaStudentMapper extends BaseMapper<TaStudent> {
19
+
20
+    IPage<TaStudent> getPageBy(IPage<TaStudent> pg,
21
+                               @Param("termId") String termId,
22
+                               @Param("classId") String classId,
23
+                               @Param("name") String name,
24
+                               @Param("phone") String phone);
25
+}

+ 6
- 0
src/main/java/com/yunzhi/training/service/IBaseService.java Просмотреть файл

@@ -11,4 +11,10 @@ public interface IBaseService <T> extends IService<T> {
11 11
      * @return
12 12
      */
13 13
     boolean removeLogicById(Serializable id);
14
+
15
+    int countBy(String column, Object value, boolean notDelete);
16
+
17
+    T getByButNot(String column, Object value, String col, Object val, boolean notDelete);
18
+
19
+    T getExistBy(String column, Object value, boolean normal, boolean notDelete);
14 20
 }

+ 0
- 16
src/main/java/com/yunzhi/training/service/ITaActivityService.java Просмотреть файл

@@ -1,16 +0,0 @@
1
-package com.yunzhi.training.service;
2
-
3
-import com.yunzhi.training.entity.TaActivity;
4
-import com.baomidou.mybatisplus.extension.service.IService;
5
-
6
-/**
7
- * <p>
8
- * 活动表 服务类
9
- * </p>
10
- *
11
- * @author yansen
12
- * @since 2022-02-18
13
- */
14
-public interface ITaActivityService extends IService<TaActivity> {
15
-
16
-}

+ 0
- 16
src/main/java/com/yunzhi/training/service/ITaActivitySignService.java Просмотреть файл

@@ -1,16 +0,0 @@
1
-package com.yunzhi.training.service;
2
-
3
-import com.yunzhi.training.entity.TaActivitySign;
4
-import com.baomidou.mybatisplus.extension.service.IService;
5
-
6
-/**
7
- * <p>
8
- * 签到表 服务类
9
- * </p>
10
- *
11
- * @author yansen
12
- * @since 2022-02-18
13
- */
14
-public interface ITaActivitySignService extends IService<TaActivitySign> {
15
-
16
-}

+ 1
- 1
src/main/java/com/yunzhi/training/service/ITaAnswerService.java Просмотреть файл

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
9 9
  * </p>
10 10
  *
11 11
  * @author yansen
12
- * @since 2022-02-18
12
+ * @since 2022-02-21
13 13
  */
14 14
 public interface ITaAnswerService extends IService<TaAnswer> {
15 15
 

+ 1
- 1
src/main/java/com/yunzhi/training/service/ITaAttachmentService.java Просмотреть файл

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
9 9
  * </p>
10 10
  *
11 11
  * @author yansen
12
- * @since 2022-02-18
12
+ * @since 2022-02-21
13 13
  */
14 14
 public interface ITaAttachmentService extends IService<TaAttachment> {
15 15
 

+ 15
- 0
src/main/java/com/yunzhi/training/service/ITaBannerService.java Просмотреть файл

@@ -0,0 +1,15 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.yunzhi.training.entity.TaBanner;
4
+
5
+/**
6
+ * <p>
7
+ * Banner表 服务类
8
+ * </p>
9
+ *
10
+ * @author yansen
11
+ * @since 2022-02-21
12
+ */
13
+public interface ITaBannerService extends IBaseService<TaBanner> {
14
+
15
+}

+ 19
- 0
src/main/java/com/yunzhi/training/service/ITaCourseService.java Просмотреть файл

@@ -0,0 +1,19 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaCourse;
5
+
6
+import java.time.LocalDateTime;
7
+
8
+/**
9
+ * <p>
10
+ * 课程表 服务类
11
+ * </p>
12
+ *
13
+ * @author yansen
14
+ * @since 2022-02-21
15
+ */
16
+public interface ITaCourseService extends IBaseService<TaCourse> {
17
+
18
+    IPage<TaCourse> getPagedBy(IPage<TaCourse> pg, String client, String title, LocalDateTime start, LocalDateTime end);
19
+}

+ 2
- 1
src/main/java/com/yunzhi/training/service/ITaPersonService.java Просмотреть файл

@@ -9,8 +9,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
9 9
  * </p>
10 10
  *
11 11
  * @author yansen
12
- * @since 2022-02-18
12
+ * @since 2022-02-21
13 13
  */
14 14
 public interface ITaPersonService extends IService<TaPerson> {
15 15
 
16
+    TaPerson getByOpenID(String openID);
16 17
 }

+ 1
- 1
src/main/java/com/yunzhi/training/service/ITaQuePersonService.java Просмотреть файл

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
9 9
  * </p>
10 10
  *
11 11
  * @author yansen
12
- * @since 2022-02-18
12
+ * @since 2022-02-21
13 13
  */
14 14
 public interface ITaQuePersonService extends IService<TaQuePerson> {
15 15
 

+ 1
- 1
src/main/java/com/yunzhi/training/service/ITaQuestionPersonService.java Просмотреть файл

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
9 9
  * </p>
10 10
  *
11 11
  * @author yansen
12
- * @since 2022-02-18
12
+ * @since 2022-02-21
13 13
  */
14 14
 public interface ITaQuestionPersonService extends IService<TaQuestionPerson> {
15 15
 

+ 1
- 1
src/main/java/com/yunzhi/training/service/ITaQuestionService.java Просмотреть файл

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
9 9
  * </p>
10 10
  *
11 11
  * @author yansen
12
- * @since 2022-02-18
12
+ * @since 2022-02-21
13 13
  */
14 14
 public interface ITaQuestionService extends IService<TaQuestion> {
15 15
 

+ 1
- 1
src/main/java/com/yunzhi/training/service/ITaQuestionnaireService.java Просмотреть файл

@@ -9,7 +9,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
9 9
  * </p>
10 10
  *
11 11
  * @author yansen
12
- * @since 2022-02-18
12
+ * @since 2022-02-21
13 13
  */
14 14
 public interface ITaQuestionnaireService extends IService<TaQuestionnaire> {
15 15
 

+ 21
- 0
src/main/java/com/yunzhi/training/service/ITaSchoolClassService.java Просмотреть файл

@@ -0,0 +1,21 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaSchoolClass;
5
+
6
+/**
7
+ * <p>
8
+ * 班级 服务类
9
+ * </p>
10
+ *
11
+ * @author yansen
12
+ * @since 2022-02-21
13
+ */
14
+public interface ITaSchoolClassService extends IBaseService<TaSchoolClass> {
15
+
16
+    int countName(String termId, String name);
17
+
18
+    boolean checkOnly(TaSchoolClass taSchoolClass);
19
+
20
+    IPage<TaSchoolClass> getPageBy(IPage<TaSchoolClass> pg, String termId, String name, String client);
21
+}

+ 15
- 0
src/main/java/com/yunzhi/training/service/ITaSchoolTermService.java Просмотреть файл

@@ -0,0 +1,15 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.yunzhi.training.entity.TaSchoolTerm;
4
+
5
+/**
6
+ * <p>
7
+ * 学期 服务类
8
+ * </p>
9
+ *
10
+ * @author yansen
11
+ * @since 2022-02-21
12
+ */
13
+public interface ITaSchoolTermService extends IBaseService<TaSchoolTerm> {
14
+
15
+}

+ 15
- 0
src/main/java/com/yunzhi/training/service/ITaSignInService.java Просмотреть файл

@@ -0,0 +1,15 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.yunzhi.training.entity.TaSignIn;
4
+
5
+/**
6
+ * <p>
7
+ * 签到主表 服务类
8
+ * </p>
9
+ *
10
+ * @author yansen
11
+ * @since 2022-02-21
12
+ */
13
+public interface ITaSignInService extends IBaseService<TaSignIn> {
14
+
15
+}

+ 16
- 0
src/main/java/com/yunzhi/training/service/ITaSignPersonService.java Просмотреть файл

@@ -0,0 +1,16 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.yunzhi.training.entity.TaSignPerson;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 人员签到表 服务类
9
+ * </p>
10
+ *
11
+ * @author yansen
12
+ * @since 2022-02-21
13
+ */
14
+public interface ITaSignPersonService extends IService<TaSignPerson> {
15
+
16
+}

+ 16
- 0
src/main/java/com/yunzhi/training/service/ITaSignPlainService.java Просмотреть файл

@@ -0,0 +1,16 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.yunzhi.training.entity.TaSignPlain;
4
+import com.baomidou.mybatisplus.extension.service.IService;
5
+
6
+/**
7
+ * <p>
8
+ * 预签到人员 服务类
9
+ * </p>
10
+ *
11
+ * @author yansen
12
+ * @since 2022-02-21
13
+ */
14
+public interface ITaSignPlainService extends IService<TaSignPlain> {
15
+
16
+}

+ 17
- 0
src/main/java/com/yunzhi/training/service/ITaStudentService.java Просмотреть файл

@@ -0,0 +1,17 @@
1
+package com.yunzhi.training.service;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaStudent;
5
+
6
+/**
7
+ * <p>
8
+ * 学员表 服务类
9
+ * </p>
10
+ *
11
+ * @author yansen
12
+ * @since 2022-02-21
13
+ */
14
+public interface ITaStudentService extends IBaseService<TaStudent> {
15
+
16
+    IPage<TaStudent> getPageBy(IPage<TaStudent> pg, String termId, String classId, String name, String phone);
17
+}

+ 32
- 1
src/main/java/com/yunzhi/training/service/impl/BaseServiceImpl.java Просмотреть файл

@@ -1,5 +1,6 @@
1 1
 package com.yunzhi.training.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
3 4
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
4 5
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 6
 import com.baomidou.mybatisplus.core.metadata.TableInfo;
@@ -15,9 +16,39 @@ public class BaseServiceImpl<M extends BaseMapper<T>, T> extends ServiceImpl<M,
15 16
 
16 17
         TableInfo tableInfo = SqlHelper.table(currentModelClass());
17 18
         UpdateWrapper<T> updateWrapper = new UpdateWrapper<>();
18
-        updateWrapper.set("status", -1)
19
+        updateWrapper.set("state", -1)
19 20
                 .eq(tableInfo.getKeyColumn(), id);
20 21
 
21 22
         return update(updateWrapper);
22 23
     }
24
+
25
+    @Override
26
+    public int countBy(String column, Object value, boolean notDelete) {
27
+        QueryWrapper<T> queryWrapper = new QueryWrapper<>();
28
+        queryWrapper.eq(column, value);
29
+        queryWrapper.gt(notDelete, "state", -1);
30
+
31
+        return count(queryWrapper);
32
+    }
33
+
34
+    @Override
35
+    public T getByButNot(String column, Object value, String col, Object val, boolean notDelete) {
36
+        QueryWrapper<T> queryWrapper = new QueryWrapper<>();
37
+        queryWrapper.eq(column, value);
38
+        queryWrapper.ne(col, val);
39
+        queryWrapper.gt(notDelete, "state", -1);
40
+        queryWrapper.last("limit 1");
41
+
42
+        return getOne(queryWrapper);
43
+    }
44
+
45
+    @Override
46
+    public T getExistBy(String column, Object value, boolean normal, boolean notDelete) {
47
+        QueryWrapper<T> queryWrapper = new QueryWrapper<>();
48
+        queryWrapper.eq(column, value);
49
+        queryWrapper.eq(normal, "state", 1);
50
+        queryWrapper.gt(notDelete, "state", -1);
51
+        queryWrapper.last("limit 1");
52
+        return getOne(queryWrapper);
53
+    }
23 54
 }

+ 0
- 20
src/main/java/com/yunzhi/training/service/impl/TaActivityServiceImpl.java Просмотреть файл

@@ -1,20 +0,0 @@
1
-package com.yunzhi.training.service.impl;
2
-
3
-import com.yunzhi.training.entity.TaActivity;
4
-import com.yunzhi.training.mapper.TaActivityMapper;
5
-import com.yunzhi.training.service.ITaActivityService;
6
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
-import org.springframework.stereotype.Service;
8
-
9
-/**
10
- * <p>
11
- * 活动表 服务实现类
12
- * </p>
13
- *
14
- * @author yansen
15
- * @since 2022-02-18
16
- */
17
-@Service
18
-public class TaActivityServiceImpl extends ServiceImpl<TaActivityMapper, TaActivity> implements ITaActivityService {
19
-
20
-}

+ 0
- 20
src/main/java/com/yunzhi/training/service/impl/TaActivitySignServiceImpl.java Просмотреть файл

@@ -1,20 +0,0 @@
1
-package com.yunzhi.training.service.impl;
2
-
3
-import com.yunzhi.training.entity.TaActivitySign;
4
-import com.yunzhi.training.mapper.TaActivitySignMapper;
5
-import com.yunzhi.training.service.ITaActivitySignService;
6
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
-import org.springframework.stereotype.Service;
8
-
9
-/**
10
- * <p>
11
- * 签到表 服务实现类
12
- * </p>
13
- *
14
- * @author yansen
15
- * @since 2022-02-18
16
- */
17
-@Service
18
-public class TaActivitySignServiceImpl extends ServiceImpl<TaActivitySignMapper, TaActivitySign> implements ITaActivitySignService {
19
-
20
-}

+ 1
- 1
src/main/java/com/yunzhi/training/service/impl/TaAnswerServiceImpl.java Просмотреть файл

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
12 12
  * </p>
13 13
  *
14 14
  * @author yansen
15
- * @since 2022-02-18
15
+ * @since 2022-02-21
16 16
  */
17 17
 @Service
18 18
 public class TaAnswerServiceImpl extends ServiceImpl<TaAnswerMapper, TaAnswer> implements ITaAnswerService {

+ 1
- 1
src/main/java/com/yunzhi/training/service/impl/TaAttachmentServiceImpl.java Просмотреть файл

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
12 12
  * </p>
13 13
  *
14 14
  * @author yansen
15
- * @since 2022-02-18
15
+ * @since 2022-02-21
16 16
  */
17 17
 @Service
18 18
 public class TaAttachmentServiceImpl extends ServiceImpl<TaAttachmentMapper, TaAttachment> implements ITaAttachmentService {

+ 19
- 0
src/main/java/com/yunzhi/training/service/impl/TaBannerServiceImpl.java Просмотреть файл

@@ -0,0 +1,19 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.yunzhi.training.entity.TaBanner;
4
+import com.yunzhi.training.mapper.TaBannerMapper;
5
+import com.yunzhi.training.service.ITaBannerService;
6
+import org.springframework.stereotype.Service;
7
+
8
+/**
9
+ * <p>
10
+ * Banner表 服务实现类
11
+ * </p>
12
+ *
13
+ * @author yansen
14
+ * @since 2022-02-21
15
+ */
16
+@Service
17
+public class TaBannerServiceImpl extends BaseServiceImpl<TaBannerMapper, TaBanner> implements ITaBannerService {
18
+
19
+}

+ 26
- 0
src/main/java/com/yunzhi/training/service/impl/TaCourseServiceImpl.java Просмотреть файл

@@ -0,0 +1,26 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaCourse;
5
+import com.yunzhi.training.mapper.TaCourseMapper;
6
+import com.yunzhi.training.service.ITaCourseService;
7
+import org.springframework.stereotype.Service;
8
+
9
+import java.time.LocalDateTime;
10
+
11
+/**
12
+ * <p>
13
+ * 课程表 服务实现类
14
+ * </p>
15
+ *
16
+ * @author yansen
17
+ * @since 2022-02-21
18
+ */
19
+@Service
20
+public class TaCourseServiceImpl extends BaseServiceImpl<TaCourseMapper, TaCourse> implements ITaCourseService {
21
+
22
+    @Override
23
+    public IPage<TaCourse> getPagedBy(IPage<TaCourse> pg, String client, String title, LocalDateTime start, LocalDateTime end) {
24
+        return baseMapper.getPagedBy(pg, client, title, start, end);
25
+    }
26
+}

+ 11
- 1
src/main/java/com/yunzhi/training/service/impl/TaPersonServiceImpl.java Просмотреть файл

@@ -1,5 +1,7 @@
1 1
 package com.yunzhi.training.service.impl;
2 2
 
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.yunzhi.training.common.Constants;
3 5
 import com.yunzhi.training.entity.TaPerson;
4 6
 import com.yunzhi.training.mapper.TaPersonMapper;
5 7
 import com.yunzhi.training.service.ITaPersonService;
@@ -12,9 +14,17 @@ import org.springframework.stereotype.Service;
12 14
  * </p>
13 15
  *
14 16
  * @author yansen
15
- * @since 2022-02-18
17
+ * @since 2022-02-21
16 18
  */
17 19
 @Service
18 20
 public class TaPersonServiceImpl extends ServiceImpl<TaPersonMapper, TaPerson> implements ITaPersonService {
19 21
 
22
+    @Override
23
+    public TaPerson getByOpenID(String openID) {
24
+        QueryWrapper<TaPerson> queryWrapper = new QueryWrapper<>();
25
+        queryWrapper.eq("openid", openID);
26
+        queryWrapper.gt("state", Constants.STATUS_DELETED);
27
+
28
+        return getOne(queryWrapper);
29
+    }
20 30
 }

+ 1
- 1
src/main/java/com/yunzhi/training/service/impl/TaQuePersonServiceImpl.java Просмотреть файл

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
12 12
  * </p>
13 13
  *
14 14
  * @author yansen
15
- * @since 2022-02-18
15
+ * @since 2022-02-21
16 16
  */
17 17
 @Service
18 18
 public class TaQuePersonServiceImpl extends ServiceImpl<TaQuePersonMapper, TaQuePerson> implements ITaQuePersonService {

+ 1
- 1
src/main/java/com/yunzhi/training/service/impl/TaQuestionPersonServiceImpl.java Просмотреть файл

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
12 12
  * </p>
13 13
  *
14 14
  * @author yansen
15
- * @since 2022-02-18
15
+ * @since 2022-02-21
16 16
  */
17 17
 @Service
18 18
 public class TaQuestionPersonServiceImpl extends ServiceImpl<TaQuestionPersonMapper, TaQuestionPerson> implements ITaQuestionPersonService {

+ 1
- 1
src/main/java/com/yunzhi/training/service/impl/TaQuestionServiceImpl.java Просмотреть файл

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
12 12
  * </p>
13 13
  *
14 14
  * @author yansen
15
- * @since 2022-02-18
15
+ * @since 2022-02-21
16 16
  */
17 17
 @Service
18 18
 public class TaQuestionServiceImpl extends ServiceImpl<TaQuestionMapper, TaQuestion> implements ITaQuestionService {

+ 1
- 1
src/main/java/com/yunzhi/training/service/impl/TaQuestionnaireServiceImpl.java Просмотреть файл

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
12 12
  * </p>
13 13
  *
14 14
  * @author yansen
15
- * @since 2022-02-18
15
+ * @since 2022-02-21
16 16
  */
17 17
 @Service
18 18
 public class TaQuestionnaireServiceImpl extends ServiceImpl<TaQuestionnaireMapper, TaQuestionnaire> implements ITaQuestionnaireService {

+ 46
- 0
src/main/java/com/yunzhi/training/service/impl/TaSchoolClassServiceImpl.java Просмотреть файл

@@ -0,0 +1,46 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.yunzhi.training.entity.TaSchoolClass;
6
+import com.yunzhi.training.mapper.TaSchoolClassMapper;
7
+import com.yunzhi.training.service.ITaSchoolClassService;
8
+import org.springframework.stereotype.Service;
9
+
10
+/**
11
+ * <p>
12
+ * 班级 服务实现类
13
+ * </p>
14
+ *
15
+ * @author yansen
16
+ * @since 2022-02-21
17
+ */
18
+@Service
19
+public class TaSchoolClassServiceImpl extends BaseServiceImpl<TaSchoolClassMapper, TaSchoolClass> implements ITaSchoolClassService {
20
+
21
+    @Override
22
+    public int countName(String termId, String name) {
23
+        QueryWrapper<TaSchoolClass> queryWrapper = new QueryWrapper<>();
24
+        queryWrapper.eq("term_id", termId);
25
+        queryWrapper.eq("name", name);
26
+        queryWrapper.gt("state", -1);
27
+
28
+        return count(queryWrapper);
29
+    }
30
+
31
+    @Override
32
+    public boolean checkOnly(TaSchoolClass taSchoolClass) {
33
+        QueryWrapper<TaSchoolClass> queryWrapper = new QueryWrapper<>();
34
+        queryWrapper.eq("term_id", taSchoolClass.getTermId());
35
+        queryWrapper.eq("name", taSchoolClass.getName());
36
+        queryWrapper.ne("class_id", taSchoolClass.getClassId());
37
+        queryWrapper.gt("state", -1);
38
+
39
+        return count(queryWrapper) < 1;
40
+    }
41
+
42
+    @Override
43
+    public IPage<TaSchoolClass> getPageBy(IPage<TaSchoolClass> pg, String termId, String name, String client) {
44
+        return baseMapper.getPageBy(pg, termId, name, client);
45
+    }
46
+}

+ 19
- 0
src/main/java/com/yunzhi/training/service/impl/TaSchoolTermServiceImpl.java Просмотреть файл

@@ -0,0 +1,19 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.yunzhi.training.entity.TaSchoolTerm;
4
+import com.yunzhi.training.mapper.TaSchoolTermMapper;
5
+import com.yunzhi.training.service.ITaSchoolTermService;
6
+import org.springframework.stereotype.Service;
7
+
8
+/**
9
+ * <p>
10
+ * 学期 服务实现类
11
+ * </p>
12
+ *
13
+ * @author yansen
14
+ * @since 2022-02-21
15
+ */
16
+@Service
17
+public class TaSchoolTermServiceImpl extends BaseServiceImpl<TaSchoolTermMapper, TaSchoolTerm> implements ITaSchoolTermService {
18
+
19
+}

+ 19
- 0
src/main/java/com/yunzhi/training/service/impl/TaSignInServiceImpl.java Просмотреть файл

@@ -0,0 +1,19 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.yunzhi.training.entity.TaSignIn;
4
+import com.yunzhi.training.mapper.TaSignInMapper;
5
+import com.yunzhi.training.service.ITaSignInService;
6
+import org.springframework.stereotype.Service;
7
+
8
+/**
9
+ * <p>
10
+ * 签到主表 服务实现类
11
+ * </p>
12
+ *
13
+ * @author yansen
14
+ * @since 2022-02-21
15
+ */
16
+@Service
17
+public class TaSignInServiceImpl extends BaseServiceImpl<TaSignInMapper, TaSignIn> implements ITaSignInService {
18
+
19
+}

+ 20
- 0
src/main/java/com/yunzhi/training/service/impl/TaSignPersonServiceImpl.java Просмотреть файл

@@ -0,0 +1,20 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.yunzhi.training.entity.TaSignPerson;
4
+import com.yunzhi.training.mapper.TaSignPersonMapper;
5
+import com.yunzhi.training.service.ITaSignPersonService;
6
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 人员签到表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author yansen
15
+ * @since 2022-02-21
16
+ */
17
+@Service
18
+public class TaSignPersonServiceImpl extends ServiceImpl<TaSignPersonMapper, TaSignPerson> implements ITaSignPersonService {
19
+
20
+}

+ 20
- 0
src/main/java/com/yunzhi/training/service/impl/TaSignPlainServiceImpl.java Просмотреть файл

@@ -0,0 +1,20 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.yunzhi.training.entity.TaSignPlain;
4
+import com.yunzhi.training.mapper.TaSignPlainMapper;
5
+import com.yunzhi.training.service.ITaSignPlainService;
6
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 预签到人员 服务实现类
12
+ * </p>
13
+ *
14
+ * @author yansen
15
+ * @since 2022-02-21
16
+ */
17
+@Service
18
+public class TaSignPlainServiceImpl extends ServiceImpl<TaSignPlainMapper, TaSignPlain> implements ITaSignPlainService {
19
+
20
+}

+ 24
- 0
src/main/java/com/yunzhi/training/service/impl/TaStudentServiceImpl.java Просмотреть файл

@@ -0,0 +1,24 @@
1
+package com.yunzhi.training.service.impl;
2
+
3
+import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.yunzhi.training.entity.TaStudent;
5
+import com.yunzhi.training.mapper.TaStudentMapper;
6
+import com.yunzhi.training.service.ITaStudentService;
7
+import org.springframework.stereotype.Service;
8
+
9
+/**
10
+ * <p>
11
+ * 学员表 服务实现类
12
+ * </p>
13
+ *
14
+ * @author yansen
15
+ * @since 2022-02-21
16
+ */
17
+@Service
18
+public class TaStudentServiceImpl extends BaseServiceImpl<TaStudentMapper, TaStudent> implements ITaStudentService {
19
+
20
+    @Override
21
+    public IPage<TaStudent> getPageBy(IPage<TaStudent> pg, String termId, String classId, String name, String phone) {
22
+        return baseMapper.getPageBy(pg, termId, classId, name, phone);
23
+    }
24
+}

+ 0
- 5
src/main/java/com/yunzhi/training/vo/TokenParam.java Просмотреть файл

@@ -23,9 +23,6 @@ public class TokenParam {
23 23
     @ApiModelProperty("原始值")
24 24
     String raw;
25 25
 
26
-    @ApiModelProperty("有效期")
27
-    Date exp;
28
-
29 26
     public static TokenParam fromMap(Map<String, Object> mapParams) {
30 27
         TokenParam tokenParam = new TokenParam();
31 28
 
@@ -33,11 +30,9 @@ public class TokenParam {
33 30
         Object u = mapParams.get("userId");
34 31
         Object o = mapParams.get("orgId");
35 32
         Object r = mapParams.get("raw");
36
-        Object e = mapParams.get("exp");
37 33
         tokenParam.setUserId(null == u ? null : u.toString());
38 34
         tokenParam.setOrgId(null == o ? null : o.toString());
39 35
         tokenParam.setRaw(null == r ? null : r.toString());
40
-        tokenParam.setExp(null == r ? null : (Date) r);
41 36
 
42 37
         return tokenParam;
43 38
     }

+ 9
- 4
src/main/resources/application.yml Просмотреть файл

@@ -29,19 +29,24 @@ aliyun:
29 29
   accessKeyId: LTAI5tGjnZY6k799BHxhmqcm
30 30
   accessKeySecret: eU1DmULbgHe2dnIg3P93634PO2vEh5
31 31
   oss:
32
-    roleSessionName: shigongli
32
+    roleSessionName: grid-training
33 33
     accessKeyId: LTAI4G9zCefU1m7sKmmBnzTc
34 34
     accessKeySecret: Vaax5O7wTL0KZdSgd8L9cGBf8AgUqJ
35 35
     arn: acs:ram::1636896505560465:role/ramosssts
36 36
     region: oss-cn-shanghai
37
-    endpoint: oss-accelerate.aliyuncs.com
38
-    bucketName: yz-shigongli
39
-    bucketURL: https://yz-shigongli.oss-accelerate.aliyuncs.com
37
+    endpoint: oss-cn-shanghai.aliyuncs.com
38
+    bucketName: yz-grid-training
39
+    bucketURL: https://yz-grid-training.oss-cn-shanghai.aliyuncs.com
40 40
   sms:
41 41
     captcha:
42 42
       code: SMS_195585471
43 43
       sign: 云致
44 44
 
45
+###
46
+yz:
47
+  mp:
48
+    openidAPI: https://api.h5.njyunzhi.com/mp/openid?code=%s
49
+
45 50
 ###
46 51
 spring:
47 52
   application:

src/main/resources/mapper/TaActivityMapper.xml → src/main/resources/mapper/TaBannerMapper.xml Просмотреть файл

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

+ 24
- 0
src/main/resources/mapper/TaCourseMapper.xml Просмотреть файл

@@ -0,0 +1,24 @@
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.yunzhi.training.mapper.TaCourseMapper">
4
+
5
+    <select id="getPagedBy" resultType="com.yunzhi.training.entity.TaCourse">
6
+        SELECT
7
+            *
8
+        FROM
9
+            ta_course t
10
+        WHERE
11
+            t.state &gt; - 1
12
+          <if test="client != null and client != ''">
13
+              AND t.state = 1
14
+          </if>
15
+        <if test="title != null and title != ''">
16
+            AND t.title LIKE CONCAT( '%', #{title}, '%' )
17
+        </if>
18
+        <if test="start != null">
19
+            AND t.start_date &lt; #{end}
20
+            AND t.end_date &gt; #{start}
21
+        </if>
22
+          ORDER BY t.create_date DESC
23
+    </select>
24
+</mapper>

+ 25
- 0
src/main/resources/mapper/TaSchoolClassMapper.xml Просмотреть файл

@@ -0,0 +1,25 @@
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.yunzhi.training.mapper.TaSchoolClassMapper">
4
+
5
+    <select id="getPageBy" resultType="com.yunzhi.training.entity.TaSchoolClass">
6
+        SELECT
7
+            t.*,
8
+            s.`name` AS term_name
9
+        FROM
10
+            ta_school_class t
11
+                INNER JOIN ta_school_term s ON s.term_id = t.term_id
12
+        WHERE
13
+            t.state > - 1
14
+          <if test="client == 'wx'">
15
+              AND t.state = 1
16
+          </if>
17
+          <if test="name != null and name != ''">
18
+              AND t.`name` LIKE CONCAT( '%', #{name}, '%' )
19
+          </if>
20
+          <if test="termId != null and termId != ''">
21
+              AND t.term_id = #{termId}
22
+          </if>
23
+            ORDER BY t.name ASC
24
+    </select>
25
+</mapper>

src/main/resources/mapper/TaActivitySignMapper.xml → src/main/resources/mapper/TaSchoolTermMapper.xml Просмотреть файл

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

+ 5
- 0
src/main/resources/mapper/TaSignInMapper.xml Просмотреть файл

@@ -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.yunzhi.training.mapper.TaSignInMapper">
4
+
5
+</mapper>

+ 5
- 0
src/main/resources/mapper/TaSignPersonMapper.xml Просмотреть файл

@@ -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.yunzhi.training.mapper.TaSignPersonMapper">
4
+
5
+</mapper>

+ 5
- 0
src/main/resources/mapper/TaSignPlainMapper.xml Просмотреть файл

@@ -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.yunzhi.training.mapper.TaSignPlainMapper">
4
+
5
+</mapper>

+ 33
- 0
src/main/resources/mapper/TaStudentMapper.xml Просмотреть файл

@@ -0,0 +1,33 @@
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.yunzhi.training.mapper.TaStudentMapper">
4
+
5
+    <select id="getPageBy" resultType="com.yunzhi.training.entity.TaStudent">
6
+        SELECT
7
+            t.*,
8
+            s.`name` AS term_name,
9
+            m.`name` AS class_name
10
+        FROM
11
+            ta_student t
12
+                LEFT JOIN ta_school_term s ON s.term_id = t.term_id
13
+                LEFT JOIN ta_school_class m ON m.class_id = t.class_id
14
+        WHERE
15
+            t.state &gt; - 1
16
+          <if test="termId != null and termId != ''">
17
+              AND t.term_id = #{termId}
18
+          </if>
19
+          <if test="classId != null and classId != ''">
20
+              AND t.class_id = #{classId}
21
+          </if>
22
+          <if test="name != null and name != ''">
23
+              AND t.`name` LIKE CONCAT( '%', #{name}, '%' )
24
+          </if>
25
+          <if test="phone != null and phone != ''">
26
+              AND t.phone LIKE CONCAT( '%', #{phone}, '%' )
27
+          </if>
28
+        ORDER BY
29
+            t.term_id ASC,
30
+            t.class_id ASC,
31
+            t.`name` ASC
32
+    </select>
33
+</mapper>