ylx 7 yıl önce
ebeveyn
işleme
d7e5e154fa

+ 19 - 51
saicLogistics/src/main/java/com/fuzamei/entity/User.java

@@ -1,43 +1,30 @@
 package com.fuzamei.entity;
 
-import java.util.List;
-
-import javax.validation.GroupSequence;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
-import org.hibernate.validator.constraints.NotBlank;
-
-import com.fuzamei.entity.User.PASSWORD;
-import com.fuzamei.entity.User.USERID;
-
-//用户表
+/**
+ * 
+ * @className:User[用户实体类]
+ * @author:ylx--->[yanglingxiao2009@163.com]
+ * @date:2018年1月30日下午3:28:48
+ * @version v1.0
+ */
 public class User {
 	private Integer id;             //主键id
-	@NotNull(message = "用户编号不能为空字符串或者null",groups = {USERID.class})
 	private Integer userId;	        //用户id
-	
-	@NotBlank(message = "用户名不能为空字符串或者null",groups = {USERNAME.class})
 	private String  username;       //账号
-	
-	@Size(min = 6,max = 8,message = "密码必须为6到8位",groups = {PASSWORD.class})
 	private String  password;       //密码
-	
-	@NotNull(message = "用户角色名称不能为空字符串或者null",groups = {ROLEID.class})
-	private Integer roleId;        //角色id
-	@NotBlank(message = "名称不能为空字符串或者null",groups = {PERSONNAME.class})
-	private String  personName;    //人名or公司名字
-	
-	@NotBlank(message = "随机数不能为空字符串或者null",groups = {RANDOM.class})
+	private Integer roleId;        	//角色id
+	private String  personName;    	//人名or公司名字
 	private Integer random;         //随机数
-	
-	@NotNull(message = "用户添加时间不能为空字符串或者null",groups = {CREATETIME.class})
-	private Long createTime;      //添加时间
-	
-	@NotNull(message = "用户更新时间不能为空字符串或者null",groups = {UPDATETIME.class})
-	private Long updateTime;      //更新时间
-	private String roleName;
-	
+	private Long createTime;      	//添加时间
+	private Long updateTime;      	//更新时间
+	private String roleName;		//角色名称
+	private String token;			//令牌
+	public String getToken() {
+		return token;
+	}
+	public void setToken(String token) {
+		this.token = token;
+	}
 	public String getRoleName() {
 		return roleName;
 	}
@@ -98,23 +85,4 @@ public class User {
 	public void setUpdateTime(Long updateTime) {
 		this.updateTime = updateTime;
 	}
-	
-	//顺序控制
-	public interface USERID{};
-	public interface PASSWORD{};
-	public interface RANDOM{};
-	public interface USERNAME{};
-	public interface ROLEID{};
-	public interface PERSONNAME{};
-	public interface CREATETIME{};
-	public interface UPDATETIME{};
-	//该组用于添加用户
-	@GroupSequence({USERID.class, USERNAME.class,PASSWORD.class,ROLEID.class,RANDOM.class,PERSONNAME.class,CREATETIME.class,UPDATETIME.class}) 
-	public interface GroupB{};
-
-	//该组用于用户登录
-	@GroupSequence({USERID.class,USERNAME.class, PASSWORD.class}) 
-	public interface GroupA{}
-	
-	
 }

+ 33 - 31
saicLogistics/src/main/java/com/fuzamei/mapper/LoginMapper.xml

@@ -1,41 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace = "com.fuzamei.mapperInterface.LoginMapper">
-	<!--根据id查询token  -->
-	<select id="getTokenById" parameterType="com.fuzamei.entity.Token" resultType="com.fuzamei.entity.Token">
-		select * from token where user_id = #{userId};
-	</select>
-	
-	<!--插入token -->
-	<insert id="insertToken" parameterType="com.fuzamei.entity.Token">
-		insert into token(user_id,token)values(#{userId},#{token});
-	</insert>
-	
-	<!--根据用户id去修改token  -->
-	<update id="updateToken" parameterType="com.fuzamei.entity.Token">
-		update token set token = #{token} where user_id = #{userId};
-	</update>
-	
-	<select id="getUserCount" parameterType="com.fuzamei.entity.User" resultType="com.fuzamei.entity.User">
-		select
-			a.user_id,
-			a.role_id,
-			c.role_name,
-			a.username,
-			a.password,
-			a.person_name,
-			a.random
-		from
-			users a
-		left  join role c on a.role_id=c.role_id 
-		where a.username=#{username} and a.password=#{password} and user_id=#{userId}
 	
+	<select id="queryUser" resultType="User">
+		select 
+			u.username,
+			u.person_name,
+			u.random,
+			r.role_name,
+			t.token
+		from 
+			users u
+		left join
+			role r
+		on 
+			u.role_id=r.role_id
+		left join 
+			token t
+		on 
+			t.user_id=u.user_id
+		where
+			u.username=#{username}
+		and 
+			u.password=#{password}
+		
 	</select>
 	
+	<update id="updateToken">
+		update 
+			token
+		set
+			token=#{token}
+		where 
+			user_id=#{userId}
+	</update>
 	
-	
-	
-	
+	<insert id="insertToken">
+		insert into token(user_id,token) values(#{userId},#{token})
+	</insert>
 	
 	
 	

+ 5 - 4
saicLogistics/src/main/java/com/fuzamei/mapperInterface/LoginMapper.java

@@ -2,12 +2,13 @@ package com.fuzamei.mapperInterface;
 
 import java.util.List;
 
+import org.apache.ibatis.annotations.Param;
+
 import com.fuzamei.entity.Token;
 import com.fuzamei.entity.User;
 
 public interface LoginMapper {
-	public Token getTokenById(Token token);
-	public int insertToken(Token token);
-	public int updateToken(Token token);
-	public List<User> getUserCount(User user);
+	public User queryUser(@Param("username") String username,@Param("password") String password);
+	public int updateToken(@Param("userId") Integer userId,@Param("token") String token);
+	public int insertToken(@Param("userId") Integer userId,@Param("token") String token);
 }

+ 3 - 4
saicLogistics/src/main/java/com/fuzamei/service/LoginService.java

@@ -5,9 +5,8 @@ import com.fuzamei.entity.Token;
 import com.fuzamei.entity.User;
 
 public interface LoginService {
-	public Token getTokenById(Token token);
-	public int insertToken(Token token);
-	public int updateToken(Token token);
-	public List<User> getUserCount(User user);
+	public User queryUser(String username, String password);
+	public void updateToken(Integer userId, String token);
+	void insertToken(Integer userId, String token);
 
 }

+ 14 - 47
saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/LoginServiceImpl.java

@@ -19,59 +19,26 @@ public class LoginServiceImpl implements LoginService{
 	@Autowired
 	private LoginMapper  loginMapper;
 	
-	@Transactional
-	public Map<String,Object> login2(User user) {
-       // TODO 检查用户的用户名、密码和随机数,能不能对应得上          ????????
-		Map<String,Object> resultMap = new LinkedHashMap<String,Object>();
-		List<User> userInfo = loginMapper.getUserCount(user);//待   待???
-		resultMap = JSONUtil.getJsonMap(500, false, "账号登录失败", null);
-		Token token1 = new Token();
-		if(userInfo.size() == 1){
-			String tokenRandom = UUID.randomUUID().toString().replace("-", "");
-			//更新token
-			token1.setUserId(user.getUserId());
-			token1.setToken(tokenRandom);
-			Token token = loginMapper.getTokenById(token1);
-			if(token == null){
-				int tokenCount = loginMapper.insertToken(token1);
-				if(tokenCount != 1){
-					throw new RuntimeException();
-				}
-			}
-			else{
-				int updateCount = loginMapper.updateToken(token1);
-				if(updateCount != 1){
-					throw new RuntimeException();
-				}
-			}
-			
-			resultMap = JSONUtil.getJsonMap(200, true, "账号登录成功", userInfo);
-		}
-		return  resultMap;
-	}
-	
-	
-	
-	
 	@Override
-	public Token getTokenById(Token token) {
-		
-		return loginMapper.getTokenById(token);
+	public User queryUser(String username, String password) {
+		return loginMapper.queryUser(username,password);
 	}
 
 	@Override
-	public int insertToken(Token token) {
-		return loginMapper.insertToken(token);
-	}
-
-	@Override
-	public int updateToken(Token token) {
-		return loginMapper.updateToken(token);
+	@Transactional(rollbackFor=Exception.class)
+	public void updateToken(Integer userId, String token) {
+		int num = loginMapper.updateToken(userId,token);
+		if(num!=1){
+			throw new RuntimeException("更改token失败");
+		}
 	}
-
 	@Override
-	public List<User> getUserCount(User user) {
-		return loginMapper.getUserCount(user);
+	@Transactional(rollbackFor=Exception.class)
+	public void insertToken(Integer userId, String token) {
+		int num = loginMapper.insertToken(userId,token);
+		if(num!=1){
+			throw new RuntimeException("插入token失败");
+		}
 	}
 	
 	

+ 39 - 16
saicLogistics/src/main/java/com/fuzamei/web/LoginAction.java

@@ -1,22 +1,20 @@
 package com.fuzamei.web;
 
-
 import java.util.LinkedHashMap;
-import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.BindingResult;
-import org.springframework.validation.FieldError;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.fuzamei.constant.HintMSG;
 import com.fuzamei.entity.User;
-import com.fuzamei.entity.User.GroupA;
 import com.fuzamei.service.LoginService;
 import com.fuzamei.util.JSONUtil;
+import com.fuzamei.util.ValidationUtil;
 
 @RestController
 public class LoginAction {
@@ -24,20 +22,45 @@ public class LoginAction {
 	@Autowired
 	private LoginService loginService;
 	
-	@RequestMapping(path="/login")
-	public Map<String,Object> loginUserName(@Validated(GroupA.class) @RequestBody User user,BindingResult result){
-		Map<String,Object> resultMap = new LinkedHashMap<String,Object>();	//存放最终返回结果
+	/**
+	 * 
+	* @Title: loginUserName
+	* @Description: TODO(用户登陆操作)
+	{
+		"username":"",
+		"password":""
+	}
+	* @param @return    设定文件
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月30日 下午3:57:05
+	* @throws
+	 */
+	@RequestMapping(path="/login",method=RequestMethod.POST)
+	public Map<String,Object> loginUserName(@RequestBody User u){
 		try {
-			if(result.hasErrors()){
-				List<FieldError> errors = result.getFieldErrors();
-				resultMap = JSONUtil.getJsonMap(200, false, errors.get(0).getDefaultMessage(),null);
-				return resultMap;
+			String username = ValidationUtil.checkBlankAndAssignString(u.getUsername());
+			String password = ValidationUtil.checkBlankAndAssignString(u.getPassword());
+			User user = loginService.queryUser(username,password);
+			if(user==null){
+				throw new RuntimeException("用户名或密码错误");
+			}
+			String token = UUID.randomUUID().toString().replaceAll("-", "");
+			if(user.getToken()==null||"".equals(user.getToken())){
+				loginService.insertToken(user.getUserId(), token);
+			} else {
+				loginService.updateToken(user.getUserId(),token);
 			}
-			//resultMap =loginService.
+			Map<String, Object> map=new LinkedHashMap<String, Object>();
+			map.put("username", user.getUsername());
+			map.put("roleName", user.getRoleName());
+			map.put("personName", user.getPersonName());
+			map.put("random", user.getRandom());
+			map.put("tokenId", "Bearer"+token+"&"+user.getUserId());
+			return JSONUtil.getJsonMap(200, true, HintMSG.ACCOUNT_EXP, map);
 		} catch (Exception e) {
-			resultMap = JSONUtil.getJsonMap(200, false, "账号登录失败", null);
+			return JSONUtil.getJsonMap(300, false, HintMSG.ACCOUNT_EXP+":"+e.getMessage(), null);
 		}
-		return resultMap;
 	}
 	
 }