Browse Source

外部使用api

lyhzzz 2 years ago
parent
commit
4bd5492486
26 changed files with 1153 additions and 121 deletions
  1. 99 0
      src/main/java/com/fdkankan/manage/aop/DecryptRequestBodyAdapter.java
  2. 21 0
      src/main/java/com/fdkankan/manage/aop/EncryptFilter.java
  3. 83 0
      src/main/java/com/fdkankan/manage/aop/EncryptResponseBodyAdapter.java
  4. 5 0
      src/main/java/com/fdkankan/manage/common/ResultCode.java
  5. 1 1
      src/main/java/com/fdkankan/manage/config/SaTokenConfigure.java
  6. 36 0
      src/main/java/com/fdkankan/manage/controller/JySceneUserController.java
  7. 33 4
      src/main/java/com/fdkankan/manage/controller/JyUserController.java
  8. 0 24
      src/main/java/com/fdkankan/manage/controller/SceneUserController.java
  9. 0 20
      src/main/java/com/fdkankan/manage/controller/UserController.java
  10. 46 0
      src/main/java/com/fdkankan/manage/controller/external/ExternalAPIController.java
  11. 9 0
      src/main/java/com/fdkankan/manage/entity/JySceneUserAuth.java
  12. 5 2
      src/main/java/com/fdkankan/manage/entity/JyUser.java
  13. 2 0
      src/main/java/com/fdkankan/manage/service/ICameraDetailService.java
  14. 4 0
      src/main/java/com/fdkankan/manage/service/IJySceneUserAuthService.java
  15. 4 0
      src/main/java/com/fdkankan/manage/service/IJyUserService.java
  16. 0 3
      src/main/java/com/fdkankan/manage/service/IUserService.java
  17. 20 3
      src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java
  18. 46 1
      src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java
  19. 18 0
      src/main/java/com/fdkankan/manage/service/impl/JyUserServiceImpl.java
  20. 70 62
      src/main/java/com/fdkankan/manage/service/impl/UserServiceImpl.java
  21. 142 0
      src/main/java/com/fdkankan/manage/util/AesUtil.java
  22. 320 0
      src/main/java/com/fdkankan/manage/util/RsaUtils.java
  23. 54 0
      src/main/java/com/fdkankan/manage/util/StreamUtil.java
  24. 3 0
      src/main/java/com/fdkankan/manage/vo/request/UserParam.java
  25. 1 1
      src/main/resources/bootstrap.yml
  26. 131 0
      接口文档.md

+ 99 - 0
src/main/java/com/fdkankan/manage/aop/DecryptRequestBodyAdapter.java

@@ -0,0 +1,99 @@
+package com.fdkankan.manage.aop;
+
+import com.fdkankan.manage.util.AesUtil;
+import com.fdkankan.manage.util.RsaUtils;
+import com.fdkankan.manage.util.StreamUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.logging.log4j.util.Strings;
+import org.springframework.core.MethodParameter;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpInputMessage;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.mvc.method.annotation.RequestBodyAdviceAdapter;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
+/**
+ * <p>接口入参解密</p>
+ * RequestBodyAdvice可以理解为在@RequestBody之前需要进行的 操作,<br/>
+ * ResponseBodyAdvice可以理解为在@ResponseBody之后进行的操作;<br/>
+ * 所以当接口需要加解密时,在使用@RequestBody接收前台参数之前可以先在RequestBodyAdvice的实现类中进行参数的解密,<br/>
+ * 当操作结束需要返回数据时,可以在@ResponseBody之后进入ResponseBodyAdvice的实现类中进行参数的加密。<br/>
+ *
+ * @author lxiaol
+ * @date 2021年12月23日 14:05
+ */
+@RestControllerAdvice
+@Slf4j
+public class DecryptRequestBodyAdapter extends RequestBodyAdviceAdapter {
+
+    /**
+     * 该方法用于判断当前请求,是否要执行beforeBodyRead方法
+     *
+     * @param methodParameter handler方法的参数对象
+     * @param targetType      handler方法的参数类型
+     * @param converterType   将会使用到的Http消息转换器类类型
+     * @return 返回true则会执行beforeBodyRead
+     */
+    @Override
+    public boolean supports(MethodParameter methodParameter, Type targetType,
+                            Class<? extends HttpMessageConverter<?>> converterType) {
+        Method method = methodParameter.getMethod();
+        if (Objects.nonNull(method)) {
+            EncryptFilter encryptFilter = method.getAnnotation(EncryptFilter.class);
+            if (Objects.nonNull(encryptFilter)) {
+                return encryptFilter.decryptRequest();
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 在Http消息转换器执转换,之前执行
+     *
+     * @param inputMessage    客户端的请求数据
+     * @param methodParameter handler方法的参数对象
+     * @param targetType      handler方法的参数类型
+     * @param converterType   将会使用到的Http消息转换器类类型
+     * @return 返回 一个自定义的HttpInputMessage
+     */
+    @Override
+    public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter methodParameter, Type targetType,
+                                           Class<? extends HttpMessageConverter<?>> converterType) throws IOException {
+
+        // 读取加密的请求体
+        InputStream body = inputMessage.getBody();
+        HttpHeaders headers = inputMessage.getHeaders();
+        headers.remove("Content-Length");
+        String s = StreamUtil.getBodyString(body);
+        log.info("解密前请求body:" + s);
+        if (Strings.isNotEmpty(s)) {
+            // 使用AES解密
+            String bodyDec = AesUtil.desEncrypt(s);
+            log.info("解密后请求body:" + bodyDec);
+            if (Strings.isNotEmpty(bodyDec)) {
+                // 使用解密后的数据,构造新的读取流
+                InputStream inputStream = new ByteArrayInputStream(bodyDec.getBytes(StandardCharsets.UTF_8));
+                return new HttpInputMessage() {
+                    @Override
+                    public HttpHeaders getHeaders() {
+                        return inputMessage.getHeaders();
+                    }
+
+                    @Override
+                    public InputStream getBody() {
+                        return inputStream;
+                    }
+                };
+            }
+        }
+        return inputMessage;
+    }
+}

+ 21 - 0
src/main/java/com/fdkankan/manage/aop/EncryptFilter.java

@@ -0,0 +1,21 @@
+package com.fdkankan.manage.aop;
+
+import java.lang.annotation.*;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE, ElementType.METHOD})
+public @interface EncryptFilter {
+
+    /**
+     * 对入参是否解密
+     *
+     * @return
+     */
+    boolean decryptRequest() default true;
+
+    /**
+     * 对出参是否加密
+     */
+    boolean encryptResponse() default true;
+}

