Parcourir la source

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

ZhouRuiTing il y a 5 ans
Parent
commit
c100bde103

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/ScreenshotController.java

@@ -51,7 +51,7 @@ public class ScreenshotController {
      */
     @RequestMapping("/getScreenshotDate")
     public HttpRespMsg getScreenshotDate(@RequestParam String date) {
-        return screenshotService.getScreenshotDate(date);
+        return screenshotService.getScreenshotDate(date, request);
     }
 }
 

+ 5 - 3
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/mapper/ScreenshotMapper.java

@@ -1,7 +1,7 @@
 package com.management.platform.mapper;
 
-import com.management.platform.entity.Screenshot;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.management.platform.entity.Screenshot;
 import com.management.platform.entity.vo.ScreenshotVO;
 import com.management.platform.util.HttpRespMsg;
 import org.apache.ibatis.annotations.Param;
@@ -18,8 +18,10 @@ import java.util.Map;
  * @since 2020-01-02
  */
 public interface ScreenshotMapper extends BaseMapper<Screenshot> {
-    List<Map<String, Object>> getLatestScreenshotList(@Param("companyId")Integer companyId,
-                                                      @Param("date")String date);
+    List<Map<String, Object>> getLatestScreenshotList(@Param("companyId") Integer companyId,
+                                                      @Param("date") String date);
+
+    List<Integer> getCompanyUserId(@Param("id") String id);
 
     HttpRespMsg saveAndProcessImage(ScreenshotVO screenshotvo);
 }

+ 1 - 1
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/ScreenshotService.java

@@ -20,7 +20,7 @@ public interface ScreenshotService extends IService<Screenshot> {
 
     HttpRespMsg getTodayScreenshotList(String userId, String date);
 
-    HttpRespMsg getScreenshotDate(String date);
+    HttpRespMsg getScreenshotDate(String date, HttpServletRequest request);
 
     HttpRespMsg saveAndProcessImage(ScreenshotVO screenshotvo);
 

+ 39 - 29
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ScreenshotServiceImpl.java

@@ -259,41 +259,51 @@ public class ScreenshotServiceImpl extends ServiceImpl<ScreenshotMapper, Screens
     }
 
     @Override
-    public HttpRespMsg getScreenshotDate(String date) {
+    public HttpRespMsg getScreenshotDate(String date, HttpServletRequest request) {
         HttpRespMsg httpRespMsg = new HttpRespMsg();
-        if (screenshotMapper.selectCount(new QueryWrapper<Screenshot>().eq("date_str", date)) > 0) {
-            //当天有截图
-            httpRespMsg.data = date;
-        } else {
-            String futureDateString = screenshotMapper.selectOne(new QueryWrapper<Screenshot>()
-                    .gt("date_str", date)
-                    .orderByAsc("date_str")
-                    .last("LIMIT 1"))
-                    .getDateStr();
-            String historyDateString = screenshotMapper.selectOne(new QueryWrapper<Screenshot>()
-                    .lt("date_str", date)
-                    .orderByDesc("date_str")
-                    .last("LIMIT 1"))
-                    .getDateStr();
-            if (futureDateString == null && historyDateString == null) {
-                httpRespMsg = null;
-            } else if (futureDateString == null) {
-                httpRespMsg.data = historyDateString;
-            } else if (historyDateString == null) {
-                httpRespMsg.data = futureDateString;
+        try {
+            List<Integer> userIdList = screenshotMapper.getCompanyUserId(request.getHeader("Token"));
+            if (screenshotMapper.selectCount(new QueryWrapper<Screenshot>()
+                    .eq("date_str", date)
+                    .in("uid", userIdList)) > 0) {
+                //当天有截图
+                httpRespMsg.data = date;
             } else {
-                DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-                LocalDate localDate = LocalDate.parse(date, dateTimeFormatter);
-                LocalDate futureDate = LocalDate.parse(futureDateString, dateTimeFormatter);
-                LocalDate historyDate = LocalDate.parse(historyDateString, dateTimeFormatter);
-                Long future = ChronoUnit.DAYS.between(localDate, futureDate);
-                Long history = ChronoUnit.DAYS.between(historyDate, localDate);
-                if (future >= history) {
+                Screenshot futureScreenshot = screenshotMapper.selectOne(new QueryWrapper<Screenshot>()
+                        .gt("date_str", date)
+                        .in("uid", userIdList)
+                        .orderByAsc("date_str")
+                        .last("LIMIT 1"));
+                Screenshot historyScreenshot = screenshotMapper.selectOne(new QueryWrapper<Screenshot>()
+                        .lt("date_str", date)
+                        .in("uid", userIdList)
+                        .orderByDesc("date_str")
+                        .last("LIMIT 1"));
+                String futureDateString = futureScreenshot != null ? futureScreenshot.getDateStr() : null;
+                String historyDateString = historyScreenshot != null ? historyScreenshot.getDateStr() : null;
+                if (futureDateString == null && historyDateString == null) {
+                    httpRespMsg = null;
+                } else if (futureDateString == null) {
                     httpRespMsg.data = historyDateString;
-                } else {
+                } else if (historyDateString == null) {
                     httpRespMsg.data = futureDateString;
+                } else {
+                    DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+                    LocalDate localDate = LocalDate.parse(date, dateTimeFormatter);
+                    LocalDate futureDate = LocalDate.parse(futureDateString, dateTimeFormatter);
+                    LocalDate historyDate = LocalDate.parse(historyDateString, dateTimeFormatter);
+                    Long future = ChronoUnit.DAYS.between(localDate, futureDate);
+                    Long history = ChronoUnit.DAYS.between(historyDate, localDate);
+                    if (future >= history) {
+                        httpRespMsg.data = historyDateString;
+                    } else {
+                        httpRespMsg.data = futureDateString;
+                    }
                 }
             }
+        } catch (NullPointerException e) {
+            httpRespMsg.setError("验证失败");
+            return httpRespMsg;
         }
         return httpRespMsg;
     }

+ 11 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/resources/mapper/ScreenshotMapper.xml

@@ -41,4 +41,15 @@
         </if>
     </select>
 
+    <!--获取某公司所有人的id-->
+    <select id="getCompanyUserId" resultType="java.lang.String">
+        SELECT id
+        FROM user
+        WHERE company_id = (
+        SELECT company_id
+        FROM user
+        WHERE id = #{id}
+        )
+    </select>
+
 </mapper>