qin hace 11 meses
padre
commit
7519af8daf

+ 63 - 0
src/main/java/com/poteviohealth/cgp/statistics/controller/ReceiveController.java

@@ -0,0 +1,63 @@
+package com.poteviohealth.cgp.statistics.controller;
+
+import com.google.common.collect.Lists;
+import com.poteviohealth.cgp.common.controller.BaseController;
+import com.poteviohealth.cgp.common.integrated.statistics.model.FingerParams;
+import com.poteviohealth.cgp.common.model.VaultsResponse;
+import com.poteviohealth.cgp.statistics.mapstruct.DistinctionConverter;
+import com.poteviohealth.cgp.statistics.model.Distinction;
+import com.poteviohealth.cgp.statistics.service.IDistinctionService;
+import com.poteviohealth.cgp.statistics.utils.OssUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * 统计回调类
+ * @author Qin
+ */
+@Controller
+@RequestMapping("/statistics/receive")
+@Slf4j
+public class ReceiveController extends BaseController {
+
+    @Resource
+    private IDistinctionService distinctionService;
+    @Resource
+    private OssUtils ossUtils;
+
+    @RequestMapping(value = "/jumpImage", method = {RequestMethod.POST})
+    @ResponseBody
+    public VaultsResponse jumpImage(){
+        List<Distinction> list = Lists.newArrayList();
+        List<FingerParams> orderList = distinctionService.getFinishOrderList();
+        for (FingerParams params : orderList) {
+            List<String> urlList = Lists.newArrayList();
+            if(StringUtils.isNotEmpty(params.getStartUrl())){
+               urlList.addAll(Arrays.asList(params.getStartUrl().split(",")));
+            }
+            if(StringUtils.isNotEmpty(params.getEndUrl())){
+                urlList.addAll(Arrays.asList(params.getEndUrl().split(",")));
+            }
+            params.setUrlList(urlList);
+            for (String s : params.getUrlList()) {
+                Distinction distinction = DistinctionConverter.INSTANCE.model2WebDTO(params);
+                String uid =  ossUtils.getFileFinger(s);
+                distinction.setUid(uid);
+                distinction.setUrl(s);
+                list.add(distinction);
+            }
+        }
+
+        distinctionService.insertBatch(list);
+        return VaultsResponse.success();
+    }
+
+}

+ 4 - 0
src/main/java/com/poteviohealth/cgp/statistics/mapper/DistinctionMapper.java

@@ -2,6 +2,7 @@ package com.poteviohealth.cgp.statistics.mapper;
 
 import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.poteviohealth.cgp.common.integrated.statistics.model.FingerParams;
 import com.poteviohealth.cgp.statistics.model.Distinction;
 import com.poteviohealth.cgp.statistics.model.outdto.DistinctionDTO;
 import org.apache.ibatis.annotations.Mapper;
@@ -21,4 +22,7 @@ public interface DistinctionMapper extends BaseMapper<Distinction>{
 
     @SqlParser(filter = true)
     void insertBatch(@Param("list") List<Distinction> list);
+
+    @SqlParser(filter = true)
+    List<FingerParams> getFinishOrderList();
 }

+ 3 - 0
src/main/java/com/poteviohealth/cgp/statistics/service/IDistinctionService.java

@@ -1,5 +1,6 @@
 package com.poteviohealth.cgp.statistics.service;
 
+import com.poteviohealth.cgp.common.integrated.statistics.model.FingerParams;
 import com.poteviohealth.cgp.common.service.IBaseService;
 import com.poteviohealth.cgp.statistics.model.Distinction;
 import com.poteviohealth.cgp.statistics.model.outdto.DistinctionDTO;
@@ -15,4 +16,6 @@ public interface IDistinctionService extends IBaseService<Distinction> {
 
     DistinctionDTO checkImg(File file, Long orderId, List<String> uidList);
     void insertBatch(List<Distinction> list);
+
+    List<FingerParams> getFinishOrderList();
 }

+ 6 - 0
src/main/java/com/poteviohealth/cgp/statistics/service/impl/DistinctionServiceImpl.java

@@ -5,6 +5,7 @@ import com.poteviohealth.cgp.common.filter.TokenContext;
 import com.poteviohealth.cgp.common.integrated.OperatorIdParams;
 import com.poteviohealth.cgp.common.integrated.partner.PartnerFeignClient;
 import com.poteviohealth.cgp.common.integrated.partner.model.OperatorParamDTO;
+import com.poteviohealth.cgp.common.integrated.statistics.model.FingerParams;
 import com.poteviohealth.cgp.common.model.VaultsResponse;
 import com.poteviohealth.cgp.common.service.impl.BaseServiceImpl;
 import com.poteviohealth.cgp.common.utils.CgpTool;
@@ -132,6 +133,11 @@ public class DistinctionServiceImpl extends BaseServiceImpl<DistinctionMapper, D
         baseMapper.insertBatch(list);
     }
 
+    @Override
+    public List<FingerParams> getFinishOrderList() {
+        return baseMapper.getFinishOrderList();
+    }
+
 
     private String orderCacheVal(String key){
         Integer operatorId = TokenContext.cureOperatorId();

+ 5 - 0
src/main/resources/mapper/statistics/DistinctionMapper.xml

@@ -43,4 +43,9 @@
         0
             &lt;=#{dCount} LIMIT 1
     </select>
+    <select id="getFinishOrderList" resultType="com.poteviohealth.cgp.common.integrated.statistics.model.FingerParams">
+        select o.order_id as orderId,o.supplier_id as supplierId,o.operator_id as operatorId,o.station_id as stationId,od.start_url as startUrl,od.end_url as endUrl from o_order_6 o,o_order_detail_6 od
+        where o.order_id = od.order_id and o.order_status not in(7,14)
+          and od.start_url is not null and o.start_time >= '2025-01-01 00:00:00'
+    </select>
 </mapper>