Browse Source

增加管理后台查询列表,以及队列

xiewj 1 năm trước cách đây
mục cha
commit
17b028a397

+ 2 - 0
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/RelicsSceneInitQueueDTO.java

@@ -51,4 +51,6 @@ public class RelicsSceneInitQueueDTO {
     @ApiModelProperty(value = "点位数量")
     private Integer shootCount;
 
+    private int payStatus;
+
 }

+ 2 - 0
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/SceneQueueDTO.java

@@ -54,4 +54,6 @@ public class SceneQueueDTO {
 
     private JsonObject gps;
 
+    @ApiModelProperty(value = "0表示未付款,1表示付款了,-1表示欠费(八目场景指锁住),-2表示临时空间(八目场景)", name = "payStatus")
+    private int payStatus   ;
 }

+ 10 - 0
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/entity/WorkEntity.java

@@ -6,6 +6,8 @@ import lombok.Data;
 
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
 import java.io.Serializable;
 import java.util.Date;
 
@@ -76,4 +78,12 @@ public class WorkEntity extends BaseStrEntity implements Serializable {
 
     @ApiModelProperty(value = "计算完成时间")
     private Date algorithmTime;
+
+    @ApiModelProperty(value = "拍摄时间")
+    @Temporal(TemporalType.TIMESTAMP)
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    private Date shootTime;
+
+    @ApiModelProperty(value = "0表示未付款,1表示付款了,-1表示欠费(八目场景指锁住),-2表示临时空间(八目场景)", name = "payStatus")
+    private int payStatus   ;
 }

+ 3 - 1
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/listener/SceneListener.java

@@ -238,6 +238,7 @@ public class SceneListener {
             relicsSceneInitQueueDTO.setSceneName(param.getSceneName());
             relicsSceneInitQueueDTO.setShootCount(param.getShootCount());
             relicsSceneInitQueueDTO.setSceneSource(param.getSceneSource());
+            relicsSceneInitQueueDTO.setPayStatus(param.getPayStatus());
             rabbitMqProducerUtil.sendByWorkQueue(relicsInitQueue, relicsSceneInitQueueDTO);
     }
     private void sendEndMq(SceneQueueDTO param) {
@@ -253,7 +254,8 @@ public class SceneListener {
             relicsSceneInitQueueDTO.setSceneName(param.getSceneName());
             relicsSceneInitQueueDTO.setShootCount(param.getShootCount());
             relicsSceneInitQueueDTO.setSceneSource(param.getSceneSource());
-            rabbitMqProducerUtil.sendByWorkQueue(relicsInitQueue, relicsSceneInitQueueDTO);
+            relicsSceneInitQueueDTO.setPayStatus(param.getPayStatus());
+        rabbitMqProducerUtil.sendByWorkQueue(relicsInitQueue, relicsSceneInitQueueDTO);
     }
 
     private static final String CHARACTERS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

+ 102 - 0
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/listener/ScenePayStatusListener.java

@@ -0,0 +1,102 @@
+package com.gis.listener;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.gis.constant.CmdConstant;
+import com.gis.constant.ConfigConstant;
+import com.gis.entity.RelicsSceneInitQueueDTO;
+import com.gis.entity.ScenePanoEntity;
+import com.gis.entity.SceneQueueDTO;
+import com.gis.entity.WorkEntity;
+import com.gis.exception.BaseRuntimeException;
+import com.gis.mq.RabbitMqProducerUtil;
+import com.gis.oss.util.AliYunOssUtil;
+import com.gis.oss.util.FileAndOssUtil;
+import com.gis.service.ScenePanoService;
+import com.gis.service.WorkService;
+import com.gis.util.CmdUtils;
+import com.gis.util.FileUtils;
+import com.gis.util.QrCodeUtils;
+import com.gis.util.RandomUtils;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.Queue;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * 消息监听器
+ *
+ * @author Xiewj
+ * @version 1.0
+ * @since 2023/08/07
+ */
+@Component
+@Slf4j
+public class ScenePayStatusListener {
+
+    @Autowired
+    WorkService workService;
+    /**
+     * 全景场景初始化方法
+     *
+     * @param channel
+     * @param message
+     * @throws Exception the io exception  这里异常需要处理
+     */
+    @RabbitListener(
+            queuesToDeclare = @Queue("${queue.pano-paystatus-scene-queue}"),concurrency = "1"
+    )
+    public void scenePayStatusQueue(Channel channel, Message message) throws IOException {
+            if (ObjectUtils.isEmpty(message.getBody())) {
+                log.error("消息内容为空,退出构建,当前服务器id:{}" );
+                return;
+            }
+        String traceId = System.currentTimeMillis()+"";
+        MDC.put("TRACE_ID", traceId);
+        long deliveryTag = message.getMessageProperties().getDeliveryTag();
+        try {
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            String messageId = message.getMessageProperties().getMessageId();
+            log.info("场景scenePayStatusQueue开始,id:{},deliveryTag:{},消息体:{}", messageId,deliveryTag,msg);
+            SceneQueueDTO param = JSONObject.parseObject(msg, SceneQueueDTO.class);
+            if (ObjectUtil.isEmpty(param.getSceneCode())) {
+                log.error("参数列表错误(缺少),格式不匹配,{}",param);
+                channel.basicAck(deliveryTag, false);
+            }
+            WorkEntity workEntity=workService.findByNum(param.getSceneCode());
+            if (ObjectUtil.isNotEmpty(workEntity)&&param.getStatus()!=1){
+                //修改状态
+                workEntity.setPayStatus(param.getPayStatus());
+                workService.update(workEntity);
+                channel.basicAck(deliveryTag, false);
+            }
+        }catch (Exception e){
+            channel.basicAck(deliveryTag, false);
+            log.error("场景sceneQueue报错{}",e.getMessage());
+            e.printStackTrace();
+
+        }
+    }
+}

+ 6 - 0
720yun_fd_consumer/gis_consumer/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -61,6 +61,12 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
             entity.setPassword(sceneQueueDTO.getPwd());
             entity.setIsPassword(1);
         }
