From 7666113e060747cce6be99e0deb68485b4283161 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 20 十月 2025 10:38:41 +0800
Subject: [PATCH] 钥匙柜 电信大屏  配置文件

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java |  147 ++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 138 insertions(+), 9 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
index 161d43f..cd2a697 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/JkCabinetServiceImpl.java
@@ -6,21 +6,18 @@
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.DateUtil;
+import com.doumee.dao.business.CategoryMapper;
 import com.doumee.dao.business.JkCabinetGridMapper;
 import com.doumee.dao.business.JkKeysMapper;
-import com.doumee.dao.business.model.JkCabinetGrid;
-import com.doumee.dao.business.model.JkKeys;
-import com.doumee.dao.business.vo.AdminCabinetVO;
-import com.doumee.dao.business.vo.CabinetConfigDataVO;
-import com.doumee.dao.business.vo.CabinetDetailVO;
-import com.doumee.dao.business.vo.CabinetGridInfoVO;
+import com.doumee.dao.business.dao.MemberMapper;
+import com.doumee.dao.business.model.*;
+import com.doumee.dao.business.vo.*;
 import com.doumee.dao.system.model.SystemDictData;
 import com.doumee.service.business.third.model.LoginUserInfo;
 import com.doumee.service.business.third.model.PageData;
 import com.doumee.service.business.third.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.JkCabinetMapper;
-import com.doumee.dao.business.model.JkCabinet;
 import com.doumee.service.business.JkCabinetService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -51,6 +48,9 @@
     private JkCabinetMapper jkCabinetMapper;
 
     @Autowired
+    private CategoryMapper categoryMapper;
+
+    @Autowired
     private JkCabinetGridMapper jkCabinetGridMapper;
 
     @Autowired
@@ -58,6 +58,9 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private MemberMapper memberMapper;
 
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -261,6 +264,16 @@
             jkCabinet.setJwd(jkCabinet.getLongitude() + "," + jkCabinet.getLatitude());
         }
         jkCabinet.setGridNum(jkCabinet.getColumnNum()*jkCabinet.getRowNum());
+        if(StringUtils.isNotBlank(jkCabinet.getManagerId())){
+            jkCabinet.setManagerIdList(Arrays.asList(
+                    jkCabinet.getManagerId().split(",")
+            ));
+        }
+        if(StringUtils.isNotBlank(jkCabinet.getAuthMemberId())){
+            jkCabinet.setAuthMemberIdList(Arrays.asList(
+                    jkCabinet.getAuthMemberId().split(",")
+            ));
+        }
         return jkCabinet;
     }
 
