Pārlūkot izejas kodu

添加获取上周用户最大uu号接口

wangmh 7 gadi atpakaļ
vecāks
revīzija
9903f2d44f

+ 9 - 0
sso-server/src/main/java/com/uas/sso/controller/UserManagerController.java

@@ -617,4 +617,13 @@ public class UserManagerController extends BaseController {
     public ModelMap getUserByImId(String imId) {
         return success(userService.findByImId(imId));
     }
+
+    /**
+     * 获取用户上周最大uu号
+     * @return 上周最大uu号(周一算第一天)
+     */
+    @GetMapping("/maxuu/lastWeek")
+    public ModelMap getMaxUUInLastWeek() {
+        return success(userService.getMaxUUInLastWeek());
+    }
 }

+ 9 - 0
sso-server/src/main/java/com/uas/sso/dao/UserDao.java

@@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.Query;
 import org.springframework.data.repository.query.Param;
 
 import java.sql.Timestamp;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -147,4 +148,12 @@ public interface UserDao extends JpaRepository<User, Long>, JpaSpecificationExec
      * @return 用户信息
      */
     User findByImId(String imId);
+
+    /**
+     * 查询一定时间之前
+     * @param time
+     * @return
+     */
+    @Query("select max(user.userUU) from User user where user.registerDate < :time")
+    Long findMaxUUBefore(@Param("time") Date time);
 }

+ 6 - 0
sso-server/src/main/java/com/uas/sso/service/UserService.java

@@ -461,4 +461,10 @@ public interface UserService {
      * @throws ParseException
      */
     Long countByLoginInputMonth(String startTime,String endTime, int month) throws ParseException;
+
+    /**
+     * 获取上周用户最大uu号
+     * @return 上周最大uu号(周一算第一天)
+     */
+    Long getMaxUUInLastWeek();
 }

+ 15 - 2
sso-server/src/main/java/com/uas/sso/service/impl/UserServiceImpl.java

@@ -23,7 +23,6 @@ import com.uas.sso.support.SyncFail;
 import com.uas.sso.util.AccountTypeUtils;
 import com.uas.sso.util.CountUtils;
 import com.uas.sso.util.PasswordLevelUtils;
-import net.sf.ehcache.search.aggregator.Count;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -35,7 +34,6 @@ import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
-import javax.persistence.Version;
 import javax.persistence.criteria.*;
 import javax.validation.constraints.NotNull;
 import java.sql.Timestamp;
@@ -670,6 +668,21 @@ public class UserServiceImpl implements UserService {
 
     }
 
+    @Override
+    public Long getMaxUUInLastWeek() {
+        Calendar start = Calendar.getInstance();
+        start.set(Calendar.HOUR_OF_DAY, 0);
+        start.set(Calendar.MINUTE, 0);
+        start.set(Calendar.SECOND, 0);
+        start.set(Calendar.MILLISECOND, 0);
+        int dayofweek = start.get(Calendar.DAY_OF_WEEK);
+        if (dayofweek == 1) {
+            dayofweek += 7;
+        }
+        start.add(Calendar.DATE, 2 - dayofweek);
+        return userDao.findMaxUUBefore(start.getTime());
+    }
+
     @Override
     public long countByRegisterDate(final Calendar start, final Calendar end) {
         return userDao.count(new Specification<User>() {