InnerAPIController.java 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. package com.fdkankan.manage.controller.inner;
  2. import cn.hutool.extra.servlet.ServletUtil;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.fdkankan.manage.common.PageInfo;
  6. import com.fdkankan.manage.common.ResultCode;
  7. import com.fdkankan.manage.common.ResultData;
  8. import com.fdkankan.manage.controller.BaseController;
  9. import com.fdkankan.manage.entity.JySceneAuth;
  10. import com.fdkankan.manage.entity.JySceneUserAuth;
  11. import com.fdkankan.manage.entity.JyUser;
  12. import com.fdkankan.manage.entity.UserShareParam;
  13. import com.fdkankan.manage.exception.BusinessException;
  14. import com.fdkankan.manage.service.*;
  15. import com.fdkankan.manage.util.RsaUtils;
  16. import com.fdkankan.manage.vo.request.SceneParam;
  17. import com.fdkankan.manage.vo.request.UserParam;
  18. import com.fdkankan.manage.vo.response.UserAuthSceneVo;
  19. import com.fdkankan.manage.vo.response.UserShareSceneVo;
  20. import org.apache.commons.lang3.StringUtils;
  21. import org.springframework.beans.factory.annotation.Autowired;
  22. import org.springframework.web.bind.annotation.*;
  23. import java.util.ArrayList;
  24. import java.util.HashMap;
  25. import java.util.HashSet;
  26. import java.util.List;
  27. import java.util.stream.Collectors;
  28. @RestController
  29. @RequestMapping("/service/manage/inner")
  30. public class InnerAPIController extends BaseController {
  31. @Autowired
  32. IJyUserService jyUserService;
  33. @Autowired
  34. IUserService userService;
  35. @Autowired
  36. IJySceneUserAuthService jySceneUserAuthService;
  37. @Autowired
  38. IScenePlusService scenePlusService;
  39. @Autowired
  40. IJyUserShareService jyUserShareService;
  41. @Autowired
  42. IJySceneAuthService jySceneAuthService;
  43. @PostMapping("/getByRyId")
  44. public ResultData getByRyId(@RequestBody UserParam param){
  45. if(StringUtils.isBlank(param.getRyNo()) && StringUtils.isBlank(param.getRyId())){
  46. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  47. }
  48. JyUser jyuser = null;
  49. if(StringUtils.isNotBlank(param.getRyId())){
  50. jyuser = jyUserService.getByRyId(param.getRyId());
  51. if(jyuser == null){
  52. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  53. }
  54. }
  55. if(StringUtils.isNotBlank(param.getRyNo())){
  56. jyuser = jyUserService.getByRyNo(param.getRyNo());
  57. if(jyuser == null){
  58. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  59. }
  60. }
  61. return ResultData.ok(jyuser);
  62. }
  63. @PostMapping("/getByRyNo")
  64. public ResultData getByRyNo(@RequestBody UserParam param){
  65. return ResultData.ok(jyUserService.getByRyNo(param.getRyNo()));
  66. }
  67. @PostMapping("/updateStatus")
  68. public ResultData updateStatus(@RequestBody UserParam userParam){
  69. userService.updateStatus(userParam);
  70. return ResultData.ok();
  71. }
  72. @PostMapping("/addUcenterUser")
  73. public ResultData addUcenterUser(@RequestBody UserParam param){
  74. userService.addUcenterUser(param);
  75. return ResultData.ok();
  76. }
  77. @PostMapping("/delUcenterUser")
  78. public ResultData delUcenterUser(@RequestBody UserParam param){
  79. userService.delUcenterUser(param);
  80. return ResultData.ok();
  81. }
  82. @PostMapping("/addAuth")
  83. public ResultData addAuth(@RequestBody JySceneUserAuth param){
  84. param.setCanDel(1);
  85. jySceneUserAuthService.addAuth(param);
  86. return ResultData.ok();
  87. }
  88. @PostMapping("/setAuthType")
  89. public ResultData setAuthType(@RequestBody JySceneUserAuth param){
  90. jySceneUserAuthService.setAuthType(param);
  91. return ResultData.ok();
  92. }
  93. @PostMapping("/delAuth")
  94. public ResultData delAuth(@RequestBody JySceneUserAuth param){
  95. if(StringUtils.isBlank(param.getNum()) || (StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo()))){
  96. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  97. }
  98. JySceneUserAuth db = null;
  99. if(StringUtils.isNotBlank(param.getRyId())){
  100. db = jySceneUserAuthService.getByNumAndRyId(param.getNum(),param.getRyId());
  101. }
  102. if(StringUtils.isNotBlank(param.getRyNo())){
  103. db = jySceneUserAuthService.getByNumAndRyNo(param.getNum(),param.getRyNo());
  104. }
  105. if(db == null){
  106. throw new BusinessException(ResultCode.DEL_AUTH_ERROR);
  107. }
  108. jySceneUserAuthService.delAuth(db);
  109. return ResultData.ok();
  110. }
  111. @PostMapping("/checkAuthOther")
  112. public ResultData checkAuthOther(@RequestBody JySceneUserAuth param){
  113. return ResultData.ok(jySceneUserAuthService.checkAuthOther(param));
  114. }
  115. @GetMapping("/checkNumAuth/{num}")
  116. public ResultData checkNumAuth(@PathVariable String num){
  117. String clientIP = ServletUtil.getClientIP(request);
  118. return ResultData.ok( jySceneUserAuthService.checkNumAuth(num,getToken(),clientIP,getUserName(),getPassword()));
  119. }
  120. @PostMapping("/checkNumAuth")
  121. public ResultData checkNumAuth(@RequestBody JSONObject object){
  122. String clientIP = ServletUtil.getClientIP(request);
  123. return ResultData.ok( jySceneUserAuthService.checkNumAuth(object.getString("num"),getToken(),clientIP,object.getString("userName"),object.getString("password")));
  124. }
  125. @PostMapping("/getAuthType")
  126. public ResultData getAuthType(@RequestBody SceneParam param){
  127. return ResultData.ok(jySceneUserAuthService.getAuthType(param));
  128. }
  129. @PostMapping("/getAuthList")
  130. public ResultData getAuthList(@RequestBody SceneParam param){
  131. if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
  132. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  133. }
  134. if(StringUtils.isBlank(param.getNum())){
  135. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  136. }
  137. JySceneAuth jySceneAuth = jySceneAuthService.getByNum(param.getNum());
  138. if(jySceneAuth == null){
  139. return ResultData.ok(PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize()));
  140. }
  141. param.setAuthType(jySceneAuth.getAuthType());
  142. return ResultData.ok(jySceneUserAuthService.getAuthList(param));
  143. }
  144. @PostMapping("/getSceneList")
  145. public ResultData getSceneList(@RequestBody SceneParam param){
  146. if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
  147. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  148. }
  149. JyUser jyUser = null;
  150. if(StringUtils.isNotBlank(param.getRyId()) ){
  151. jyUser = jyUserService.getByRyId(param.getRyId());
  152. if(jyUser == null){
  153. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  154. }
  155. }
  156. if(StringUtils.isNotBlank(param.getRyNo()) ){
  157. jyUser = jyUserService.getByRyNo(param.getRyNo());
  158. if(jyUser == null){
  159. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  160. }
  161. }
  162. if(jyUser == null){
  163. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  164. }
  165. UserShareParam shareParam = new UserShareParam();
  166. shareParam.setJyUserId(Math.toIntExact(jyUser.getUserId()));
  167. shareParam.setPageNum(param.getPageNum());
  168. shareParam.setPageSize(param.getPageSize());
  169. Page<UserShareSceneVo> page= jyUserShareService.sceneList(shareParam);
  170. List<String> numList = page.getRecords().stream().map(UserShareSceneVo::getNum).collect(Collectors.toList());
  171. HashMap<String, JySceneAuth> authMap = jySceneAuthService.getByNumList(numList);
  172. HashMap<String, List<JySceneUserAuth>> userSceneAuthMap = jySceneUserAuthService.getByNumList(numList);
  173. HashSet<Integer> userIds = new HashSet<>();
  174. for (String key : userSceneAuthMap.keySet()) {
  175. List<JySceneUserAuth> userAuths = userSceneAuthMap.get(key);
  176. for (JySceneUserAuth userAuth : userAuths) {
  177. userIds.add(userAuth.getJyUserId());
  178. }
  179. }
  180. HashMap<Integer, JyUser> userHashMap = jyUserService.getByIds(new ArrayList<>(userIds));
  181. for (UserShareSceneVo record : page.getRecords()) {
  182. JySceneAuth jySceneAuth = authMap.get(record.getNum());
  183. if(jySceneAuth != null){
  184. record.setAuthType(jySceneAuth.getAuthType());
  185. List<JySceneUserAuth> userAuths = userSceneAuthMap.get(record.getNum()+"_"+jySceneAuth.getAuthType());
  186. if(userAuths != null && !userAuths.isEmpty()){
  187. for (JySceneUserAuth userAuth : userAuths) {
  188. JyUser jyUser1 = userHashMap.get(userAuth.getJyUserId());
  189. if(jyUser1 != null){
  190. userAuth.setRyId(jyUser1.getRyId());
  191. userAuth.setRyNo(jyUser1.getRyNo());
  192. userAuth.setRyNickName(jyUser1.getRyNickName());
  193. }
  194. }
  195. record.setAuthList(userAuths);
  196. }
  197. }
  198. }
  199. return ResultData.ok(PageInfo.PageInfo(page));
  200. }
  201. @PostMapping("/getAuthSceneList")
  202. public ResultData getAuthSceneList(@RequestBody SceneParam param){
  203. if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
  204. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  205. }
  206. JyUser jyUser = null;
  207. if(StringUtils.isNotBlank(param.getRyId()) ){
  208. jyUser = jyUserService.getByRyId(param.getRyId());
  209. if(jyUser == null){
  210. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  211. }
  212. }
  213. if(StringUtils.isNotBlank(param.getRyNo()) ){
  214. jyUser = jyUserService.getByRyNo(param.getRyNo());
  215. if(jyUser == null){
  216. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  217. }
  218. }
  219. if(jyUser == null){
  220. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  221. }
  222. UserShareParam shareParam = new UserShareParam();
  223. shareParam.setPageNum(param.getPageNum());
  224. shareParam.setPageSize(param.getPageSize());
  225. shareParam.setJyUserId(jyUser.getId());
  226. Page<UserAuthSceneVo> page= jyUserShareService.sceneAuthVoList(shareParam);
  227. List<String> numList = page.getRecords().stream().map(UserAuthSceneVo::getNum).collect(Collectors.toList());
  228. HashMap<String, List<JySceneUserAuth>> map = jySceneUserAuthService.getByNumList(numList,jyUser.getId());
  229. for (UserAuthSceneVo record : page.getRecords()) {
  230. List<JySceneUserAuth> userAuths = map.get(record.getNum()+"_"+record.getAuthType());
  231. if(userAuths != null && !userAuths.isEmpty()){
  232. for (JySceneUserAuth userAuth : userAuths) {
  233. JyUser jyUser1 = jyUserService.getById(userAuth.getJyUserId());
  234. if(jyUser1 != null){
  235. userAuth.setRyId(jyUser1.getRyId());
  236. userAuth.setRyNo(jyUser1.getRyNo());
  237. userAuth.setRyNickName(jyUser1.getRyNickName());
  238. }
  239. }
  240. record.setAuthList(userAuths);
  241. }
  242. }
  243. return ResultData.ok(PageInfo.PageInfo(page));
  244. }
  245. @Autowired
  246. IDownService downService;
  247. /**
  248. * 检查下载
  249. * num 场景码
  250. */
  251. @GetMapping("/checkDownLoad")
  252. public ResultData checkDownLoad(@RequestParam(required = false) String num,
  253. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  254. return ResultData.ok(downService.checkDownLoad(num,isObj));
  255. }
  256. /**
  257. * 下载场景
  258. * num 场景码
  259. */
  260. @GetMapping("/downScene")
  261. public ResultData downScene(@RequestParam(required = false) String num,
  262. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  263. return ResultData.ok(downService.down(num,isObj));
  264. }
  265. /**
  266. * 下载场景进度条
  267. * num 场景码
  268. */
  269. @GetMapping("/downloadProcess")
  270. public ResultData downloadProcess(@RequestParam(required = false) String num,
  271. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  272. return ResultData.ok(downService.downloadProcess(num,isObj));
  273. }
  274. }