InnerAPIController.java 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. package com.fdkankan.manage.controller.inner;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.extra.servlet.ServletUtil;
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.auth0.jwt.JWT;
  7. import com.auth0.jwt.exceptions.JWTDecodeException;
  8. import com.auth0.jwt.interfaces.DecodedJWT;
  9. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  10. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  11. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  12. import com.dtflys.forest.annotation.Post;
  13. import com.fdkankan.common.util.JwtUtil;
  14. import com.fdkankan.fyun.face.FYunFileServiceInterface;
  15. import com.fdkankan.manage.common.*;
  16. import com.fdkankan.manage.config.ManageConfig;
  17. import com.fdkankan.manage.constant.FileTypeEnum;
  18. import com.fdkankan.manage.controller.BaseController;
  19. import com.fdkankan.manage.entity.*;
  20. import com.fdkankan.manage.entity.Dict;
  21. import com.fdkankan.manage.exception.BusinessException;
  22. import com.fdkankan.manage.httpClient.client.HaixinClient;
  23. import com.fdkankan.manage.httpClient.param.HaixinParam;
  24. import com.fdkankan.manage.service.*;
  25. import com.fdkankan.manage.service.impl.ManageService;
  26. import com.fdkankan.manage.util.RsaUtils;
  27. import com.fdkankan.manage.util.ShellUtil;
  28. import com.fdkankan.manage.vo.EvidenceVo;
  29. import com.fdkankan.manage.vo.request.*;
  30. import com.fdkankan.manage.vo.response.ManageLoginResponse;
  31. import com.fdkankan.manage.vo.response.SceneAuthVo;
  32. import com.fdkankan.manage.vo.response.UserAuthSceneVo;
  33. import com.fdkankan.manage.vo.response.UserShareSceneVo;
  34. import com.fdkankan.rabbitmq.util.RabbitMqProducer;
  35. import lombok.extern.slf4j.Slf4j;
  36. import org.apache.commons.lang3.StringUtils;
  37. import org.springframework.beans.factory.annotation.Autowired;
  38. import org.springframework.web.bind.annotation.*;
  39. import java.io.File;
  40. import java.io.IOException;
  41. import java.util.*;
  42. import java.util.stream.Collectors;
  43. @RestController
  44. @RequestMapping("/service/manage/inner")
  45. @Slf4j
  46. public class InnerAPIController extends BaseController {
  47. @Autowired
  48. IJyUserService jyUserService;
  49. @Autowired
  50. IUserService userService;
  51. @Autowired
  52. IJySceneUserAuthService jySceneUserAuthService;
  53. @Autowired
  54. IScenePlusService scenePlusService;
  55. @Autowired
  56. IJyUserShareService jyUserShareService;
  57. @Autowired
  58. IJySceneAuthService jySceneAuthService;
  59. @Autowired
  60. ManageConfig manageConfig;
  61. @Autowired
  62. ISysUserService sysUserService;
  63. @Autowired
  64. IJyPlatformService jyPlatformService;
  65. @Autowired
  66. ICaseService caseService;
  67. @Autowired
  68. ManageService manageService;
  69. @Autowired
  70. ICaseNumService caseNumService;
  71. @Autowired
  72. ICaseFusionRelationService caseFusionRelationService;
  73. @Autowired
  74. RabbitMqProducer rabbitMqProducer;
  75. @PostMapping("/getByRyId")
  76. public ResultData getByRyId(@RequestBody UserParam param){
  77. return ResultData.ok(jyUserService.getEntityByParam(param.getRyId(),param.getRyNo()));
  78. }
  79. @PostMapping("/getByRyNo")
  80. public ResultData getByRyNo(@RequestBody UserParam param){
  81. return ResultData.ok(jyUserService.getByRyNo(param.getRyNo()));
  82. }
  83. @PostMapping("/updateStatus")
  84. public ResultData updateStatus(@RequestBody UserParam userParam){
  85. userService.updateStatus(userParam);
  86. return ResultData.ok();
  87. }
  88. @PostMapping("/addUcenterUser")
  89. public ResultData addUcenterUser(@RequestBody UserParam param){
  90. userService.addUcenterUser(param);
  91. return ResultData.ok();
  92. }
  93. @PostMapping("/delUcenterUser")
  94. public ResultData delUcenterUser(@RequestBody UserParam param){
  95. userService.delUcenterUser(param);
  96. return ResultData.ok();
  97. }
  98. @PostMapping("/addAuth")
  99. public ResultData addAuth(@RequestBody JySceneUserAuth param){
  100. param.setCanDel(1);
  101. if(StringUtils.isBlank(param.getSourceType())){
  102. param.setSourceType("scene");
  103. }
  104. jySceneUserAuthService.addAuth(param);
  105. return ResultData.ok();
  106. }
  107. @PostMapping("/setAuthType")
  108. public ResultData setAuthType(@RequestBody JySceneUserAuth param){
  109. if(StringUtils.isBlank(param.getSourceType())){
  110. param.setSourceType("scene");
  111. }
  112. jySceneUserAuthService.setAuthType(param);
  113. return ResultData.ok();
  114. }
  115. @PostMapping("/delAuth")
  116. public ResultData delAuth(@RequestBody JySceneUserAuth param){
  117. if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
  118. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  119. }
  120. if(StringUtils.isBlank(param.getNum())){
  121. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  122. }
  123. if(StringUtils.isBlank(param.getSourceType())){
  124. param.setSourceType("scene");
  125. }
  126. JyUser jyUser = jyUserService.getEntityByParam(param.getRyId(), param.getRyNo());
  127. JySceneUserAuth db = jySceneUserAuthService.getByNumAndJyUserId(jyUser.getId(),param.getNum(),param.getSourceType(),null);
  128. jySceneUserAuthService.delAuth(db);
  129. return ResultData.ok();
  130. }
  131. @PostMapping("/checkAuthOther")
  132. public ResultData checkAuthOther(@RequestBody JySceneUserAuth param){
  133. if(StringUtils.isBlank(param.getSourceType())){
  134. param.setSourceType("scene");
  135. }
  136. return ResultData.ok(jySceneUserAuthService.checkAuthOther(param));
  137. }
  138. @GetMapping("/checkNumAuth/{num}")
  139. public ResultData checkNumAuth(@PathVariable String num){
  140. String clientIP = ServletUtil.getClientIP(request);
  141. SceneAuthVo sceneAuthVo = jySceneUserAuthService.checkNumAuth(num, "scene", getToken(), clientIP, getUserName(), getPassword(),null);
  142. return ResultData.ok(updateByVisitType(sceneAuthVo,getToken()) );
  143. }
  144. @GetMapping("/checkCaseAuth/{num}/{sourceType}")
  145. public ResultData checkCaseAuth(@PathVariable String num,@PathVariable String sourceType){
  146. SceneAuthVo sceneAuthVo = new SceneAuthVo();
  147. String clientIP = ServletUtil.getClientIP(request);
  148. if("case".equals(sourceType)){
  149. List<CaseNum> caseNums = caseNumService.getByCaseId(Integer.valueOf(num));
  150. for (CaseNum caseNum : caseNums) {
  151. SceneAuthVo sceneAuthVoNum = jySceneUserAuthService.checkNumAuth(caseNum.getNum(), "scene", getToken(), clientIP, getUserName(), getPassword(),null);
  152. if(sceneAuthVoNum.getViewAuth()){
  153. sceneAuthVo.setViewAuth(true);
  154. }
  155. if(sceneAuthVoNum.getEditAuth()){
  156. sceneAuthVo.setEditAuth(true);
  157. break;
  158. }
  159. }
  160. List<CaseFusionRelation> relationList = caseFusionRelationService.getByCaseId(Integer.valueOf(num));
  161. for (CaseFusionRelation caseFusionRelation : relationList) {
  162. SceneAuthVo sceneAuthVoNum = jySceneUserAuthService.checkNumAuth(caseFusionRelation.getFusionId().toString(), "fusion", getToken(), clientIP, getUserName(), getPassword(),null);
  163. if(sceneAuthVoNum.getViewAuth()){
  164. sceneAuthVo.setViewAuth(true);
  165. }
  166. if(sceneAuthVoNum.getEditAuth()){
  167. sceneAuthVo.setEditAuth(true);
  168. break;
  169. }
  170. }
  171. return ResultData.ok(sceneAuthVo);
  172. }
  173. sceneAuthVo = jySceneUserAuthService.checkNumAuth(num, sourceType, getToken(), clientIP, getUserName(), getPassword(),null);
  174. return ResultData.ok(sceneAuthVo);
  175. }
  176. @PostMapping("/checkNumAuth")
  177. public ResultData checkNumAuth(@RequestBody JSONObject object){
  178. String clientIP = ServletUtil.getClientIP(request);
  179. SceneAuthVo sceneAuthVo = jySceneUserAuthService.checkNumAuth(object.getString("num"), "scene", getToken(), clientIP, object.getString("userName"), object.getString("password"),null);
  180. return ResultData.ok(updateByVisitType(sceneAuthVo,getToken()));
  181. }
  182. private SceneAuthVo updateByVisitType(SceneAuthVo sceneAuthVo,String token){
  183. if(!sceneAuthVo.getEditAuth()){
  184. return sceneAuthVo;
  185. }
  186. if(StringUtils.isNotBlank(token)){
  187. String visitType = getVisitType(token);
  188. if(StringUtils.isNotBlank(visitType) && "view".equals(visitType)){
  189. sceneAuthVo.setEditAuth(false);
  190. }
  191. }
  192. return sceneAuthVo;
  193. }
  194. public static String getVisitType(String token) {
  195. try {
  196. DecodedJWT jwt = JWT.decode(token);
  197. return jwt.getClaim("visitType").asString();
  198. } catch (JWTDecodeException var2) {
  199. return null;
  200. }
  201. }
  202. @PostMapping("/getAuthType")
  203. public ResultData getAuthType(@RequestBody SceneParam param){
  204. if(StringUtils.isBlank(param.getSourceType())){
  205. param.setSourceType("scene");
  206. }
  207. return ResultData.ok(jySceneUserAuthService.getAuthType(param));
  208. }
  209. @PostMapping("/getAuthList")
  210. public ResultData getAuthList(@RequestBody SceneParam param){
  211. if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
  212. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  213. }
  214. if(StringUtils.isBlank(param.getNum()) && param.getCaseId() == null){
  215. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  216. }
  217. if(StringUtils.isBlank(param.getSourceType())){
  218. param.setSourceType("scene");
  219. }
  220. JySceneAuth jySceneAuth = jySceneAuthService.getByNum(param.getNum(),param.getSourceType());
  221. if(jySceneAuth == null){
  222. return ResultData.ok(PageInfo.PageInfoEmpty(param.getPageNum(),param.getPageSize()));
  223. }
  224. param.setAuthType(jySceneAuth.getAuthType());
  225. return ResultData.ok(jySceneUserAuthService.getAuthList(param));
  226. }
  227. @PostMapping("/getSceneList")
  228. public ResultData getSceneList(@RequestBody SceneParam param){
  229. if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
  230. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  231. }
  232. JyUser jyUser = null;
  233. if(StringUtils.isNotBlank(param.getRyId()) ){
  234. jyUser = jyUserService.getByRyId(param.getRyId());
  235. if(jyUser == null){
  236. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  237. }
  238. }
  239. if(StringUtils.isNotBlank(param.getRyNo()) ){
  240. jyUser = jyUserService.getByRyNo(param.getRyNo());
  241. if(jyUser == null){
  242. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  243. }
  244. }
  245. if(jyUser == null){
  246. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  247. }
  248. SysUser sysUser = sysUserService.getById(jyUser.getSysUserId());
  249. if(sysUser == null){
  250. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  251. }
  252. AllShareParam allShareParam = new AllShareParam();
  253. if(jyUser.getPlatformId() !=null && (sysUser.getRoleId() == 45L || sysUser.getRoleId() == 48L)){
  254. allShareParam.setPlatformId(jyUser.getPlatformId());
  255. }else {
  256. allShareParam.setUserId(jyUser.getId());
  257. }
  258. //设置全局公开场景
  259. if(!manageConfig.getNumList().isEmpty()){
  260. allShareParam.getNumList().addAll(manageConfig.getNumList());
  261. }
  262. //获取分享主用户
  263. List<JyUserShare> jyUserShares = jyUserShareService.getByJyUserId(jyUser.getId(),"scene");
  264. List<Integer> mainUserIds = jyUserShares.stream().map(JyUserShare::getMainJyUserId).collect(Collectors.toList());
  265. HashMap<Integer,Long> roleMap = new HashMap<>();
  266. if(!mainUserIds.isEmpty()){
  267. List<JyUser> jyUsers = jyUserService.listByIds(mainUserIds);
  268. Set<Long> sysIds = jyUsers.stream().map(JyUser::getSysUserId).collect(Collectors.toSet());
  269. HashMap<Long, SysUser> byIds = sysUserService.getByIds(sysIds);
  270. jyUsers.forEach( e-> roleMap.put(e.getId(),byIds.get(e.getSysUserId()).getRoleId()));
  271. for (JyUser user : jyUsers) {
  272. Long roleId = roleMap.get(user.getId());
  273. if(user.getPlatformId() != null && (roleId == 45L || roleId == 48L)){
  274. allShareParam.getOtherPlatformIds().add(user.getPlatformId());
  275. }else {
  276. allShareParam.getOtherUserIds().add(user.getId());
  277. }
  278. }
  279. }
  280. //获取本平台公开场景
  281. List<String> openNums = jySceneAuthService.getNumListByPlatform(jyUser.getPlatformId(),1,"scene");
  282. if(!openNums.isEmpty()){
  283. allShareParam.getNumList().addAll(openNums);
  284. }
  285. //获取授权场景
  286. HashMap<String,JySceneUserAuth> authHashMap = new HashMap<>();
  287. HashMap<String,JySceneUserAuth> openHashMap = new HashMap<>();
  288. List<JySceneUserAuth> jySceneUserAuths = jySceneUserAuthService.getByJyUserId(jyUser.getId());
  289. jySceneUserAuths.stream().filter(e ->e.getNum() != null && e.getAuthType() == 0).forEach( e-> authHashMap.put(e.getNum(),e));
  290. jySceneUserAuths.stream().filter(e ->e.getNum() != null && e.getAuthType() == 1).forEach( e-> openHashMap.put(e.getNum(),e));
  291. List<String> allAuthNum = new ArrayList<>();
  292. allAuthNum.addAll(authHashMap.keySet());
  293. allAuthNum.addAll(openHashMap.keySet());
  294. HashMap<String, JySceneAuth> authMap = jySceneAuthService.getByNumList(allAuthNum,"scene");
  295. if(!authHashMap.isEmpty()){
  296. List<String> authNumList = authHashMap.keySet().stream().filter(e -> authMap.get(e)!=null && authMap.get(e).getAuthType() == 0).collect(Collectors.toList());
  297. if(!authNumList.isEmpty()){
  298. allShareParam.getNumList().addAll(authNumList);
  299. }
  300. }
  301. if(!openHashMap.isEmpty()){
  302. List<String> openAuthNumList = openHashMap.keySet().stream().filter(e -> authMap.get(e)!=null && authMap.get(e).getAuthType() == 1).collect(Collectors.toList());
  303. if(!openAuthNumList.isEmpty()){
  304. allShareParam.getNumList().addAll(openAuthNumList);
  305. }
  306. }
  307. Page<UserShareSceneVo> page= scenePlusService.allScenePageList(new Page<>(param.getPageNum(), param.getPageSize()),allShareParam);
  308. return ResultData.ok(PageInfo.PageInfo(page));
  309. }
  310. @PostMapping("/getAuthSceneList")
  311. public ResultData getAuthSceneList(@RequestBody SceneParam param){
  312. if(StringUtils.isBlank(param.getRyId()) && StringUtils.isBlank(param.getRyNo())){
  313. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  314. }
  315. JyUser jyUser = null;
  316. if(StringUtils.isNotBlank(param.getRyId()) ){
  317. jyUser = jyUserService.getByRyId(param.getRyId());
  318. if(jyUser == null){
  319. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  320. }
  321. }
  322. if(StringUtils.isNotBlank(param.getRyNo()) ){
  323. jyUser = jyUserService.getByRyNo(param.getRyNo());
  324. if(jyUser == null){
  325. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  326. }
  327. }
  328. if(jyUser == null){
  329. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  330. }
  331. UserShareParam shareParam = new UserShareParam();
  332. shareParam.setPageNum(param.getPageNum());
  333. shareParam.setPageSize(param.getPageSize());
  334. shareParam.setJyUserId(jyUser.getId());
  335. Page<UserAuthSceneVo> page= jyUserShareService.sceneAuthVoList(shareParam);
  336. List<String> numList = page.getRecords().stream().map(UserAuthSceneVo::getNum).collect(Collectors.toList());
  337. HashMap<String, List<JySceneUserAuth>> map = jySceneUserAuthService.getByNumList(numList,jyUser.getId());
  338. HashMap<Integer,JyUser> userHashMap = new HashMap<>();
  339. for (UserAuthSceneVo record : page.getRecords()) {
  340. List<JySceneUserAuth> userAuths = map.get(record.getNum()+"_"+record.getAuthType());
  341. if(userAuths != null && !userAuths.isEmpty()){
  342. for (JySceneUserAuth userAuth : userAuths) {
  343. JyUser jyUser2 = userHashMap.get(userAuth.getJyUserId());
  344. if(jyUser2 == null){
  345. JyUser jyUser1 = jyUserService.getById(userAuth.getJyUserId());
  346. if(jyUser1 != null){
  347. userHashMap.put(jyUser1.getId(),jyUser1);
  348. }
  349. }
  350. jyUser2 = userHashMap.get(userAuth.getJyUserId());
  351. if(jyUser2 != null){
  352. userAuth.setRyId(jyUser2.getRyId());
  353. userAuth.setRyNo(jyUser2.getRyNo());
  354. userAuth.setRyNickName(jyUser2.getRyNickName());
  355. }
  356. }
  357. record.setAuthList(userAuths);
  358. }
  359. }
  360. return ResultData.ok(PageInfo.PageInfo(page));
  361. }
  362. @Autowired
  363. IDownService downService;
  364. /**
  365. * 检查下载
  366. * num 场景码
  367. */
  368. @GetMapping("/checkDownLoad")
  369. public ResultData checkDownLoad(@RequestParam(required = false) String num,
  370. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  371. return ResultData.ok(downService.checkDownLoad(num,isObj));
  372. }
  373. /**
  374. * 下载场景
  375. * num 场景码
  376. */
  377. @GetMapping("/downScene")
  378. public ResultData downScene(@RequestParam(required = false) String num,
  379. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  380. return ResultData.ok(downService.down(num,isObj));
  381. }
  382. /**
  383. * 下载场景进度条
  384. * num 场景码
  385. */
  386. @GetMapping("/downloadProcess")
  387. public ResultData downloadProcess(@RequestParam(required = false) String num,
  388. @RequestParam(required = false,defaultValue = "0") Integer isObj){
  389. return ResultData.ok(downService.downloadProcess(num,isObj));
  390. }
  391. @Autowired
  392. ICameraService cameraService;
  393. @PostMapping(value = "/cameraInStore")
  394. public ResultData cameraInStore(@RequestBody CameraInStoreParam param){
  395. if(StringUtils.isBlank(param.getSnCode()) || param.getCameraType() == null){
  396. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  397. }
  398. Camera camera = cameraService.getBySnCode(param.getSnCode());
  399. if(camera !=null){
  400. return ResultData.ok(camera);
  401. }
  402. String wifiPre = CameraTypeEnum.getCameraPrefixByType(param.getCameraType());
  403. cameraService.in(wifiPre + param.getSnCode().toUpperCase());
  404. camera = cameraService.getBySnCode(param.getSnCode());
  405. return ResultData.ok(camera);
  406. }
  407. @PostMapping("/getTokenByRyNo")
  408. public ResultData getTokenByRyNo(@RequestBody ManageLoginRequest param){
  409. if(StringUtils.isBlank(param.getRyNo())){
  410. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  411. }
  412. param.setUserName(param.getRyNo());
  413. String clientIP = ServletUtil.getClientIP(request);
  414. param.setNeedPassword(false);
  415. param.setClientIp(clientIP);
  416. ManageLoginResponse login = manageService.login(param);
  417. return ResultData.ok(login.getToken());
  418. }
  419. @PostMapping("/platformList")
  420. public ResultData list(@RequestBody JyPlatformParam param){
  421. return ResultData.ok(jyPlatformService.pageList(param));
  422. }
  423. @PostMapping("/getTokenByProjectId")
  424. public ResultData getTokenByProjectId(@RequestBody ManageLoginRequest param){
  425. if(StringUtils.isBlank(param.getProjectId())){
  426. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  427. }
  428. LambdaQueryWrapper<ScenePlus> sceneQw = new LambdaQueryWrapper<>();
  429. sceneQw.eq(ScenePlus::getTaskId,param.getProjectId());
  430. List<ScenePlus> list = scenePlusService.list(sceneQw);
  431. if(list == null || list.isEmpty()){
  432. throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
  433. }
  434. ScenePlus scenePlus = list.get(0);
  435. User user = userService.getById(scenePlus.getUserId());
  436. if(user == null){
  437. throw new BusinessException(ResultCode.JY_ID_NO_EXIST);
  438. }
  439. param.setUserName(user.getUserName());
  440. String clientIP = ServletUtil.getClientIP(request);
  441. param.setNeedPassword(false);
  442. param.setClientIp(clientIP);
  443. ManageLoginResponse login = manageService.login(param);
  444. HashMap<String,Object> map = new HashMap<>();
  445. map.put("token",login.getToken());
  446. map.put("num",scenePlus.getNum());
  447. return ResultData.ok(map);
  448. }
  449. @PostMapping("/getTokenByKno")
  450. public ResultData getTokenByKno(@RequestBody ManageLoginRequest param){
  451. if(StringUtils.isBlank(param.getKno()) && StringUtils.isBlank(param.getCaseId())){
  452. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  453. }
  454. Case caseEntity ;
  455. if(StringUtils.isNotBlank(param.getCaseId())){
  456. caseEntity = caseService.getById(param.getCaseId());
  457. }else {
  458. caseEntity = caseService.getByKno(param.getKno());
  459. }
  460. if(caseEntity == null){
  461. throw new BusinessException(ResultCode.CASE_NOT_EXIST2);
  462. }
  463. Long sysUserId = caseEntity.getSysUserId();
  464. JyUser jyUser = jyUserService.getBySysId(sysUserId);
  465. param.setUserName(jyUser.getRyNo());
  466. String clientIP = ServletUtil.getClientIP(request);
  467. param.setNeedPassword(false);
  468. param.setClientIp(clientIP);
  469. ManageLoginResponse login = manageService.login(param);
  470. HashMap<String,Object> map = new HashMap<>();
  471. map.put("token",login.getToken());
  472. map.put("caseId", caseEntity.getCaseId());
  473. return ResultData.ok(map);
  474. }
  475. @PostMapping("/updateKno")
  476. public ResultData updateKno(@RequestBody ManageLoginRequest param){
  477. if(StringUtils.isBlank(param.getProjectId())){
  478. throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
  479. }
  480. LambdaQueryWrapper<ScenePlus> sceneQw = new LambdaQueryWrapper<>();
  481. sceneQw.eq(ScenePlus::getTaskId,param.getProjectId());
  482. List<ScenePlus> list = scenePlusService.list(sceneQw);
  483. if(list == null || list.isEmpty()){
  484. throw new BusinessException(ResultCode.SCENE_NOT_EXIST);
  485. }
  486. LambdaUpdateWrapper<ScenePlus> wrapper = new LambdaUpdateWrapper<>();
  487. wrapper.eq(ScenePlus::getTaskId,param.getProjectId());
  488. wrapper.set(ScenePlus::getKNo,param.getKno());
  489. scenePlusService.update(wrapper);
  490. for (ScenePlus scenePlus : list) {
  491. List<CaseNum> caseNumList = caseNumService.getByNum(scenePlus.getNum());
  492. for (CaseNum caseNum : caseNumList) {
  493. caseNumService.removeById(caseNum.getId());
  494. }
  495. if(StringUtils.isNotBlank(param.getKno())){
  496. HashMap<String,Object> map = new HashMap<>();
  497. map.put("num",scenePlus.getNum());
  498. map.put("kNo",param.getKno());
  499. rabbitMqProducer.sendByWorkQueue("queue-aj-add-scene",map);
  500. }
  501. }
  502. return ResultData.ok();
  503. }
  504. @Autowired
  505. IDictService dictService;
  506. @Autowired
  507. IDictFileService dictFileService;
  508. @Autowired
  509. HaixinClient haixinClient;
  510. @Autowired
  511. ICommonUploadService commonUploadService;
  512. @Autowired
  513. IDictIconService dictIconService;
  514. @PostMapping("/traceEvidenceList")
  515. public ResultData traceEvidenceList(@RequestBody DictFileParam dictParam){
  516. List<Dict> dictList = dictService.getByUseType("trace_evidence",dictParam.getName());
  517. List<Integer> dictIds = dictList.stream().map(Dict::getId).collect(Collectors.toList());
  518. HashMap<Integer,List<DictIcon>> map = dictIconService.getMapGroupDict(dictIds);
  519. for (Dict dict : dictList) {
  520. dict.setDictIconList(map.get(dict.getId()));
  521. }
  522. return ResultData.ok(dictList);
  523. }
  524. @PostMapping("/traceEvidenceInfoList")
  525. public ResultData traceEvidenceInfoList(@RequestBody DictFileParam dictParam){
  526. dictParam.setTypeKey("media-library");
  527. return ResultData.ok(dictFileService.traceEvidenceInfoList(dictParam));
  528. }
  529. @GetMapping("/refreshTraceEvidenceInfoList/{kno}")
  530. public ResultData refreshTraceEvidenceInfoList(@PathVariable String kno){
  531. dictFileService.updateByKno(kno);
  532. return ResultData.ok();
  533. }
  534. @PostMapping("/addMediaLibrary")
  535. public ResultData addMediaLibrary(@RequestBody addMediaLibraryParam param){
  536. return ResultData.ok(dictFileService.addMediaLibrary(param));
  537. }
  538. @PostMapping("/addMediaLibrarys")
  539. public ResultData addMediaLibrarys(@RequestBody addMediaLibraryParams param){
  540. for (addMediaLibraryParam paramParam : param.getParams()) {
  541. dictFileService.checkMediaLibrary(paramParam);
  542. }
  543. List<DictFile> dictFiles = new ArrayList<>();
  544. for (addMediaLibraryParam paramParam : param.getParams()) {
  545. dictFiles.add(dictFileService.addMediaLibrary(paramParam));
  546. }
  547. return ResultData.ok(dictFiles);
  548. }
  549. @GetMapping("/getCaseByNum")
  550. public ResultData getCaseByNum(@RequestParam(required = false) String num){
  551. List<Case> caseByNum = caseService.getCaseByNum(num);
  552. for (Case aCase : caseByNum) {
  553. aCase.setKNumber(aCase.getCaseId().toString());
  554. }
  555. return ResultData.ok(caseByNum);
  556. }
  557. }