@@ -277,7 +290,7 @@
         QueryWrapper<JkCabinet> wrapper = new QueryWrapper<>(jkCabinet);
         return jkCabinetMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<JkCabinet> findPage(PageWrap<JkCabinet> pageWrap) {
         IPage<JkCabinet> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -373,11 +386,12 @@
 
 
     @Override
-    public CabinetDetailVO getCabinetDetail(Integer cabinetId){
+    public CabinetDetailVO getCabinetDetail(Integer cabinetId,LoginUserInfo loginUserInfo){
         CabinetDetailVO cabinetDetailVO = new CabinetDetailVO();
         JkCabinet cabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
                 .lambda()
                 .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+                .apply(" FIND_IN_SET("+loginUserInfo.getId()+",MANAGER_ID) ")
                 .eq(JkCabinet::getId,cabinetId)
                 .last(" limit 1")
         );
@@ -433,4 +447,119 @@
     }
 
 
+
+    @Override
+    public CabinetFaceVO getCabinetFaceVO(String code){
+        CabinetFaceVO cabinetFaceVO = new CabinetFaceVO();
+        List<CabinetFaceInfoVO> driverFaceList = new ArrayList<>();
+        List<CabinetFaceInfoVO> autoFaceList = new ArrayList<>();
+
+        JkCabinet jkCabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>().lambda()
+                .eq(JkCabinet::getCode,code)
+                .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+                .last("limit 1")
+        );
+        if(Objects.nonNull(jkCabinet)){
+            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode();
+            //鏌ヨ鍙告満淇℃伅
+            List<JkCabinetGrid> jkCabinetGridList = jkCabinetGridMapper.selectJoinList(JkCabinetGrid.class,new MPJLambdaWrapper<JkCabinetGrid>()
+                    .selectAll(JkCabinetGrid.class)
+                    .selectAs(JkKeys::getCarId,JkCabinetGrid::getCarId)
+                    .innerJoin(JkKeys.class,JkKeys::getId,JkCabinetGrid::getKeyId)
+                    .eq(JkCabinetGrid::getIsdeleted,Constants.ZERO)
+                    .eq(JkKeys::getIsdeleted,Constants.ZERO)
+                    .isNotNull(JkKeys::getCarId)
+                    .eq(JkCabinetGrid::getCabinetId,jkCabinet.getId())
+            );
+            if(CollectionUtils.isNotEmpty(jkCabinetGridList)){
+                List<Integer> carIdList = jkCabinetGridList.stream().map(i->i.getKeyId()).collect(Collectors.toList());
+                //鏌ヨ杞﹁締鎵�鏈変汉鍛樹俊鎭�
+                List<Member> memberList = memberMapper.selectJoinList(Member.class,new MPJLambdaWrapper<Member>()
+                        .selectAll(Member.class)
+                        .leftJoin(CarDriver.class,CarDriver::getMemberId,Member::getId)
+                        .eq(Member::getIsdeleted,Constants.ZERO)
+                        .eq(CarDriver::getIsdeleted,Constants.ZERO)
+                        .eq(CarDriver::getStatus,Constants.ZERO)
+                        .isNotNull(Member::getFaceImg)
+                        .in(CarDriver::getCarId,carIdList)
+                );
+                if(CollectionUtils.isNotEmpty(memberList)){
+                    Set<Member> memberSet = new HashSet<>(memberList);
+                    for (Member member:memberSet) {
+                        CabinetFaceInfoVO cabinetFaceInfoVO = new CabinetFaceInfoVO();
+                        cabinetFaceInfoVO.setMemberId(member.getId());
+                        cabinetFaceInfoVO.setMemberName(member.getName());
+                        cabinetFaceInfoVO.setFaceImg(prefixUrl + member.getFaceImg());
+                        driverFaceList.add(cabinetFaceInfoVO);
+                    }
+                }
+            }
+            //鏌ヨ璁惧楠岃瘉浜哄憳
+            List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                    .eq(Member::getIsdeleted,Constants.ZERO)
+                    .isNotNull(Member::getFaceImg)
+                    .apply(" FIND_IN_SET( id ,'"+jkCabinet.getManagerId()+"') ")
+            );
+            if(CollectionUtils.isNotEmpty(memberList)){
+                for (Member member:memberList) {
+                    CabinetFaceInfoVO cabinetFaceInfoVO = new CabinetFaceInfoVO();
+                    cabinetFaceInfoVO.setMemberId(member.getId());
+                    cabinetFaceInfoVO.setMemberName(member.getName());
+                    cabinetFaceInfoVO.setFaceImg(prefixUrl + member.getFaceImg());
+                    autoFaceList.add(cabinetFaceInfoVO);
+                }
+            }
+
+        }
+        cabinetFaceVO.setAutoFaceList(autoFaceList);
+        cabinetFaceVO.setDriverFaceList(driverFaceList);
+        return cabinetFaceVO;
+    }
+
+
+    @Override
+    public CabinetInfoVO getCabinetInfoForDriver(String code){
+        JkCabinet jkCabinet = jkCabinetMapper.selectOne(new QueryWrapper<JkCabinet>()
+                .lambda()
+                .eq(JkCabinet::getIsdeleted,Constants.ZERO)
+                .eq(JkCabinet::getCode,code)
+                .orderByAsc(JkCabinet::getCreateDate)
+                .last(" limit 1 ")
+        );
+        CabinetInfoVO cabinetInfoVO = new CabinetInfoVO();
+        if(Objects.nonNull(jkCabinet)){
+            BeanUtil.copyProperties(jkCabinet,cabinetInfoVO);
+        }
+        List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().lambda()
+                .eq(Category::getIsdeleted,Constants.ZERO)
+                .eq(Category::getStatus,Constants.ZERO)
+                .eq(Category::getType,Constants.THREE)
+                .orderByAsc(Category::getSortnum)
+        );
+        if(CollectionUtils.isNotEmpty(categoryList)){
+            String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() +
+                    systemDictDataBiz.queryByCode(Constants.FTP,Constants.BANNER_IMG).getCode();
+            for (Category category:categoryList) {
+                category.setImgurlFull(prefixUrl + category.getImgurl());
+            }
+            cabinetInfoVO.setBannerList(
+                    categoryList.stream().map(i->i.getImgurlFull()).collect(Collectors.toList())
+            );
+        }
+        return cabinetInfoVO;
+    }
+
+
+
+    @Override
+    public void updateRunStatusById(Integer id) {
+        jkCabinetMapper.update(null,new UpdateWrapper<JkCabinet>()
+                .lambda().set(JkCabinet::getRunStatus,Constants.ZERO)
+                .set(JkCabinet::getEditDate, DateUtil.getCurrDateTime())
+                .set(JkCabinet::getHaertTime, DateUtil.getCurrDateTime())
+                .eq(JkCabinet::getId,id));
+    }
+
+
 }

--
Gitblit v1.9.3