From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:22:45 +0800
Subject: [PATCH] 描述
---
src/main/java/com/gk/firework/Controller/AuthorizationController.java | 145 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 145 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Controller/AuthorizationController.java b/src/main/java/com/gk/firework/Controller/AuthorizationController.java
new file mode 100644
index 0000000..0ddcddf
--- /dev/null
+++ b/src/main/java/com/gk/firework/Controller/AuthorizationController.java
@@ -0,0 +1,145 @@
+package com.gk.firework.Controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.gk.firework.Controller.Base.BaseController;
+import com.gk.firework.Domain.AuthorizationInfo;
+import com.gk.firework.Domain.Enterprise;
+import com.gk.firework.Domain.Enum.ErrorCode;
+import com.gk.firework.Domain.UserInfo;
+import com.gk.firework.Domain.Utils.Msg;
+import com.gk.firework.Domain.Utils.StringUtils;
+import com.gk.firework.Service.AuthorizationService;
+import com.gk.firework.Service.EnterpriseService;
+import com.gk.firework.Service.UserService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author : jingjy
+ * @date : 2021/7/2 14:31
+ */
+@Api("授权码")
+@RequestMapping("auth")
+@RestController
+public class AuthorizationController extends BaseController {
+ @Autowired
+ private AuthorizationService authorizationService;
+ @Autowired
+ private EnterpriseService enterpriseService;
+ @Autowired
+ private UserService userService;
+
+ @GetMapping("/list")
+ public Msg getAuthListByEnterpriseId(@RequestParam("userId") String userId) {
+ if (StringUtils.isBlank(userId)) {
+ return new Msg(ErrorCode.ERROR_10001);
+ }
+ UserInfo userInfo = userService.getById(userId);
+ if (userInfo == null) {
+ return new Msg(ErrorCode.ERROR_50001);
+ }
+ List<AuthorizationInfo> authorizationInfo = authorizationService.getAuthByEnterprise(userInfo.getCompanynumber());
+ return success(authorizationInfo);
+ }
+
+ @PostMapping("/create")
+ public Msg createAuth(@RequestBody JSONObject jsonObject) {
+ String userId = jsonObject.getString("userId");
+ String contractCode = jsonObject.getString("contractCode");
+ Byte flag = jsonObject.getByte("flag");
+ if (StringUtils.isBlank(userId)) {
+ return new Msg(ErrorCode.ERROR_10001);
+ }
+ UserInfo userInfo = userService.getById(userId);
+ if (userInfo == null) {
+ return new Msg(ErrorCode.ERROR_50001);
+ }
+ if (StringUtils.isBlank(contractCode)) {
+ return new Msg(ErrorCode.ERROR_10002, "合同编号不能为空");
+ }
+ AuthorizationInfo authorizationInfo = new AuthorizationInfo();
+ List<AuthorizationInfo> authorizationExist = authorizationService.getAuthByEnterprise(userInfo.getCompanynumber());
+ String prefix;
+ if (authorizationExist.size() > 0) {
+ //企业已经生成过授权码,则使用第一次生成的前缀
+ prefix = authorizationExist.get(0).getAuthcodeprefix();
+ } else {
+ //未生成则随机生成,不能重复
+ String str;
+ str = randomLetter(3);
+ boolean isPrefixExist;
+ isPrefixExist = authorizationService.checkPrefixExist(str);
+ while (isPrefixExist) {
+ str = randomLetter(3);
+ isPrefixExist = authorizationService.checkPrefixExist(str);
+ }
+ prefix = str;
+ }
+ String suffix;
+ suffix = randomLetter(3);
+ boolean isAuthCodeExist;
+ isAuthCodeExist = authorizationService.checkCodeExist(prefix + suffix);
+ while (isAuthCodeExist) {
+ suffix = randomLetter(3);
+ isAuthCodeExist = authorizationService.checkCodeExist(prefix + suffix);
+ }
+ authorizationInfo.setAuthcode(prefix+suffix);
+ authorizationInfo.setAuthcodeprefix(prefix);
+ authorizationInfo.setFlag(flag);
+ authorizationInfo.setEnterprisenumber(userInfo.getCompanynumber());
+ authorizationInfo.setContractcode(contractCode);
+ authorizationInfo.setCreatedat(new Date());
+ authorizationInfo.setCreatedby(userService.getById(getUser().getId()).getUsername());
+ authorizationInfo.setStatus((byte)1);
+ authorizationService.save(authorizationInfo);
+ return success();
+ }
+
+ @PostMapping("status")
+ public Msg changeStatus(@RequestBody JSONObject jsonObject){
+ String id = jsonObject.getString("id");
+ String status = jsonObject.getString("status");
+ if (!"0".equals(status) && !"1".equals(status)){
+ return new Msg(ErrorCode.ERROR_10004);
+ }
+ if (StringUtils.isBlank(id)){
+ return new Msg(ErrorCode.ERROR_10002);
+ }
+ AuthorizationInfo authorizationInfo = authorizationService.getById(id);
+ if (authorizationInfo == null){
+ return new Msg(ErrorCode.ERROR_50001);
+ }
+ authorizationInfo.setStatus(Byte.parseByte(status));
+ authorizationService.updateById(authorizationInfo);
+ return success();
+ }
+
+ @PostMapping("delete")
+ public Msg deleteAuth(@RequestBody JSONObject jsonObject){
+ String id = jsonObject.getString("id");
+ if (StringUtils.isBlank(id)){
+ return new Msg(ErrorCode.ERROR_10002);
+ }
+ AuthorizationInfo authorizationInfo = authorizationService.getById(id);
+ if (authorizationInfo == null){
+ return new Msg(ErrorCode.ERROR_50001);
+ }
+ authorizationService.removeById(id);
+ return success();
+ }
+ /**
+ * @param n 随机字符串长度
+ * @return 生成的随机字符串
+ */
+ private String randomLetter(int n) {
+ StringBuilder str = new StringBuilder();
+ for (int i = 0; i < n; i++) {
+ str.append((char) (Math.random() * 26 + 'A'));
+ }
+ return str.toString();
+ }
+}
--
Gitblit v1.9.2