+        if (ObjectUtil.isNotEmpty(sceneQueueDTO.getPayStatus())){
+            entity.setPayStatus(sceneQueueDTO.getPayStatus());
+        }else {
+            entity.setPayStatus(0);
+        }
+        entity.setShootTime(sceneQueueDTO.getCreateTime());
         entity.setCreateTime(sceneQueueDTO.getCreateTime());
         entity.setUpdateTime(sceneQueueDTO.getCreateTime());
         this.save2(entity);

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-dev.yml

@@ -60,3 +60,4 @@ queue:
     relics-init-queue: relics-init-queue
     relics-update-name-queue: relics-update-name-queue
     pano-migrate-scene-queue: pano-migrate-scene-queue
+    pano-paystatus-scene-queue: pano-paystatus-scene-queue

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-loc-site.yml

@@ -68,6 +68,7 @@ queue:
     scene-queue: queue-pano-scene
     do-slice-queue: queue-do-slice
     pano-migrate-scene-queue: pano-migrate-scene-queue
+    pano-paystatus-scene-queue: pano-paystatus-scene-queue
 
 domain:
     4dkk: https://test.4dkankan.com

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-loc.yml

@@ -60,3 +60,4 @@ queue:
     relics-init-queue: relics-init-queue
     relics-update-name-queue: relics-update-name-queue
     pano-migrate-scene-queue: pano-migrate-scene-queue
+    pano-paystatus-scene-queue: pano-paystatus-scene-queue

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-pro.yml

@@ -80,3 +80,4 @@ queue:
     relics-init-queue: relics-init-queue
     relics-update-name-queue: relics-update-name-queue
     pano-migrate-scene-queue: pano-migrate-scene-queue
+    pano-paystatus-scene-queue: pano-paystatus-scene-queue

+ 1 - 0
720yun_fd_consumer/gis_consumer/src/main/resources/application-sit.yml

@@ -66,3 +66,4 @@ queue:
     relics-init-queue: relics-init-queue
     relics-update-name-queue: relics-update-name-queue
     pano-migrate-scene-queue: pano-migrate-scene-queue
+    pano-paystatus-scene-queue: pano-paystatus-scene-queue

+ 8 - 0
720yun_fd_manage/gis_domain/src/main/java/com/gis/domain/dto/AgePageDto.java

@@ -27,6 +27,14 @@ public class AgePageDto extends PageDateDto {
 
     private List<String> snCodes;
 
+    @ApiModelProperty(value = "1:查询全景作品,2:查询全景相机作品")
+    private Integer type;
+
+    @ApiModelProperty(value = "相机码")
+    private String snCode;
+
+    @ApiModelProperty(value = "场景码")
+    private String num;
 
 
 }

