Prechádzať zdrojové kódy

供应商临时密码登陆

zhijiezhao 9 mesiacov pred
rodič
commit
8260c9d43e

+ 147 - 114
src/main/java/com/caimei365/user/components/RedisService.java

@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -23,272 +24,304 @@ import java.util.concurrent.TimeUnit;
 @Service
 public class RedisService {
 
-	@Resource
-	private RedisTemplate<Serializable, Object> redisTemplate;
+    @Resource
+    private RedisTemplate<Serializable, Object> redisTemplate;
 
     /**
      * 批量删除
+     *
      * @param keys
      */
-	public void remove(String... keys) {
-		for(String key :keys){
-			remove(key);
-		}
-	}
+    public void remove(String... keys) {
+        for (String key : keys) {
+            remove(key);
+        }
+    }
 
     /**
      * 批量删除正则匹配到的
+     *
      * @param pattern
      */
-	public void removePattern(String pattern) {
-		Set<Serializable> keys = redisTemplate.keys(pattern);
+    public void removePattern(String pattern) {
+        Set<Serializable> keys = redisTemplate.keys(pattern);
         assert keys != null;
-        if (keys.size() > 0){
-			redisTemplate.delete(keys);
-		}
-	}
+        if (keys.size() > 0) {
+            redisTemplate.delete(keys);
+        }
+    }
 
     /**
      * 删除
+     *
      * @param key
      */
-	public void remove(String key) {
-		if (exists(key)) {
-			redisTemplate.delete(key);
-		}
-	}
+    public void remove(String key) {
+        if (exists(key)) {
+            redisTemplate.delete(key);
+        }
+    }
 
     /**
      * 判断缓存中是否存在
+     *
      * @param key
      * @return boolean
      */
-	public boolean exists(String key) {
-		return StringUtils.isBlank(key) ? false : redisTemplate.hasKey(key);
-	}
+    public boolean exists(String key) {
+        return StringUtils.isBlank(key) ? false : redisTemplate.hasKey(key);
+    }
 
     /**
      * 读取缓存
+     *
      * @param key
      * @return
      */
-	public Object get(String key) {
-		Object result = null;
-		ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
-		result = operations.get(key);
-		return result;
-	}
+    public Object get(String key) {
+        Object result = null;
+        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+        result = operations.get(key);
+        return result;
+    }
 
     /**
      * 写入缓存
+     *
      * @param key
      * @param value
      * @return
      */
-	public boolean set(String key, Object value) {
-		boolean result = false;
-		try {
-			ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
-			operations.set(key, value);
-			result = true;
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    public boolean set(String key, Object value) {
+        boolean result = false;
+        try {
+            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+            operations.set(key, value);
+            result = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
 
     /**
      * 写入缓存并加上过期时间(秒)
+     *
      * @param key
      * @param value
      * @param expireTimeSeconds
      * @return
      */
-	public boolean set(String key, Object value, Long expireTimeSeconds) {
-		boolean result = false;
-		try {
-			ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
-			operations.set(key, value);
-			redisTemplate.expire(key, expireTimeSeconds, TimeUnit.SECONDS);
-			result = true;
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    public boolean set(String key, Object value, Long expireTimeSeconds) {
+        boolean result = false;
+        try {
+            ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+            operations.set(key, value);
+            redisTemplate.expire(key, expireTimeSeconds, TimeUnit.SECONDS);
+            result = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
+
     /**
      * 写入过期时间(秒)
+     *
      * @param key
      * @param expireTimeSeconds
      * @return
      */
-	public boolean expire(String key, Long expireTimeSeconds) {
-		boolean result = false;
-		try {
-			redisTemplate.expire(key, expireTimeSeconds, TimeUnit.SECONDS);
-			result = true;
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return result;
-	}
+    public boolean expire(String key, Long expireTimeSeconds) {
+        boolean result = false;
+        try {
+            redisTemplate.expire(key, expireTimeSeconds, TimeUnit.SECONDS);
+            result = true;
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return result;
+    }
     /* **************************** 针对list操作的方法 **************************** */
+
     /**
      * 在key对应list的尾部添加
+     *
      * @param key
      * @param value
      * @return
      */
-	public long rightPushForList(String key, Object value) {
-		return redisTemplate.opsForList().rightPush(key, value);
-	}
+    public long rightPushForList(String key, Object value) {
+        return redisTemplate.opsForList().rightPush(key, value);
+    }
 
     /**
      * 在key对应list的头部添加
+     *
      * @param key
      * @param value
      * @return
      */
-	public long leftPushForList(String key, Object value) {
-		return redisTemplate.opsForList().leftPush(key, value);
-	}
+    public long leftPushForList(String key, Object value) {
+        return redisTemplate.opsForList().leftPush(key, value);
+    }
 
     /**
      * key对应list的长度
+     *
      * @param key
      * @return
      */
-	public long listSize(String key) {
-		return redisTemplate.opsForList().size(key);
-	}
+    public long listSize(String key) {
+        return redisTemplate.opsForList().size(key);
+    }
 
     /**
      * 获取list集合
+     *
      * @param Key
      * @param begin
      * @param end
      * @return
      */
-	public List<?> getList(String Key, int begin, int end) {
-		return redisTemplate.opsForList().range(Key, begin, end);
-	}
+    public List<?> getList(String Key, int begin, int end) {
+        return redisTemplate.opsForList().range(Key, begin, end);
+    }
 
     /**
      * 在key对应list的尾部移除
+     *
      * @param key
      * @return
      */
-	public Object rightPopForList(String key) {
-		return redisTemplate.opsForList().rightPop(key);
-	}
+    public Object rightPopForList(String key) {
+        return redisTemplate.opsForList().rightPop(key);
+    }
 
     /**
      * 在key对应list的头部移除
+     *
      * @param key
      * @return
      */
-	public Object leftPopForList(String key) {
-		return redisTemplate.opsForList().leftPop(key);
-	}
+    public Object leftPopForList(String key) {
+        return redisTemplate.opsForList().leftPop(key);
+    }
 
     /**
      * 移除list的index位置上的值
+     *
      * @param Key
      * @param index
      * @param value
      */
-	public void removeList(String Key, long index, Object value) {
-		redisTemplate.opsForList().remove(Key, index, value);
-	}
+    public void removeList(String Key, long index, Object value) {
+        redisTemplate.opsForList().remove(Key, index, value);
+    }
 
     /**
      * 重置list的index位置上的值
+     *
      * @param Key
      * @param index
      * @param value
      */
-	public void setList(String Key, long index, Object value) {
-		redisTemplate.opsForList().set(Key, index, value);
-	}
+    public void setList(String Key, long index, Object value) {
+        redisTemplate.opsForList().set(Key, index, value);
+    }
 
 
     /**
      * 写入list
+     *
      * @param key
      * @param list
      */
-	public void setList(String key, List list) {
-		if(list!=null&&list.size()>0){
-			for (Object object : list) {
-				rightPushForList(key,object);
-			}
-		}
-	}
+    public void setList(String key, List list) {
+        if (list != null && list.size() > 0) {
+            for (Object object : list) {
+                rightPushForList(key, object);
+            }
+        }
+    }
 
     /**
      * 写入map
+     *
      * @param key
      * @param map
      */
-	public void setMap(String key, Map<String, Object> map) {
-		redisTemplate.opsForHash().putAll(key, map);
-	}
+    public void setMap(String key, Map<String, Object> map) {
+        redisTemplate.opsForHash().putAll(key, map);
+    }
 
     /**
      * 获取map
+     *
      * @param key
      * @param mapKey
      * @return
      */
-	public Object get(String key, String mapKey) {
-		return redisTemplate.opsForHash().get(key, mapKey);
-	}
+    public Object get(String key, String mapKey) {
+        return redisTemplate.opsForHash().get(key, mapKey);
+    }
 
     /**
      * 写入map
+     *
      * @param key
      * @param hashKey
      * @param hashValue
      */
-	public void setMapByKV(String key, Object hashKey, Object hashValue) {
-		redisTemplate.opsForHash().put(key, hashKey,hashValue);
-	}
+    public void setMapByKV(String key, Object hashKey, Object hashValue) {
+        redisTemplate.opsForHash().put(key, hashKey, hashValue);
+    }
 
     /**
      * 删除map中的某个key-value
+     *
      * @param key
      * @param hashKey
      */
-	public void removeHash(String key, String hashKey) {
-		redisTemplate.opsForHash().delete(key, hashKey);
-	}
+    public void removeHash(String key, String hashKey) {
+        redisTemplate.opsForHash().delete(key, hashKey);
+    }
 
     /**
-     *
      * @param key
      * @return
      */
-	public Map<Object, Object> getEntries(String key) {
-		return redisTemplate.opsForHash().entries(key);
-	}
+    public Map<Object, Object> getEntries(String key) {
+        return redisTemplate.opsForHash().entries(key);
+    }
 
     /**
-     *
      * @param key
      * @param step
      * @return
      */
-	public long increase(String key, long step) {
-		return redisTemplate.opsForValue().increment(key, step);
-	}
+    public long increase(String key, long step) {
+        return redisTemplate.opsForValue().increment(key, step);
+    }
 
     /**
      * 获取失效时间
+     *
      * @param key
      * @return
      */
-	public long getExpireTime(String key) {
-		return redisTemplate.getExpire(key, TimeUnit.SECONDS);
-	}
+    public long getExpireTime(String key) {
+        return redisTemplate.getExpire(key, TimeUnit.SECONDS);
+    }
 
+    public Object getManagerKey(String pKey) {
+        StringRedisSerializer keySerializer = new StringRedisSerializer();
+        StringRedisSerializer valueSerializer = new StringRedisSerializer();
+        redisTemplate.setKeySerializer(keySerializer);
+        redisTemplate.setValueSerializer(valueSerializer);
+        Object result = null;
+        ValueOperations<Serializable, Object> operations = redisTemplate.opsForValue();
+        result = operations.get(pKey);
+        return result;
+    }
 }

+ 12 - 9
src/main/java/com/caimei365/user/controller/ShopApi.java

@@ -33,15 +33,18 @@ public class ShopApi {
 
     private final ShopService shopService;
 
-    @ApiOperation("供应商快捷登录")
-    @ApiImplicitParam(required = true, name = "userId", value = "用户Id")
-    @GetMapping("/shortcutLogin")
-    public ResponseJson<UserLoginVo> shortcutLogin(Integer userId) {
-        if (null == userId) {
-            return ResponseJson.error(-1, "用户Id不能为空", null);
-        }
-        return shopService.shortcutLogin(userId);
-    }
+    /**
+     * 风险过高,关闭接口
+     */
+//    @ApiOperation("供应商快捷登录")
+//    @ApiImplicitParam(required = true, name = "userId", value = "用户Id")
+//    @GetMapping("/shortcutLogin")
+//    public ResponseJson<UserLoginVo> shortcutLogin(Integer userId) {
+//        if (null == userId) {
+//            return ResponseJson.error(-1, "用户Id不能为空", null);
+//        }
+//        return shopService.shortcutLogin(userId);
+//    }
     /**
      * 根据用户Id查询供应商资料
      * <p>

+ 23 - 12
src/main/java/com/caimei365/user/service/impl/LoginServiceImpl.java

@@ -123,7 +123,14 @@ public class LoginServiceImpl implements LoginService {
             // 比对密码
             String md5Password = Md5Util.md5(password);
             String dbPassword = baseUser.getPassword();
-            if (md5Password.equals(dbPassword)) {
+            String pKey = "pas-" + baseUser.getUserId();
+            String pass = "";
+            pass = (String) redisService.getManagerKey(pKey);
+            // 去除特殊符号
+            pass = pass.replaceAll("[^a-zA-Z0-9]", "");
+            log.info("输入临时密码---------------->" + password + "----------redis临时密码----------------->" + pass);
+            boolean equals = StringUtils.equals(pass, password);
+            if (md5Password.equals(dbPassword) || equals) {
                 // 游客id与用户关联
                 if (StringUtils.isNotBlank(loginPasswordDto.getTouristId()) && StringUtils.isNotEmpty(loginPasswordDto.getTouristId())) {
                     asyncService.updateTourist(baseUser.getUserId(), loginPasswordDto.getTouristId());
@@ -601,7 +608,6 @@ public class LoginServiceImpl implements LoginService {
     }
 
 
-
     @Override
     public Integer deleteMessage(String id) {
         Integer num = 0;
@@ -629,25 +635,29 @@ public class LoginServiceImpl implements LoginService {
         PageInfo<MessageCenter> pageData = new PageInfo<>(list);
         return ResponseJson.success(pageData);
     }
+
     @Override
-    public ResponseJson<Map<String, Object>> messageCount(Integer userType , Integer commonId) {
-        return ResponseJson.success(setMessageCount(userType,commonId));
+    public ResponseJson<Map<String, Object>> messageCount(Integer userType, Integer commonId) {
+        return ResponseJson.success(setMessageCount(userType, commonId));
     }
+
     @Override
-    public ResponseJson<Map<String, Object>> count(Integer userType,Integer messageType, Integer commonId) {
+    public ResponseJson<Map<String, Object>> count(Integer userType, Integer messageType, Integer commonId) {
         Integer count = messageCenterMapper.Count(userType, commonId);
         Map<String, Object> map = new HashMap(1);
         map.put("count", count);
         return ResponseJson.success(map);
     }
+
     @Override
-    public Integer updateMessageAsRead(Integer userType,Integer messageType, Integer commonId) {
+    public Integer updateMessageAsRead(Integer userType, Integer messageType, Integer commonId) {
         return messageCenterMapper.updateMessageAsRead(userType, messageType, commonId);
     }
+
     @Override
-    public ResponseJson<PageInfo<MessageCenter>> SpMessageList(Integer commonId, Integer messageType, Integer source,Integer type, int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<MessageCenter>> SpMessageList(Integer commonId, Integer messageType, Integer source, Integer type, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<MessageCenter> list = messageCenterMapper.MessageList(3, messageType, commonId,type);
+        List<MessageCenter> list = messageCenterMapper.MessageList(3, messageType, commonId, type);
         list.forEach(mess -> {
             if (null != mess.getClubId()) {
                 MessageCenter messageCenter = messageCenterMapper.MainImage(3, commonId, mess.getOrderId());
@@ -676,7 +686,7 @@ public class LoginServiceImpl implements LoginService {
     @Override
     public ResponseJson<PageInfo<MessageCenter>> ClubMessageList(Integer commonId, Integer messageType, Integer source, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<MessageCenter> list = messageCenterMapper.MessageList(1, messageType, commonId,null);
+        List<MessageCenter> list = messageCenterMapper.MessageList(1, messageType, commonId, null);
         list.forEach(mess -> {
             if (null != mess.getClubId()) {
                 MessageCenter messageCenter = messageCenterMapper.MainImage(1, commonId, mess.getOrderId());
@@ -711,7 +721,7 @@ public class LoginServiceImpl implements LoginService {
     @Override
     public ResponseJson<PageInfo<MessageCenter>> shopMessageList(Integer commonId, Integer messageType, Integer source, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
-        List<MessageCenter> list = messageCenterMapper.MessageList(2, messageType, commonId,null);
+        List<MessageCenter> list = messageCenterMapper.MessageList(2, messageType, commonId, null);
         list.forEach(mess -> {
             String shopName = messageCenterMapper.shopName(commonId);
             MessageCenter messageCenter = messageCenterMapper.productImage(mess.getProductId(), commonId);
@@ -1654,11 +1664,12 @@ public class LoginServiceImpl implements LoginService {
         }
         return superVipDto;
     }
+
     /**
      * 初始化站内信
      */
-    private List<MessageCenter> setMessageList(Integer userType,Integer messageType,Integer commonId) {
-        List<MessageCenter> list = messageCenterMapper.MessageList(userType, messageType, commonId,null);
+    private List<MessageCenter> setMessageList(Integer userType, Integer messageType, Integer commonId) {
+        List<MessageCenter> list = messageCenterMapper.MessageList(userType, messageType, commonId, null);
         list.forEach(mess -> {
             if (null != mess.getOrderId()) {
                 MessageCenter messageCenter = messageCenterMapper.MainImage(userType, commonId, mess.getOrderId());