Explorar o código

fix 收藏题目

he2802 %!s(int64=4) %!d(string=hai) anos
pai
achega
e9083b0849

+ 1 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -70,7 +70,7 @@ public class UserController extends BaseController {
     public AjaxResult infoAttached() {
         ClientLoginUser loginUser = wxTokenService.getLoginUser(ServletUtils.getRequest());
         int collectTotal = iUserService.getCollectTotal(loginUser.getUser().getUserId());
-        int rank = iUserService.getRank(loginUser.getUser().getUserId());
+        Integer rank = iUserService.getRank(loginUser.getUser().getUserId());
         Map<String,Object> map = new HashMap<>();
         map.put("collectTotal",collectTotal);
         map.put("rank",rank);

+ 30 - 9
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -26,6 +26,7 @@ import com.zhongzheng.modules.user.mapper.UserMapper;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.vo.RanKingUser;
 import com.zhongzheng.modules.user.vo.UserVo;
+import io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -179,10 +180,18 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
             query.setStartTime(zero);
             query.setEndTime(tt);
             ranKingUser= baseMapper.selectByRank(query);
-            Integer rank = baseMapper.selectByRankOne(ranKingUser.getHourse());
-            ranKingUser.setRank(rank);
+            if (ranKingUser != null && ranKingUser.getHourse() != null) {
+                Integer rank = baseMapper.selectByRankOne(ranKingUser.getHourse());
+                ranKingUser.setRank(rank);
+            }else {
+                ranKingUser = baseMapper.selectByOneRank(query);
+                ranKingUser.setRank(0);
+            }
             List<RanKingUser> ranKingUsers = baseMapper.selectByRanks(query);
-            ranKingUser.setRanKingUsers(ranKingUsers);
+            if (ranKingUsers != null && ranKingUsers.size() != 0) {
+                ranKingUser.setRanKingUsers(ranKingUsers);
+            }
+
         }else {
             Calendar cal = Calendar.getInstance();
             int month = cal.get(Calendar.MONTH) + 1;
@@ -191,16 +200,25 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
             query.setStartTime(firstDayOfMonth);
             query.setEndTime(lastDayOfMonth);
             ranKingUser= baseMapper.selectByRank(query);
+            if (ranKingUser != null && ranKingUser.getHourse() != null)  {
+                Integer rank = baseMapper.selectByRankOne(ranKingUser.getHourse());
+                ranKingUser.setRank(rank);
+            }else {
+                ranKingUser = baseMapper.selectByOneRank(query);
+                ranKingUser.setRank(0);
+            }
             List<RanKingUser> ranKingUsers = baseMapper.selectByRanks(query);
-            ranKingUser.setRanKingUsers(ranKingUsers);
+            if (ranKingUsers != null && ranKingUsers.size() != 0) {
+                ranKingUser.setRanKingUsers(ranKingUsers);
+            }
         }
         return ranKingUser;
 
     }
 
     @Override
-    public int getRank(Long userId) {
-        RanKingUserQuery query =new RanKingUserQuery();
+    public Integer getRank(Long userId) {
+        RanKingUserQuery query = new RanKingUserQuery();
         query.setUserId(userId);
         Long time = System.currentTimeMillis();
         long zero1 = time / (1000 * 3600 * 24) * (1000 * 3600 * 24) - TimeZone.getDefault().getRawOffset();
@@ -210,9 +228,12 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         long tt = calendar.getTime().getTime() / 1000;
         query.setStartTime(zero);
         query.setEndTime(tt);
-        RanKingUser ranKingUser= baseMapper.selectByRank(query);
-        Integer rank = baseMapper.selectByRankOne(ranKingUser.getHourse());
-        return rank;
+        RanKingUser ranKingUser = baseMapper.selectByRank(query);
+        if (ranKingUser != null && ranKingUser.getHourse() != null) {
+            Integer rank = baseMapper.selectByRankOne(ranKingUser.getHourse());
+            return rank;
+         }
+        return 0;
     }
 
     /**

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMapper.java

@@ -20,4 +20,6 @@ public interface UserMapper extends BaseMapper<User> {
     List<RanKingUser> selectByRanks(RanKingUserQuery query);
 
     Integer selectByRankOne(Integer hourse);
+
+    RanKingUser selectByOneRank(RanKingUserQuery query);
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java

@@ -61,5 +61,5 @@ public interface IUserService extends IService<User> {
 
 	RanKingUser rankingList(RanKingUserQuery bo);
 
-	int getRank(Long userId);
+	Integer getRank(Long userId);
 }

+ 11 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -90,4 +90,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
 
+
+    <select id="selectByOneRank" parameterType="com.zhongzheng.modules.user.bo.RanKingUserQuery" resultMap="RanKingUserResult">
+        SELECT u.nickname,u.avatar   FROM `user` u
+        where 1=1
+        <if test="userId != null and userId != ''">
+            AND u.user_id = #{userId}
+        </if>
+        GROUP BY u.user_id
+    </select>
+
+
 </mapper>