Browse Source

Merge branch 'lcy' of http://47.107.53.207:3000/traineeCoder001/Bailian-Al

JensionDzero 1 year ago
parent
commit
ba0411f20b

+ 3 - 2
ruoyi-demo/src/main/java/com/ruoyi/demo/controller/BrandController.java

@@ -140,8 +140,9 @@ public class BrandController extends BaseController {
         List<String> brandId = body.getBrandId();
         if (brandId == null || brandId.size() == 0)
             return R.fail("brandId不允许为空");
-        List<BrandEvolveVo> vos = brandService.searchEvolveByMulti(addrCode, typeCode, brandId);
-        return R.ok(vos);
+//        List<BrandEvolveVo> vos = brandService.searchEvolveByMulti(addrCode, typeCode, brandId);
+//        return R.ok(vos);
+        return R.ok(brandService.searchEvolveByMulti2Map(addrCode, typeCode, brandId));
     }
 
 //    连锁品牌近期开关店情况(开点量)

+ 2 - 0
ruoyi-demo/src/main/java/com/ruoyi/demo/service/BrandService.java

@@ -11,6 +11,7 @@ import com.ruoyi.demo.entity.vo.OpcloseTimeVo;
 
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
 
 public interface BrandService {
     List<BrandSearch> searchByLikeName(String text);
@@ -29,6 +30,7 @@ public interface BrandService {
     List<BrandOpcloseVo> searchOpenByMulti(List<String> typeCodes, LocalDateTime startTime, LocalDateTime endTime);
     List<BrandOpcloseVo> searchCloseByMulti(List<String> typeCodes, LocalDateTime startTime, LocalDateTime endTime);
     List<BrandEvolveVo> searchEvolveByMulti(List<String> addrCodes, List<String> typeCodes, List<String> brandIds);
+    Map<String,List<BrandEvolveVo>> searchEvolveByMulti2Map(List<String> addrCodes, List<String> typeCodes, List<String> brandIds);
     List<OpcloseTimeVo> searchOpenTims(List<String> brandIds, List<String> addrCodes, List<String> typeCodeBys);
     List<OpcloseTimeVo> searchCloseTims(List<String> brandIds,List<String> addrCodes,List<String> typeCodeBys);
 

+ 95 - 6
ruoyi-demo/src/main/java/com/ruoyi/demo/service/impl/BrandServiceImpl.java

@@ -6,10 +6,7 @@ import com.github.pagehelper.PageInfo;
 
 import com.ruoyi.demo.entity.*;
 import com.ruoyi.demo.entity.bo.*;
-import com.ruoyi.demo.entity.vo.BrandEvolveVo;
-import com.ruoyi.demo.entity.vo.BrandOpcloseVo;
-import com.ruoyi.demo.entity.vo.ListQueryBody;
-import com.ruoyi.demo.entity.vo.OpcloseTimeVo;
+import com.ruoyi.demo.entity.vo.*;
 import com.ruoyi.demo.mapper.*;
 import com.ruoyi.demo.service.BrandService;
 import com.ruoyi.demo.utils.CategoryUtil;
@@ -566,6 +563,68 @@ public class BrandServiceImpl implements BrandService {
         return vos;
     }
 
+    @Override
+    public Map<String, List<BrandEvolveVo>> searchEvolveByMulti2Map(List<String> addrCodes, List<String> typeCodes, List<String> brandIds) {
+        List<String> addrs = new ArrayList<>();
+        if (addrCodes != null){
+            for (String code : addrCodes){
+                addrs.add(code);
+                List<String> otherAddrCode = categoryUtil.getAllOtherAddrCode(code);
+                addrs.addAll(otherAddrCode);
+            }
+        }else{
+            addrs = null;
+        }
+        List<String> types = new ArrayList<>();
+        if (typeCodes != null){
+            for (String code : typeCodes){
+                types.add(code);
+                List<String> otherTypeBy = categoryUtil.getAllOtherTypeBy(code);
+                types.addAll(otherTypeBy);
+            }
+        }else{
+            types = null;
+        }
+        List<BrandEvolveVo> vos = new ArrayList<>();
+        for (String brandId : brandIds){
+            List<BrandEvolveVo> evolveVos = brandEvolveDao.selectByMulti(addrs, types, brandId);
+            for (int i=0; i<evolveVos.size(); i++){
+                if (i == 0)
+                    continue;
+                evolveVos.get(i).setTotal(evolveVos.get(i-1).getTotal()+evolveVos.get(i).getTotal());
+            }
+            vos.addAll(evolveVos);
+        }
+        Map<String,List<BrandEvolveVo>> times = new HashMap<>();
+        for (BrandEvolveVo vo : vos){
+            if (times.get(vo.getTime()) == null){
+                List<BrandEvolveVo> evos = new ArrayList<>();
+                evos.add(vo);
+                times.put(vo.getTime(),evos);
+            }else{
+                List<BrandEvolveVo> brandEvolveVos = times.get(vo.getTime());
+                brandEvolveVos.add(vo);
+            }
+        }
+        return times;
+    }
+
+    public Integer timeUtil(String time){
+        String[] split = time.split(":");
+        int hour = Integer.parseInt(split[0]);
+        int min = Integer.parseInt(split[1]);
+        return hour*100+min;
+    }
+    public int compareTime(String time1, String time2){
+        int result = timeUtil(time1).compareTo(timeUtil(time2));
+//        if (result > 0)
+//            System.out.println(time1 + " > " + time2);
+//        if (result == 0)
+//            System.out.println(time1 + " = " + time2);
+//        if (result < 0)
+//            System.out.println(time1 + " < " + time2);
+        return result;
+    }
     @Override
     public List<OpcloseTimeVo> searchOpenTims(List<String> brandIds, List<String> addrCodes, List<String> typeCodeBys) {
         List<String> addrs = new ArrayList<>();
@@ -591,7 +650,22 @@ public class BrandServiceImpl implements BrandService {
         }else
             types = null;
         List<OpcloseTimeVo> vos = storeWdOpcloseDao.selectBrandOpenTimes(brandIds, addrs, types);
-        return vos;
+        List<OpcloseTimeVo> rvos = new ArrayList<>();
+        for (int i = 0;i < 24; i+=2){
+            OpcloseTimeVo vo = new OpcloseTimeVo();
+            vo.setTime(i+":00~"+(i+2)+":00");
+            vo.setCount(0);
+            rvos.add(vo);
+        }
+        for (OpcloseTimeVo vo : vos){
+            for (OpcloseTimeVo rvo : rvos){
+                String[] times = rvo.getTime().split("~");
+                if (compareTime(vo.getTime(),times[0]) < 0 || compareTime(times[1],vo.getTime()) < 0)
+                    continue;
+                rvo.setCount(rvo.getCount() + vo.getCount());
+            }
+        }
+        return rvos;
     }
 
     @Override
@@ -619,6 +693,21 @@ public class BrandServiceImpl implements BrandService {
         }else
             types = null;
         List<OpcloseTimeVo> vos = storeWdOpcloseDao.selectBrandCloseTimes(brandIds, addrs, types);
-        return vos;
+        List<OpcloseTimeVo> rvos = new ArrayList<>();
+        for (int i = 0;i < 24; i+=2){
+            OpcloseTimeVo vo = new OpcloseTimeVo();
+            vo.setTime(i+":00~"+(i+2)+":00");
+            vo.setCount(0);
+            rvos.add(vo);
+        }
+        for (OpcloseTimeVo vo : vos){
+            for (OpcloseTimeVo rvo : rvos){
+                String[] times = rvo.getTime().split("~");
+                if (compareTime(vo.getTime(),times[0]) < 0 || compareTime(times[1],vo.getTime()) < 0)
+                    continue;
+                rvo.setCount(rvo.getCount() + vo.getCount());
+            }
+        }
+        return rvos;
     }
 }