+ 1 - 1
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/WorkMapper.java

@@ -20,7 +20,7 @@ public interface WorkMapper extends IBaseStrMapper<WorkEntity, String> {
     Integer getCountStr(String sqlStr);
 
     @SelectProvider(type = WorkProvider.class, method = "search")
-    List<WorkEntity> search(AgePageDto param, String userId);
+    List<WorkEntity> search(AgePageDto param, String userId, boolean isAdmin);
 
     @Update("UPDATE tb_work SET visit= visit + 1 where id = #{id}")
     void addVisit(String id);

+ 24 - 6
720yun_fd_manage/gis_mapper/src/main/java/com/gis/mapper/provider/WorkProvider.java

@@ -17,7 +17,7 @@ import java.util.List;
 @Slf4j
 public class WorkProvider {
 
-    public String search(AgePageDto param, String userId){
+    public String search(AgePageDto param, String userId, boolean isAdmin){
         StringBuffer sql = new StringBuffer("select * from tb_work where is_delete = 0");
         if(StrUtil.isNotBlank(userId)){
             sql.append(" and ( user_id = '").append(RegexUtil.escapeChar(userId)).append("' )");
@@ -39,21 +39,39 @@ public class WorkProvider {
             sql.append(" and (  id like '%").append( RegexUtil.escapeChar(workId)).append("%' )");
         }
 
+        String num = param.getNum();
+        if (StrUtil.isNotBlank(num)){
+            sql.append(" and (  num like '%").append( RegexUtil.escapeChar(num)).append("%' )");
+        }
         String startTime = param.getStartTime();
         String endTime = param.getEndTime();
         if (StrUtil.isNotBlank(startTime) && StrUtil.isNotBlank(endTime)){
             sql.append(" and create_time between '").append(startTime).append("' and '").append(endTime).append("'");
         }
+        String snCode = param.getSnCode();
+        if (StrUtil.isNotBlank(snCode)){
+            sql.append(" and ( snCode = '").append(RegexUtil.escapeChar(snCode)).append("' )");
 
-        List<String> snCodes = param.getSnCodes();
-        if (ArrayUtil.isNotEmpty(snCodes)){
-//            sql.append(" and (  sn_code in (").append(StringUtils.join(snCodes, ",")).append(") )");
-            sql.append(" and (  sn_code in ('").append(StringUtils.join(snCodes, "','")).append("') )");
+        }
+        if(isAdmin){
+            Integer type = param.getType();
+            if (type==1){
+                sql.append(" and status > 0 and location IS NULL");
+            }else if (type==2){
+                sql.append("  location IS NOT NULL");
+            }
         }else {
-            sql.append(" and status > 0 and location is null");
+            List<String> snCodes = param.getSnCodes();
+            if (ArrayUtil.isNotEmpty(snCodes)){
+//            sql.append(" and (  sn_code in (").append(StringUtils.join(snCodes, ",")).append(") )");
+                sql.append(" and (  sn_code in ('").append(StringUtils.join(snCodes, "','")).append("') )");
+            }else {
+                sql.append(" and status > 0 and location IS NULL");
+            }
         }
 
 
+
         String orderBy = param.getOrderBy();
         orderBy = "visit".equals(orderBy) ? "visit" : "create_time";
 

+ 2 - 2
720yun_fd_manage/gis_service/src/main/java/com/gis/service/impl/WorkServiceImpl.java

@@ -106,7 +106,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         if (isAdmin) {
             userNameForToken = null;
         }
-        List<WorkEntity> search = entityMapper.search(param, userNameForToken);
+        List<WorkEntity> search = entityMapper.search(param, userNameForToken,isAdmin);
 
         // 2023-01-30 记录登录用户-数据统计使用
         if (StrUtil.isNotBlank(userNameForToken)) {
@@ -1233,7 +1233,7 @@ public class WorkServiceImpl extends IBaseStrServiceImpl<WorkEntity, String> imp
         }
         startPage(param);
         param.setSnCodes(snCodes);
-        List<WorkEntity> search = entityMapper.search(param, "");
+        List<WorkEntity> search = entityMapper.search(param, "", false);
 
         return Result.success(new PageInfo<>(search));
     }