+ 83 - 0
src/main/java/com/fdkankan/manage/aop/EncryptResponseBodyAdapter.java

@@ -0,0 +1,83 @@
+package com.fdkankan.manage.aop;
+
+import com.alibaba.fastjson.JSON;
+import com.fdkankan.manage.util.AesUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.MethodParameter;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.server.ServerHttpRequest;
+import org.springframework.http.server.ServerHttpResponse;
+import org.springframework.lang.Nullable;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
+
+import java.lang.reflect.Method;
+import java.util.Objects;
+
+/**
+ * <p>接口出参加密</p>
+ * RequestBodyAdvice可以理解为在@RequestBody之前需要进行的 操作,<br/>
+ * ResponseBodyAdvice可以理解为在@ResponseBody之后进行的操作;<br/>
+ * 所以当接口需要加解密时,在使用@RequestBody接收前台参数之前可以先在RequestBodyAdvice的实现类中进行参数的解密,<br/>
+ * 当操作结束需要返回数据时,可以在@ResponseBody之后进入ResponseBodyAdvice的实现类中进行参数的加密。<br/>
+ *
+ * @author lxiaol
+ * @date 2021年12月24日 10:05
+ */
+//@RestControllerAdvice("com.example.springbootEncrypt.controller")
+// 表示com.example.springbootEncrypt.controller此包下的所有响应对象都会经过此拦截器,并对响应体加密
+@RestControllerAdvice
+@Slf4j
+public class EncryptResponseBodyAdapter implements ResponseBodyAdvice<Object> {
+
+
+    /**
+     * 该方法用于判断当前请求的返回值,是否要执行beforeBodyWrite方法
+     *
+     * @param methodParameter handler方法的参数对象
+     * @param converterType   将会使用到的Http消息转换器类类型
+     * @return 返回true则会执行beforeBodyWrite
+     */
+    @Override
+    public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> converterType) {
+        Method method = methodParameter.getMethod();
+        if (Objects.nonNull(method)) {
+            EncryptFilter encryptFilter = method.getAnnotation(EncryptFilter.class);
+            if (Objects.nonNull(encryptFilter)) {
+                return encryptFilter.encryptResponse();
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 在Http消息转换器执转换,之前执行
+     *
+     * @param body               服务端的响应数据
+     * @param methodParameter    handler方法的参数对象
+     * @param mediaType          响应的ContentType
+     * @param converterType      将会使用到的Http消息转换器类类型
+     * @param serverHttpRequest  serverHttpRequest
+     * @param serverHttpResponse serverHttpResponse
+     * @return 返回 一个自定义的HttpInputMessage,可以为null,表示没有任何响应
+     */
+    @Override
+    @Nullable
+    public Object beforeBodyWrite(@Nullable Object body, MethodParameter methodParameter, MediaType mediaType,Class<? extends HttpMessageConverter<?>> converterType,ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
+        log.info("处理请求地址:{} 的返回值", serverHttpRequest.getURI());
+        //获取请求数据
+        String srcData = JSON.toJSONString(body);
+        log.info("加密前响应body={}", srcData);
+        if (Objects.nonNull(body)) {
+            //加密
+            String returnStr = AesUtil.encrypt(srcData);
+            log.info("加密后响应body:" + returnStr);
+
+            //添加 encrypt 告诉前端数据已加密
+            //serverHttpResponse.getHeaders().add("encrypt", "e=a");
+            return returnStr;
+        }
+        return body;
+    }
+}

+ 5 - 0
src/main/java/com/fdkankan/manage/common/ResultCode.java

@@ -65,6 +65,11 @@ public enum ResultCode  {
     INCREMENT_TYPE_ERROR(50048, "权益类型错误!"),
     INCREMENT_TYPE_ERROR(50048, "权益类型错误!"),
     DEL_UCENTER_ERROR(50049, "该用户已绑定相机,请先解绑再删除用户。"),
     DEL_UCENTER_ERROR(50049, "该用户已绑定相机,请先解绑再删除用户。"),
 
 
+    JY_ID_NO_EXIST(60001, "警员ID不存在"),
+    AES_ENCRYPT_ERROR(60002, "aes加密失败"),
+    AES_DESENCRYPT_ERROR(60003, "aes解密失败"),
+
+
     ;
     ;
 
 
     private Integer code;
     private Integer code;

+ 1 - 1
src/main/java/com/fdkankan/manage/config/SaTokenConfigure.java

@@ -45,7 +45,7 @@ public class SaTokenConfigure {
     public SaServletFilter getSaServletFilter() {
     public SaServletFilter getSaServletFilter() {
         return new SaServletFilter()
         return new SaServletFilter()
                 // 指定 拦截路由 与 放行路由
                 // 指定 拦截路由 与 放行路由
-                .addInclude("/**").addExclude("/**/reMyselfPassword","/test/**")
+                .addInclude("/**").addExclude("/**/reMyselfPassword","/test/**","/**/external/**")
                 // 认证函数: 每次请求执行
                 // 认证函数: 每次请求执行
                 .setAuth(obj -> {
                 .setAuth(obj -> {
                     log.info("---------- 进入Sa-Token全局认证 -----------");
                     log.info("---------- 进入Sa-Token全局认证 -----------");

+ 36 - 0
src/main/java/com/fdkankan/manage/controller/JySceneUserController.java

@@ -0,0 +1,36 @@
+package com.fdkankan.manage.controller;
+
+import com.fdkankan.manage.common.Result;
+import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.entity.JySceneUserAuth;
+import com.fdkankan.manage.service.IJySceneUserAuthService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping("/service/manage/jy/sceneUserAuth")
+public class JySceneUserController {
+
+    @Autowired
+    IJySceneUserAuthService jySceneUserAuthService;
+
+    @GetMapping("/getAuthList")
+    public ResultData getAuthList(@RequestParam(required = false) String num){
+
+        return ResultData.ok(jySceneUserAuthService.getAuthList(num));
+    }
+
+
+    @PostMapping("/addAuth")
+    public ResultData addAuth(@RequestBody JySceneUserAuth param){
+        jySceneUserAuthService.addAuth(param);
+        return ResultData.ok();
+    }
+
+
+    @PostMapping("/delAuth")
+    public ResultData delAuth(@RequestBody JySceneUserAuth param){
+        jySceneUserAuthService.delAuth(param);
+        return ResultData.ok();
+    }
+}

+ 33 - 4
src/main/java/com/fdkankan/manage/controller/JyUserController.java

@@ -1,9 +1,14 @@
 package com.fdkankan.manage.controller;
 package com.fdkankan.manage.controller;
 
 
 
 
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
+import com.fdkankan.common.util.SecurityUtil;
+import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.service.IJyUserService;
+import com.fdkankan.manage.service.IUserService;
+import com.fdkankan.manage.vo.request.UserParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -14,8 +19,32 @@ import org.springframework.web.bind.annotation.RestController;
  * @since 2023-08-21
  * @since 2023-08-21
  */
  */
 @RestController
 @RestController
-@RequestMapping("/manage/jyUser")
+@RequestMapping("/service/manage/jy/user")
 public class JyUserController {
 public class JyUserController {
 
 
+    @Autowired
+    IJyUserService jyUserService;
+    @Autowired
+    IUserService userService;
+
+    @PostMapping("/getByRyId")
+    public ResultData getByRyId(@RequestBody JyUser param){
+
+        return ResultData.ok(jyUserService.getListByRyId(param.getRyId()));
+    }
+
+    @PostMapping("/addUcenterUser")
+    public ResultData addUcenterUser(@RequestBody UserParam userParam){
+        userService.addUcenterUser(userParam);
+        return ResultData.ok();
+    }
+
+    @PostMapping("/delUcenterUser")
+    public ResultData delUcenterUser(@RequestBody UserParam userParam){
+        userService.delUcenterUser(userParam);
+        return ResultData.ok();
+    }
+
+
 }
 }
 
 

+ 0 - 24
src/main/java/com/fdkankan/manage/controller/SceneUserController.java

@@ -1,24 +0,0 @@
-package com.fdkankan.manage.controller;
-
-import com.fdkankan.manage.common.Result;
-import com.fdkankan.manage.common.ResultData;
-import com.fdkankan.manage.service.IJySceneUserAuthService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping("/service/manage/sceneUserAuth")
-public class SceneUserController {
-
-    @Autowired
-    IJySceneUserAuthService jySceneUserAuthService;
-
-    @GetMapping("/getAuthList")
-    public ResultData getAuthList(@RequestParam(required = false) String num){
-
-        return ResultData.ok(jySceneUserAuthService.getAuthList(num));
-    }
-}

+ 0 - 20
src/main/java/com/fdkankan/manage/controller/UserController.java

@@ -123,26 +123,6 @@ public class UserController {
         return ResultData.ok();
         return ResultData.ok();
     }
     }
 
 
-    @PostMapping("/addUcenterUser")
-    public ResultData addUcenterUser(@RequestBody UserParam userParam){
-        userService.addUcenterUser(userParam);
-        return ResultData.ok();
-    }
-    @PostMapping("/updateUcenterUser")
-    public ResultData updateUcenterUser(@RequestBody UserParam userParam){
-        userService.updateUcenterUser(userParam);
-        return ResultData.ok();
-    }
 
 
-    @PostMapping("/delUcenterUser")
-    public ResultData delUcenterUser(@RequestBody UserParam userParam){
-        userService.delUcenterUser(userParam);
-        return ResultData.ok();
-    }
-    @PostMapping("/ReUcenterUserPassword")
-    public ResultData ReUcenterUserPassword(@RequestBody UserParam userParam){
-        userService.ReUcenterUserPassword(userParam);
-        return ResultData.ok();
-    }
 }
 }
 
 

+ 46 - 0
src/main/java/com/fdkankan/manage/controller/external/ExternalAPIController.java

@@ -0,0 +1,46 @@
+package com.fdkankan.manage.controller.external;
+
+import com.fdkankan.manage.aop.EncryptFilter;
+import com.fdkankan.manage.common.ResultData;
+import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.service.IJyUserService;
+import com.fdkankan.manage.service.IUserService;
+import com.fdkankan.manage.vo.request.UserParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/service/manage/external")
+public class ExternalAPIController {
+
+    @Autowired
+    IJyUserService jyUserService;
+    @Autowired
+    IUserService userService;
+
+    @PostMapping("/getByRyId")
+    @EncryptFilter(decryptRequest = true, encryptResponse = true)
+    public ResultData getByRyId(@RequestBody JyUser param){
+
+        return ResultData.ok(jyUserService.getByRyId(param.getRyId()));
+    }
+
+    @PostMapping("/addUcenterUser")
+    @EncryptFilter(decryptRequest = true, encryptResponse = true)
+    public ResultData addUcenterUser(@RequestBody UserParam userParam){
+        userService.addUcenterUser(userParam);
+        return ResultData.ok();
+    }
+
+
+    @PostMapping("/delUcenterUser")
+    @EncryptFilter(decryptRequest = true, encryptResponse = true)
+    public ResultData delUcenterUser(@RequestBody UserParam userParam){
+        userService.delUcenterUser(userParam);
+        return ResultData.ok();
+    }
+
+}

+ 9 - 0
src/main/java/com/fdkankan/manage/entity/JySceneUserAuth.java

@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Date;
 import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Getter;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.Setter;
 
 
@@ -53,12 +55,14 @@ public class JySceneUserAuth implements Serializable {
      * 浏览截止时间
      * 浏览截止时间
      */
      */
     @TableField("look_end_time")
     @TableField("look_end_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date lookEndTime;
     private Date lookEndTime;
 
 
     /**
     /**
      * 编辑截止时间
      * 编辑截止时间
      */
      */
     @TableField("edit_end_time")
     @TableField("edit_end_time")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date editEndTime;
     private Date editEndTime;
 
 
     /**
     /**
@@ -89,5 +93,10 @@ public class JySceneUserAuth implements Serializable {
     @TableField("update_time")
     @TableField("update_time")
     private Date updateTime;
     private Date updateTime;
 
 
+    @TableField(exist = false)
+    private String ryId;
+
+    @TableField(exist = false)
+    private String ryNickName;
 
 
 }
 }

+ 5 - 2
src/main/java/com/fdkankan/manage/entity/JyUser.java

@@ -46,11 +46,14 @@ public class JyUser implements Serializable {
     @TableField("ry_no")
     @TableField("ry_no")
     private String ryNo;
     private String ryNo;
 
 
+    @TableField("ry_nick_name")
+    private String ryNickName;
+
     @TableField("user_id")
     @TableField("user_id")
-    private Integer userId;
+    private Long userId;
 
 
     @TableField("sys_user_id")
     @TableField("sys_user_id")
-    private Integer sysUserId;
+    private Long sysUserId;
 
 
     @TableField("rec_status")
     @TableField("rec_status")
     @TableLogic(value = "A",delval = "I")
     @TableLogic(value = "A",delval = "I")

+ 2 - 0
src/main/java/com/fdkankan/manage/service/ICameraDetailService.java

@@ -41,4 +41,6 @@ public interface ICameraDetailService extends IService<CameraDetail> {
     List<CameraDetail> getByUserId(Long id);
     List<CameraDetail> getByUserId(Long id);
 
 
     void addUsedSpace(Long cameraId, Long space);
     void addUsedSpace(Long cameraId, Long space);
+
+    void giveSuperAdmin(Long userId);
 }
 }

+ 4 - 0
src/main/java/com/fdkankan/manage/service/IJySceneUserAuthService.java

@@ -14,4 +14,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 public interface IJySceneUserAuthService extends IService<JySceneUserAuth> {
 public interface IJySceneUserAuthService extends IService<JySceneUserAuth> {
 
 
     Object getAuthList(String num);
     Object getAuthList(String num);
+
+    void addAuth(JySceneUserAuth param);
+
+    void delAuth(JySceneUserAuth param);
 }
 }

+ 4 - 0
src/main/java/com/fdkankan/manage/service/IJyUserService.java

@@ -17,4 +17,8 @@ import java.util.List;
 public interface IJyUserService extends IService<JyUser> {
 public interface IJyUserService extends IService<JyUser> {
 
 
     HashMap<Integer, JyUser> getByIds(List<Integer> jyUserIds);
     HashMap<Integer, JyUser> getByIds(List<Integer> jyUserIds);
+
+    List<JyUser> getListByRyId(String ryId);
+
+    JyUser getByRyId(String ryId);
 }
 }

+ 0 - 3
src/main/java/com/fdkankan/manage/service/IUserService.java

@@ -36,7 +36,4 @@ public interface IUserService extends IService<User> {
 
 
     void delUcenterUser(UserParam userParam);
     void delUcenterUser(UserParam userParam);
 
 
-    void ReUcenterUserPassword(UserParam userParam);
-
-    void updateUcenterUser(UserParam userParam);
 }
 }

+ 20 - 3
src/main/java/com/fdkankan/manage/service/impl/CameraDetailServiceImpl.java

@@ -7,11 +7,9 @@ import com.fdkankan.common.constant.Constant;
 import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultCode;
+import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.common.CameraTypeEnum;
 import com.fdkankan.manage.common.CameraTypeEnum;
-import com.fdkankan.manage.entity.Camera;
-import com.fdkankan.manage.entity.CameraDetail;
-import com.fdkankan.manage.entity.User;
 import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.mapper.ICameraDetailMapper;
 import com.fdkankan.manage.mapper.ICameraDetailMapper;
 import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.service.*;
@@ -232,4 +230,23 @@ public class CameraDetailServiceImpl extends ServiceImpl<ICameraDetailMapper, Ca
         }
         }
         this.updateById(cameraDetail);
         this.updateById(cameraDetail);
     }
     }
+
+    @Override
+    public void giveSuperAdmin(Long userId) {
+        LambdaUpdateWrapper<CameraDetail> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(CameraDetail::getUserId,userId);
+        wrapper.set(CameraDetail::getUserId,1L);
+        this.update(wrapper);
+
+        LambdaUpdateWrapper<ScenePro> wrapper1 = new LambdaUpdateWrapper<>();
+        wrapper1.eq(ScenePro::getUserId,userId);
+        wrapper1.set(ScenePro::getUserId,1L);
+        sceneProService.update(wrapper1);
+
+        LambdaUpdateWrapper<ScenePlus> wrapper2 = new LambdaUpdateWrapper<>();
+        wrapper2.eq(ScenePlus::getUserId,userId);
+        wrapper2.set(ScenePlus::getUserId,1L);
+        scenePlusService.update(wrapper2);
+
+    }
 }
 }

+ 46 - 1
src/main/java/com/fdkankan/manage/service/impl/JySceneUserAuthServiceImpl.java

@@ -1,12 +1,15 @@
 package com.fdkankan.manage.service.impl;
 package com.fdkankan.manage.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.entity.JySceneUserAuth;
 import com.fdkankan.manage.entity.JySceneUserAuth;
 import com.fdkankan.manage.entity.JyUser;
 import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.mapper.IJySceneUserAuthMapper;
 import com.fdkankan.manage.mapper.IJySceneUserAuthMapper;
 import com.fdkankan.manage.service.IJySceneUserAuthService;
 import com.fdkankan.manage.service.IJySceneUserAuthService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.manage.service.IJyUserService;
 import com.fdkankan.manage.service.IJyUserService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -39,6 +42,48 @@ public class JySceneUserAuthServiceImpl extends ServiceImpl<IJySceneUserAuthMapp
         }
         }
         List<Integer> jyUserIds = list.stream().map(JySceneUserAuth::getJyUserId).collect(Collectors.toList());
         List<Integer> jyUserIds = list.stream().map(JySceneUserAuth::getJyUserId).collect(Collectors.toList());
         HashMap<Integer, JyUser> map = jyUserService.getByIds(jyUserIds);
         HashMap<Integer, JyUser> map = jyUserService.getByIds(jyUserIds);
-        return
+        for (JySceneUserAuth jySceneUserAuth : list) {
+            JyUser jyUser = map.get(jySceneUserAuth.getJyUserId());
+            if(jyUser != null){
+                jySceneUserAuth.setRyId(jyUser.getRyId());
+                jySceneUserAuth.setRyNickName(jyUser.getRyNickName());
+            }
+        }
+        return list;
+    }
+
+
+    @Override
+    public void addAuth(JySceneUserAuth param) {
+        if(StringUtils.isBlank(param.getRyId()) || StringUtils.isBlank(param.getNum()) ){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        JyUser jyUser = jyUserService.getByRyId(param.getRyId());
+        if(jyUser == null){
+            throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
+        }
+        JySceneUserAuth auth = this.getByNumAndJyId(jyUser.getId(),param.getNum());
+        if(auth != null){
+            param.setId(auth.getId());
+        }
+        this.saveOrUpdate(param);
+
+    }
+
+
+
+    @Override
+    public void delAuth(JySceneUserAuth param) {
+        if(param.getId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        this.removeById(param.getId());
+    }
+
+    private JySceneUserAuth getByNumAndJyId(Integer jyUserId, String num) {
+        LambdaQueryWrapper<JySceneUserAuth> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(JySceneUserAuth::getJyUserId,jyUserId);
+        wrapper.eq(JySceneUserAuth::getNum,num);
+        return this.getOne(wrapper);
     }
     }
 }
 }

+ 18 - 0
src/main/java/com/fdkankan/manage/service/impl/JyUserServiceImpl.java

@@ -1,10 +1,13 @@
 package com.fdkankan.manage.service.impl;
 package com.fdkankan.manage.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.entity.JyUser;
 import com.fdkankan.manage.entity.JyUser;
+import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.mapper.IJyUserMapper;
 import com.fdkankan.manage.mapper.IJyUserMapper;
 import com.fdkankan.manage.service.IJyUserService;
 import com.fdkankan.manage.service.IJyUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
@@ -32,4 +35,19 @@ public class JyUserServiceImpl extends ServiceImpl<IJyUserMapper, JyUser> implem
         }
         }
         return map;
         return map;
     }
     }
+
+    @Override
+    public List<JyUser> getListByRyId(String ryId) {
+
+        LambdaQueryWrapper<JyUser> wrapper = new LambdaQueryWrapper<>();
+        wrapper.like(JyUser::getRyId,ryId);
+        return this.list(wrapper);
+    }
+
+    @Override
+    public JyUser getByRyId(String ryId) {
+        LambdaQueryWrapper<JyUser> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(JyUser::getRyId,ryId);
+        return this.getOne(wrapper);
+    }
 }
 }

+ 70 - 62
src/main/java/com/fdkankan/manage/service/impl/UserServiceImpl.java

@@ -1,7 +1,7 @@
 package com.fdkankan.manage.service.impl;
 package com.fdkankan.manage.service.impl;
+import java.util.Date;
 import java.util.*;
 import java.util.*;
 
 
-import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,15 +11,13 @@ import com.fdkankan.common.util.SecurityUtil;
 import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.CacheUtil;
 import com.fdkankan.manage.common.OssPath;
 import com.fdkankan.manage.common.OssPath;
 import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultCode;
-import com.fdkankan.manage.entity.CameraDetail;
-import com.fdkankan.manage.entity.SysUser;
-import com.fdkankan.manage.entity.UserIncrement;
+import com.fdkankan.manage.entity.*;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.common.PageInfo;
 import com.fdkankan.manage.common.PageInfo;
-import com.fdkankan.manage.entity.User;
 import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.mapper.IUserMapper;
 import com.fdkankan.manage.mapper.IUserMapper;
 import com.fdkankan.manage.service.*;
 import com.fdkankan.manage.service.*;
+import com.fdkankan.manage.util.AesUtil;
 import com.fdkankan.manage.util.Dateutils;
 import com.fdkankan.manage.util.Dateutils;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.request.SceneParam;
 import com.fdkankan.manage.vo.request.UserIncrementParam;
 import com.fdkankan.manage.vo.request.UserIncrementParam;
@@ -60,6 +58,8 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
     private ISysUserService sysUserService;
     private ISysUserService sysUserService;
     @Value("${fyun.host:https://4dkk.4dage.com/}")
     @Value("${fyun.host:https://4dkk.4dage.com/}")
     private String host;
     private String host;
+    @Autowired
+    private IJyUserService jyUserService;
 
 
     @Override
     @Override
     public PageInfo pageList(UserParam param) {
     public PageInfo pageList(UserParam param) {
@@ -179,78 +179,86 @@ public class UserServiceImpl extends ServiceImpl<IUserMapper, User> implements I
 
 
     @Override
     @Override
     public synchronized void addUcenterUser(UserParam param) {
     public synchronized void addUcenterUser(UserParam param) {
-        if(StringUtils.isBlank(param.getUserName()) || StringUtils.isBlank(param.getNickName()) || StringUtils.isBlank(param.getPassword())){
+        if( StringUtils.isBlank(param.getNickName()) || StringUtils.isBlank(param.getPassword())
+            || StringUtils.isBlank(param.getRyId()) || StringUtils.isBlank(param.getRyNo())){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        Boolean ubo = this.checkUserName(param.getUserName());
-        if(ubo){
-            throw new BusinessException(ResultCode.USER_EXIST);
-        }
-        try {
-            String passwordMd5 = SecurityUtil.MD5(Base64Converter.decode(Base64Converter.subText(param.getPassword())));
-            User user = new User();
-            user.setHead(host + OssPath.default_head);
-            user.setPassword(passwordMd5);
-            user.setStatus(1);
-            user.setIsNotice(1);
-            user.setRegisterTime(new Date());
-            user.setUserName(param.getUserName());
-            user.setNickName(param.getNickName());
-            user.setCountry("86");
-            user.setDownloadNumTotal(1000);
-            user.setDownloadNum(0);
-            user.setCreateTime(Dateutils.getDate(new Date()));
-            user.setRecStatus("A");
-            user.setUpdateTime(Dateutils.getDate(new Date()));
-            user.setSysUserId(Long.valueOf((String) StpUtil.getLoginId()));
-            this.save(user);
+        String password = AesUtil.desEncrypt(param.getPassword());
+
+        String passwordMd5 = SecurityUtil.MD5(password);
 
 
-        }catch (Exception e){
-            log.error("ReUcenterUserPassword:error",e);
-            throw new BusinessException(ResultCode.PASSWORD_ERROR_G);
+        JyUser jyUser = jyUserService.getByRyId(param.getRyId());
+
+        if(jyUser == null){
+            jyUser = new JyUser();
         }
         }
 
 
+        User user = this.addUser(jyUser.getUserId(),passwordMd5, param.getRyNo(), param.getNickName());
+        SysUser sysUser = this.addSysUser(jyUser.getSysUserId(),passwordMd5, param.getRyNo(), param.getNickName());
+        jyUser.setRyId(param.getRyId());
+        jyUser.setRyPassword(passwordMd5);
+        jyUser.setRyNo(param.getRyNo());
+        jyUser.setRyNickName(param.getNickName());
+        jyUser.setUserId(user.getId());
+        jyUser.setSysUserId(sysUser.getId());
+        jyUser.setUpdateTime(null);
+        jyUserService.saveOrUpdate(jyUser);
+
     }
     }
 
 
-    @Override
-    public void delUcenterUser(UserParam userParam) {
-        if(userParam.getId() == null){
-            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
-        }
-        List<CameraDetail> list = cameraDetailService.getByUserId(userParam.getId());
-        if(list != null && list.size() >0){
-            throw new BusinessException(ResultCode.DEL_UCENTER_ERROR);
-        }
 
 
-        this.removeById(userParam.getId());
+
+    private User addUser(Long userId,String passwordMd5,String userName,String nickName){
+        User user = new User();
+        user.setId(userId);
+        user.setHead(host + OssPath.default_head);
+        user.setPassword(passwordMd5);
+        user.setStatus(1);
+        user.setIsNotice(1);
+        user.setRegisterTime(new Date());
+        user.setUserName(userName);
+        user.setNickName(nickName);
+        user.setCountry("86");
+        user.setDownloadNumTotal(1000);
+        user.setDownloadNum(0);
+        user.setCreateTime(Dateutils.getDate(new Date()));
+        user.setRecStatus("A");
+        user.setUpdateTime(Dateutils.getDate(new Date()));
+        user.setUpdateTime(null);
+        this.saveOrUpdate(user);
+        return user;
     }
     }
 
 
-    @Override
-    public void ReUcenterUserPassword(UserParam userParam) {
-        if(userParam.getId() == null || StringUtils.isBlank(userParam.getNewPassword())){
-            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+    private SysUser addSysUser(Long sysUserId,String passwordMd5, String ryNo, String nickName) {
+        SysUser sysUser = new SysUser();
+        sysUser.setId(sysUserId);
+        sysUser.setUserName(ryNo);
+        sysUser.setPassword(passwordMd5);
+        sysUser.setNickName(nickName);
+        if(sysUserId == null){
+            sysUser.setRoleId(45L);
         }
         }
-        try {
-            String passwordMd5 = SecurityUtil.MD5(Base64Converter.decode(Base64Converter.subText(userParam.getNewPassword())));
-            LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
-            wrapper.eq(User::getId,userParam.getId());
-            wrapper.set(User::getPassword,passwordMd5);
-            this.update(wrapper);
-        }catch (Exception e){
-            log.error("ReUcenterUserPassword:error",e);
-            throw new BusinessException(ResultCode.PASSWORD_ERROR_G);
-        }
-
+        sysUser.setUpdateTime(null);
+        sysUserService.saveOrUpdate(sysUser);
+        return sysUser;
     }
     }
 
 
     @Override
     @Override
-    public void updateUcenterUser(UserParam userParam) {
-        if(userParam.getId() == null || StringUtils.isBlank(userParam.getNickName())){
+    public void delUcenterUser(UserParam userParam) {
+        if(StringUtils.isNotBlank(userParam.getRyId())){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
         }
-        LambdaUpdateWrapper<User> wrapper = new LambdaUpdateWrapper<>();
-        wrapper.eq(User::getId,userParam.getId());
-        wrapper.set(User::getNickName,userParam.getNickName());
-        this.update(wrapper);
+        JyUser jyuser = jyUserService.getByRyId(userParam.getRyId());
+        if(jyuser == null){
+            throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
+        }
+
+        //将相机和场景归属超管
+        cameraDetailService.giveSuperAdmin(jyuser.getUserId());
+
+        this.removeById(jyuser.getUserId());
+        jyUserService.removeById(jyuser.getId());
+        sysUserService.removeById(jyuser.getSysUserId());
+
     }
     }
 }
 }

+ 142 - 0
src/main/java/com/fdkankan/manage/util/AesUtil.java

@@ -0,0 +1,142 @@
+package com.fdkankan.manage.util;
+
+import java.util.Random;
+import java.util.UUID;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+
+import com.fdkankan.manage.common.ResultCode;
+import com.fdkankan.manage.exception.BusinessException;
+import org.apache.commons.codec.binary.Base64;
+
+/**
+ * AES 128bit 加密解密工具类
+ */
+public class AesUtil {
+    //使用AES-128-CBC加密模式,key需要为16位,key和iv可以相同!
+
+    public static String key = "0000001210830863";
+
+    public static String iv = "1xo1ub7m2rsz92ev";
+
+    public static String pwKey = "0000000856753656";
+
+    public static String pwIv = "pwel781esd6wglxm";
+    /**
+     * 加密方法
+     * @param data  要加密的数据
+     * @param key 加密key
+     * @param iv 加密iv
+     * @return 加密的结果
+     * @throws Exception
+     */
+    public static String encrypt(String data, String key, String iv)  {
+        try {
+
+            Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");//"算法/模式/补码方式"
+            int blockSize = cipher.getBlockSize();
+
+            byte[] dataBytes = data.getBytes();
+            int plaintextLength = dataBytes.length;
+            if (plaintextLength % blockSize != 0) {
+                plaintextLength = plaintextLength + (blockSize - (plaintextLength % blockSize));
+            }
+
+            byte[] plaintext = new byte[plaintextLength];
+            System.arraycopy(dataBytes, 0, plaintext, 0, dataBytes.length);
+
+            SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+            IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
+
+            cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec);
+            byte[] encrypted = cipher.doFinal(plaintext);	// 加密
+
+            return new Base64().encodeToString(encrypted); 	//通过Base64转码返回
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException(ResultCode.AES_ENCRYPT_ERROR);
+        }
+    }
+
+    public static String encrypt(String data) {
+        return encrypt(data,key,iv);
+    }
+
+        /**
+         * 解密方法
+         * @param data 要解密的数据
+         * @param key  解密key
+         * @param iv 解密iv
+         * @return 解密的结果
+         * @throws Exception
+         */
+    public static String desEncrypt(String data, String key, String iv)  {
+        try {
+            byte[] encrypted1 = new Base64().decode(data);
+
+            Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
+            SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES");
+            IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes());
+
+            cipher.init(Cipher.DECRYPT_MODE, keyspec, ivspec); //使用密钥初始化,设置为解密模式
+
+            byte[] original = cipher.doFinal(encrypted1);	//执行操作
+            String originalString = new String(original);
+            return originalString;
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BusinessException(ResultCode.AES_DESENCRYPT_ERROR);
+
+        }
+    }
+
+    public static String desEncrypt(String data) {
+        return desEncrypt(data,key,iv);
+    }
+
+    /**
+     *   用于生成一组16位随机数 key
+     * @return
+     */
+    public static String getRandomStringKey() {
+        int hashCodeValue = UUID.randomUUID().hashCode();
+        if(hashCodeValue < 0) hashCodeValue = -hashCodeValue;
+        return String.format("%016d",hashCodeValue);//左边补0,16位,进制(d,x)
+    }
+
+    /**
+     *   用于生成16位的随机数 iv
+     * @return
+     */
+    public static String getRandomStringIv(){
+        String base = "abcdefghijklmnopqrstuvwxyz0123456789";
+        Random random=new Random();
+        StringBuffer key = new StringBuffer();
+        for(int i=0;i<16;i++){
+            int keyNumber = random.nextInt(base.length());
+            key.append(base.charAt(keyNumber));
+        }
+        return key.toString();
+    }
+
+
+    /**
+     * 测试
+     */
+    public static void main(String args[]) throws Exception {
+        String data = "  {\n" +
+                "        \"ryId\": \"123\"   " +
+                "   }";
+        //String key = getRandomStringKey();  //0000001210830863
+        //String iv = getRandomStringIv();    //1xo1ub7m2rsz92ev
+
+        String enData = encrypt(data, key, iv);
+
+        System.out.println(enData);
+        System.out.println(desEncrypt(enData, key, iv));
+    }
+}
+

File diff suppressed because it is too large
+ 320 - 0
src/main/java/com/fdkankan/manage/util/RsaUtils.java


+ 54 - 0
src/main/java/com/fdkankan/manage/util/StreamUtil.java

@@ -0,0 +1,54 @@
+package com.fdkankan.manage.util;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Objects;
+
+/**
+ * 流工具类
+ * @author lxiaol
+ * @date 2021年12月23日 18:11
+ */
+@Slf4j
+public class StreamUtil {
+    private static final Integer BUFFER_SIZE = 128;
+
+    /**
+     * 将requestBody的数据转成字符串
+     *
+     * @param inputStream
+     * @return
+     */
+    public static String getBodyString(InputStream inputStream) {
+        StringBuilder stringBuilder = new StringBuilder();
+        BufferedReader bufferedReader = null;
+        try {
+            if (Objects.nonNull(inputStream)) {
+                bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
+                int bytesRead;
+                char[] charBuffer = new char[BUFFER_SIZE];
+                while ((bytesRead = bufferedReader.read(charBuffer)) != -1) {
+                    stringBuilder.append(charBuffer, 0, bytesRead);
+                }
+            }
+        } catch (IOException e) {
+            log.error("get body fail,{}", e.getMessage());
+            throw new RuntimeException(e);
+        } finally {
+            if (bufferedReader != null) {
+                try {
+                    bufferedReader.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+
+            }
+        }
+        return stringBuilder.toString();
+    }
+
+}

+ 3 - 0
src/main/java/com/fdkankan/manage/vo/request/UserParam.java

@@ -13,4 +13,7 @@ public class UserParam extends RequestBase {
 
 
     private String password;
     private String password;
     private String newPassword;
     private String newPassword;
+
+    private String ryId;
+    private String ryNo;
 }
 }

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -1,6 +1,6 @@
 spring:
 spring:
   profiles:
   profiles:
-    active: local-kj
+    active: test
 logging:
 logging:
   config: classpath:logback-spring.xml
   config: classpath:logback-spring.xml
 mybatis-plus:
 mybatis-plus:

+ 131 - 0
接口文档.md

@@ -0,0 +1,131 @@
+   ## **4dkankan相关API文档** 
+ 
+ **简介**:**4dkankan相关API文档** 
+ 
+ **HOST**: http://192.168.0.25/service/manage/external
+ 
+ **加解密规则:aes加解密 AES/CBC/NoPadding - 算法/模式/补码方式**
+    ***key = 0000001210830863   iv = 1xo1ub7m2rsz92ev***
+ 
+ 
+ **入参规则**:使用aes加密全部参数传递,解密返回信息
+ 
+ **Version**:1.0.0
+ 
+ ## 1、根据人员ID获取用户信息
+ 
+ **接口地址** `/getByRyId`
+ 
+ **请求方式** `POST`
+ 
+ 
+ **请求参数**   
+ 
+ **Headers**
+ 
+ | 参数名称      | 参数值	      | 是否必须 | 数据类型     | 示例     |
+ | ------------ | -----------   | -------- | -------     | -----    |
+ | Content-Type	 | application/json	   | 是 | -------     | -----    |
+ 
+
+ **body**   
+ ```json
+  {
+        "ryId": "123"   //人员ID,必填
+   }
+ ```
+ 
+ 
+ **响应示例**
+ 
+ 
+ ```json
+{
+  "code": 0,             
+  "message": "操作成功",
+  "data": {
+  } ,    
+  "success": true,
+  "timestamp": 1655707020322
+}
+ ```
+
+
+ ## 2、添加或修改用户
+ 
+ **接口地址** `/addUcenterUser`
+ 
+ **请求方式** `POST`
+ 
+ **密码加解密规则:aes加解密   AES/CBC/NoPadding**
+ 
+   ***key = 0000000856753656 iv = pwel781esd6wglxm***
+ 
+ **请求参数**   
+ 
+ **Headers**
+ 
+ | 参数名称      | 参数值	      | 是否必须 | 数据类型     | 示例     |
+ | ------------ | -----------   | -------- | -------     | -----    |
+ | Content-Type	 | application/json	   | 是 | -------     | -----    | 
+ 
+  **body**   
+ ```json
+{
+    "ryId":"123",  //人员ID,不存在新增,存在修改以下信息
+    "ryNo":"bh123",  //人员编号
+    "nickName":"昵称",  //姓名
+    "password":"密码"  //密码使用aes单独加密
+}
+ ```
+ 
+ 
+ **响应示例**
+ 
+ 
+ ```json
+{
+  "code": 0,             
+  "message": "操作成功",
+  "data": {},   
+  "success": true,
+  "timestamp": 1655707020322
+}
+ ```
+
+
+ ## 3、删除用户,停用用户
+ 
+ **接口地址** `/delUcenterUser`
+ 
+ **请求方式** `POST`
+ 
+ 
+ **请求参数**   
+ 
+ **Headers**
+ 
+ | 参数名称      | 参数值	      | 是否必须 | 数据类型     | 示例     |
+ | ------------ | -----------   | -------- | -------     | -----    |
+ | Content-Type	 | application/json	   | 是 | -------     | -----    | 
+ 
+  **body**   
+ ```json
+{
+    "ryId":"123"          //人员ID
+}
+ ```
+ 
+ 
+ **响应示例**
+ 
+ 
+ ```json
+{
+  "code": 0,             
+  "message": "操作成功",
+  "data": null,    
+  "success": true,
+  "timestamp": 1655707020322
+}
+ ```