AdmLocationPointController.java 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package com.persagy.proxy.adm.controller;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.persagy.proxy.adm.constant.AdmCommonConstant;
  4. import com.persagy.proxy.adm.model.AdmLocationPoint;
  5. import com.persagy.proxy.adm.model.AdmPointImage;
  6. import com.persagy.proxy.adm.request.AdmCreateRequest;
  7. import com.persagy.proxy.adm.request.AdmQueryCriteria;
  8. import com.persagy.proxy.adm.request.AdmResponse;
  9. import com.persagy.proxy.adm.service.IAdmLocationPointService;
  10. import com.persagy.proxy.common.entity.DmpResult;
  11. import com.persagy.proxy.common.entity.InstanceUrlParam;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.beans.factory.annotation.Value;
  15. import org.springframework.web.bind.annotation.PostMapping;
  16. import org.springframework.web.bind.annotation.RequestBody;
  17. import org.springframework.web.bind.annotation.RequestMapping;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import javax.ws.rs.QueryParam;
  20. import java.util.ArrayList;
  21. import java.util.List;
  22. /**
  23. * @ClassName AdmLocationPointController
  24. * @Description: 点位标签
  25. * @Author linhuili
  26. * @Date 2021/8/31 09:44
  27. * @Version V1.0
  28. **/
  29. @RestController
  30. @RequestMapping("/object/location-point")
  31. @Slf4j
  32. public class AdmLocationPointController {
  33. @Value("${middleware.group.code}")
  34. private String groupCode;
  35. @Autowired
  36. private IAdmLocationPointService service;
  37. /**
  38. * 统计点位标签
  39. * @param projectId
  40. * @param request
  41. * @return
  42. * @throws Exception
  43. */
  44. @PostMapping("/count")
  45. public AdmResponse count(@QueryParam("projectId") String projectId,
  46. @RequestBody AdmQueryCriteria request) throws Exception {
  47. // 组装上下文条件
  48. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  49. request.setName("point");
  50. request.setOnlyCount(true);
  51. return service.doQuery(context, request, AdmLocationPoint.class);
  52. }
  53. /**
  54. * 查询信息点标签
  55. * @param projectId
  56. * @param request
  57. * @return
  58. * @throws Exception
  59. */
  60. @PostMapping("/query")
  61. public AdmResponse query(@QueryParam("projectId") String projectId,
  62. @RequestBody AdmQueryCriteria request) throws Exception {
  63. // 组装上下文条件
  64. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  65. request.setName("point");
  66. // 查询信息点标签
  67. AdmResponse admResponse = service.doQuery(context, request, AdmLocationPoint.class);
  68. // 查询结果处理
  69. handleQueryLocationPointResult(admResponse);
  70. return admResponse;
  71. }
  72. /**
  73. * 创建点位标签信息
  74. * @param createRequest
  75. * @return
  76. * @throws Exception
  77. */
  78. @PostMapping("/create")
  79. public AdmResponse create(@RequestBody AdmCreateRequest<AdmLocationPoint> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  80. // 组装上下文条件
  81. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  82. List<AdmLocationPoint> vos = CollUtil.newArrayList(createRequest.getContent());
  83. log.info("创建条件"+vos.toString());
  84. vos = service.doInsert(context, AdmLocationPoint.class, vos);
  85. return AdmResponse.success(vos);
  86. }
  87. /**
  88. * 更新点位标签信息
  89. * @param createRequest
  90. * @return
  91. * @throws Exception
  92. */
  93. @PostMapping("/update")
  94. public AdmResponse update(@RequestBody AdmCreateRequest<AdmLocationPoint> createRequest, @QueryParam("projectId") String projectId) throws Exception {
  95. // 组装上下文条件
  96. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  97. List<AdmLocationPoint> vos = CollUtil.newArrayList(createRequest.getContent());
  98. vos = service.doUpdate(context, AdmLocationPoint.class, vos);
  99. return AdmResponse.success(vos);
  100. }
  101. /**
  102. * 删除点位标签
  103. * @param vos
  104. * @return
  105. * @throws Exception
  106. */
  107. @PostMapping("/delete")
  108. public AdmResponse delete(@QueryParam("projectId") String projectId, @RequestBody List<AdmLocationPoint> vos) throws Exception {
  109. // 组装上下文条件
  110. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  111. service.doDelete(context, vos);
  112. return AdmResponse.success();
  113. }
  114. /**
  115. * 删除点位图片
  116. * @param vos
  117. * @return
  118. * @throws Exception
  119. */
  120. @PostMapping("/delete-image")
  121. public AdmResponse deleteImage(@QueryParam("projectId") String projectId, @RequestBody List<AdmPointImage> vos) throws Exception {
  122. // 组装上下文条件
  123. InstanceUrlParam context = new InstanceUrlParam(groupCode, null, projectId, AdmCommonConstant.APP_ID);
  124. // 删除图片参数转换
  125. List<AdmLocationPoint> points = deleteImageParamRevert(vos);
  126. service.doUpdate(context,AdmLocationPoint.class, points);
  127. return AdmResponse.success();
  128. }
  129. /**
  130. * 删除图片参数转换
  131. * @param vos
  132. * @return
  133. */
  134. private List<AdmLocationPoint> deleteImageParamRevert(List<AdmPointImage> vos){
  135. if(CollUtil.isEmpty(vos)){
  136. return new ArrayList<>();
  137. }
  138. ArrayList<AdmLocationPoint> points = new ArrayList<>();
  139. for (AdmPointImage vo : vos) {
  140. AdmLocationPoint point = new AdmLocationPoint();
  141. point.setId(vo.getObjectId());
  142. point.setImageList(new ArrayList<>());
  143. points.add(point);
  144. }
  145. return points;
  146. }
  147. /**
  148. * 查询标签信息结果处理
  149. * @param admResponse
  150. */
  151. private void handleQueryLocationPointResult(AdmResponse admResponse){
  152. if(!DmpResult.SUCCESS.equals(admResponse.getResult())){
  153. return;
  154. }
  155. List<AdmLocationPoint> points = (List<AdmLocationPoint>) admResponse.getContent();
  156. for (AdmLocationPoint point : points) {
  157. ArrayList<AdmPointImage> imageList = point.getImageList();
  158. if(CollUtil.isEmpty(imageList)){
  159. continue;
  160. }
  161. imageList.forEach(item->{
  162. item.setObjectId(point.getId());
  163. });
  164. }
  165. }
  166. }