Browse Source

Merge branch 'master' of http://49.234.186.218:9000/root/ieplus

mingfu 1 month ago
parent
commit
dd3d4fc585

+ 2 - 2
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontQuestionsController.java

@@ -21,7 +21,7 @@ public class FrontQuestionsController extends BaseController {
 
     @ApiOperation("收藏试题")
     @PostMapping("collect")
-    public AjaxResult collect(@PathVariable Long questionId) {
+    public AjaxResult collect(Long questionId) {
         QuestionCollection questionCollection = new QuestionCollection();
         questionCollection.setUserId(SecurityUtils.getLoginUser().getUser().getUserId());
         questionCollection.setQuestionId(questionId);
@@ -33,7 +33,7 @@ public class FrontQuestionsController extends BaseController {
 
     @ApiOperation("取消收藏试题")
     @PostMapping("cancelCollect")
-    public AjaxResult cancelQuestionCollection(@PathVariable Long questionId) {
+    public AjaxResult cancelQuestionCollection(Long questionId) {
         Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
         return toAjax(questionCollectionService.deleteQuestionCollectionById(questionId, userId));
     }

+ 27 - 3
ie-admin/src/main/java/com/ruoyi/web/service/SysLoginService.java

@@ -4,11 +4,17 @@ import javax.annotation.Resource;
 
 import com.google.common.collect.Maps;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.ErrorCodes;
 import com.ruoyi.common.exception.ErrorException;
 import com.ruoyi.common.utils.PhoneUtils;
+import com.ruoyi.dz.domain.DzCards;
+import com.ruoyi.dz.service.IDzCardsService;
+import com.ruoyi.dz.service.impl.DzCardsServiceImpl;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.service.ShortMessageService;
+import com.ruoyi.web.controller.dz.DzCardsController;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.tuple.Pair;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
@@ -38,11 +44,13 @@ import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserService;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
 
 /**
  * 登录校验方法
- * 
+ *
  * @author ruoyi
  */
 @Component
@@ -56,7 +64,7 @@ public class SysLoginService
 
     @Autowired
     private RedisCache redisCache;
-    
+
     @Autowired
     private ISysUserService userService;
 
@@ -65,6 +73,8 @@ public class SysLoginService
 
     @Autowired
     private ShortMessageService shortMessageService;
+    @Autowired
+    private IDzCardsService cardsService;
 
     /**
      * 登录验证
@@ -77,6 +87,7 @@ public class SysLoginService
      */
     public AjaxResult login(String mobile, String username, String password, String code, String uuid) {
         if (StringUtils.isNotBlank(mobile)) {
+            //手机验证码登录:{code: "9", uuid: "cc94320c3fce4db5898213b727ac1dc0", mobile: "18774924158", password: "1234"}
             if (!shortMessageService.checkCode(mobile, password)) {
                 AsyncManager.me().execute(AsyncFactory.recordLogininfor(mobile, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
                 throw new CaptchaException();
@@ -86,9 +97,22 @@ public class SysLoginService
             password = UserConstants.LOGIN_SMS_PASS;
         } else {
             // 验证码校验
+            // 卡密登录json:{code: "0", uuid: "a9eee0b6729f42c4862a57acef8a4bdd", username: "20000025", password: "123456"}
             validateCaptcha(username, code, uuid);
             // 登录前置校验
             loginPreCheck(username, password);
+            //卡密登录时,要将卡的密码转换为用户的密码
+            DzCards card = cardsService.selectDzCardsByCardNo(username);
+            if (null==card){
+                return AjaxResult.error("卡不存在");
+            }
+            if (!password.trim().equalsIgnoreCase(card.getPassword())){
+                return AjaxResult.error("密码错误");
+            }
+            String dbPwd = userService.selectPasswordByCardId(card.getCardId());
+            if (StringUtils.isNotEmpty(dbPwd)){
+                password = dbPwd;
+            }
         }
         // 用户验证
         Authentication authentication = null;
@@ -170,7 +194,7 @@ public class SysLoginService
 
     /**
      * 校验验证码
-     * 
+     *
      * @param username 用户名
      * @param code 验证码
      * @param uuid 唯一标识

+ 10 - 8
ie-system/src/main/java/com/ruoyi/learn/service/impl/LearnQuestionsServiceImpl.java

@@ -110,13 +110,15 @@ public class LearnQuestionsServiceImpl implements ILearnQuestionsService
             return;
         }
         List<Long> ids = questions.stream().map(LearnQuestions::getId).collect(Collectors.toList());
-        Map<String, Object> map = new HashMap<String, Object>();
-        map.put("userId", userId);
-        map.put("ids", ids);
-        List<LearnQuestions> collectInfos = learnQuestionsMapper.selectCollectInfo(map);
-        Set<Long> collected = collectInfos.stream().map(LearnQuestions::getId).collect(Collectors.toSet());
-        questions.forEach(e -> {
-            e.setCollect(collected.contains(e.getId()));
-        });
+        if (CollectionUtils.isNotEmpty(ids)){
+            Map<String, Object> map = new HashMap<String, Object>();
+            map.put("userId", userId);
+            map.put("ids", ids);
+            List<LearnQuestions> collectInfos = learnQuestionsMapper.selectCollectInfo(map);
+//            Set<Long> collected = collectInfos.stream().map(LearnQuestions::getId).collect(Collectors.toSet());
+            questions.forEach(e -> {
+                e.setCollect(true);
+            });
+        }
     }
 }

+ 1 - 0
ie-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java

@@ -45,6 +45,7 @@ public interface SysUserMapper
      * @return 用户对象信息
      */
     public SysUser selectUserByUserName(String userName);
+    public String selectPasswordByCardId(Long cardId);
 
     /**
      * 通过手机号查用户

+ 1 - 1
ie-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -44,7 +44,7 @@ public interface ISysUserService
      * @return 用户对象信息
      */
     public SysUser selectUserByUserName(String userName);
-
+    public String selectPasswordByCardId(Long cardId);
     /**
      * 通过 手机号 查询用户
      * @param mobileNo

+ 4 - 0
ie-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -125,6 +125,10 @@ public class SysUserServiceImpl implements ISysUserService
      * @return 用户对象信息
      */
     @Override
+    public String selectPasswordByCardId(Long cardId)
+    {
+        return userMapper.selectPasswordByCardId(cardId);
+    }
     public SysUser selectUserByUserName(String userName)
     {
         return userMapper.selectUserByUserName(userName);

+ 2 - 3
ie-system/src/main/resources/mapper/learn/LearnQuestionsMapper.xml

@@ -321,13 +321,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select q.* from mxjb_question_collection c
         left join learn_questions q on c.question_id = q.id
         left join dz_subject s on q.subjectId = s.subject_id
-        where c.user_id = #{userId}
-        and q.subjectId = #{subjectId}
+        <if test="subjectId != null "> and q.subjectId = #{subjectId}  = #{subjectId}</if>
     </select>
 
     <select id="selectCollectInfo"  parameterType="java.util.HashMap" resultMap="LearnQuestionsResult">
         SELECT q.id from mxjb_question_collection c
-        left join questions q on c.question_id = q.id
+        left join learn_questions q on c.question_id = q.id
         where user_id = #{userId}
         and c.question_id in
         <foreach item="id" collection="ids" open="(" separator="," close=")">

+ 4 - 0
ie-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -134,6 +134,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		${params.dataScope}
 	</select>
 
+	<select id="selectPasswordByCardId" parameterType="Long" resultType="String">
+		select u.password2 from sys_user u where u.card_id = #{cardId} and u.del_flag = '0'
+	</select>
+
 	<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
 	    <include refid="selectUserVo"/>
 		where u.user_name = #{userName} and u.del_flag = '0'