新增退出时机表,完成投资报告页面接口

master
xiaoCJ 1 year ago
parent 36a2a3b903
commit e361fabda8

@ -11,11 +11,14 @@ import com.sztzjy.fund_investment.entity.PerformanceScoreExample;
import com.sztzjy.fund_investment.entity.User; import com.sztzjy.fund_investment.entity.User;
import com.sztzjy.fund_investment.mapper.FlowMapper; import com.sztzjy.fund_investment.mapper.FlowMapper;
import com.sztzjy.fund_investment.mapper.PerformanceScoreMapper; import com.sztzjy.fund_investment.mapper.PerformanceScoreMapper;
import com.sztzjy.fund_investment.mapper.UserMapper;
import com.sztzjy.fund_investment.service.IIlabService;
import com.sztzjy.fund_investment.service.IUserService; import com.sztzjy.fund_investment.service.IUserService;
import com.sztzjy.fund_investment.util.ResultEntity; import com.sztzjy.fund_investment.util.ResultEntity;
import com.sztzjy.fund_investment.util.RsaUtil; import com.sztzjy.fund_investment.util.RsaUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@ -29,77 +32,142 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@Api(tags = "用户管理") @Api(tags = "用户管理")
@RestController @RestController
@RequestMapping("api/user") @RequestMapping("api/user")
public class UserController { public class UserController {
@Autowired @Autowired
private IUserService userService; private IUserService userService;
@Autowired
private UserMapper userMapper;
@Resource @Resource
private AuthenticationManagerBuilder authenticationManagerBuilder; private AuthenticationManagerBuilder authenticationManagerBuilder;
@Autowired @Autowired
private FlowMapper flowMapper; private FlowMapper flowMapper;
@Autowired @Autowired
private PerformanceScoreMapper performanceScoreMapper; private PerformanceScoreMapper performanceScoreMapper;
@Autowired
private IIlabService iIlabService;
@ApiOperation(value = "用户登录", httpMethod = "POST") @ApiOperation(value = "用户登录", httpMethod = "POST")
@OperateLog(recordParameters = false) @OperateLog(recordParameters = false)
@PostMapping("login") @PostMapping("login")
@AnonymousAccess @AnonymousAccess
public ResultEntity login(@RequestParam String username, @RequestParam String passwordEncode) { public ResultEntity login(@RequestParam(required = false) String username,
String password; @RequestParam(required = false) String passwordEncode,
try { @RequestParam(required = false) String ticket) {
password = RsaUtil.decryptByPrivateKey(passwordEncode);
} catch (Exception e) { if (ticket==null) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "密码错误"); String password;
try {
password = RsaUtil.decryptByPrivateKey(passwordEncode);
} catch (Exception e) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "密码错误");
}
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
JwtUser jwtUser = (JwtUser) authentication.getPrincipal();
String token = TokenProvider.createToken(jwtUser);
Map<String, Object> map = new HashMap<>();
map.put("token", token);
map.put("name", jwtUser.getName());
User user = userService.findById(jwtUser.getUserId());
map.put("username", user.getUsername());
map.put("roleId", user.getRoleId());
map.put("phone", user.getPhone());
map.put("schoolId", "999999999");
map.put("userId", user.getUserid());
Flow flow = flowMapper.selectByPrimaryKey(jwtUser.getUserId());
if (flow == null) {
String uuid = String.valueOf(UUID.randomUUID());
Flow flow1 = new Flow();
flow1.setUserid(jwtUser.getUserId());
flow1.setFlowId(uuid);
flowMapper.insert(flow1);
map.put("flowId", uuid);
} else {
map.put("flowId", flow.getFlowId());
}
return new ResultEntity(HttpStatus.OK, map);
} else { //平台跳转登录
//判断用户是否存在
Map<String, String> accessToken = iIlabService.getAccessToken(ticket);
String access_token = accessToken.get("access_token");
if (access_token==null){
return new ResultEntity(HttpStatus.BAD_REQUEST,"登录过期,请重试!");
}
String un = accessToken.get("un");
String dis = accessToken.get("dis");
User user = userMapper.selectByUn(un);
String newUUID = IdUtil.simpleUUID();
String flowId = IdUtil.simpleUUID();
if (user != null) {
Map<String, Object> map = getStringObjectMap(access_token, un, dis, newUUID, flowId);
user.setAccessToken(access_token);
userMapper.updateByPrimaryKey(user);
return new ResultEntity(HttpStatus.OK, map);
}
User newUser = new User();
newUser.setUserid(IdUtil.simpleUUID());
newUser.setRoleId(4);
newUser.setLoginType(0);
newUser.setAccessToken(access_token);
newUser.setDis(dis);
newUser.setName(dis);
newUser.setUn(un);
newUser.setUsername(un);
newUser.setCreateTime(new Date());
newUser.setSchoolId("999999999");
newUser.setClassId("999999999");
newUser.setClassName("国家虚拟仿真训练班");
Map<String, Object> map = getStringObjectMap(access_token, un, dis, newUUID, flowId);
userMapper.insert(newUser);
return new ResultEntity(HttpStatus.OK, map);
} }
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password); }
/* MAPflow
* @author xcj
* @Date 2024/1/3
*/
private Map<String, Object> getStringObjectMap(String access_token, String un, String dis, String newUUID, String flowId) {
Map<String, Object> map = new HashMap<>();
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken("tzs001", "123qwe");
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
JwtUser jwtUser = (JwtUser) authentication.getPrincipal(); JwtUser jwtUser = (JwtUser) authentication.getPrincipal();
String token = TokenProvider.createToken(jwtUser); String token = TokenProvider.createToken(jwtUser);
Map<String, Object> map = new HashMap<>();
map.put("token", token); map.put("token", token);
map.put("name", jwtUser.getName()); map.put("access_token", access_token);
User user = userService.findById(jwtUser.getUserId()); map.put("un", un);
map.put("username", user.getUsername()); map.put("username", un);
map.put("roleId", user.getRoleId()); map.put("dis", dis);
map.put("phone", user.getPhone()); map.put("name", dis);
map.put("schoolId", user.getSchoolId()); map.put("roleId", 4);
map.put("userId", user.getUserid()); map.put("schoolId", "999999999");
map.put("classId", "999999999");
Flow flow = flowMapper.selectByPrimaryKey(jwtUser.getUserId()); Flow flow = new Flow();
if (flow == null) { flow.setUserid(newUUID);
String uuid = String.valueOf(UUID.randomUUID()); flow.setFlowId(flowId);
Flow flow1 = new Flow(); flowMapper.insert(flow);
flow1.setUserid(jwtUser.getUserId()); map.put("flowId", flowId);
flow1.setFlowId(uuid); return map;
flowMapper.insert(flow1);
map.put("flowId", uuid);
} else {
map.put("flowId", flow.getFlowId());
}
return new ResultEntity(HttpStatus.OK, map);
} }
public static void main(String[] args) throws Exception { // public static void main(String[] args) throws Exception {
String password = "123qwe"; // String password = "123qwe";
password = RsaUtil.encryptByPublicKey(password); // password = RsaUtil.encryptByPublicKey(password);
try { // try {
password = RsaUtil.decryptByPrivateKey(password); // password = RsaUtil.decryptByPrivateKey(password);
} catch (Exception e) { // } catch (Exception e) {
throw new IllegalArgumentException("密文不正确,请检查"); // throw new IllegalArgumentException("密文不正确,请检查");
} // }
System.out.println(new BCryptPasswordEncoder().encode(password)); // System.out.println(new BCryptPasswordEncoder().encode(password));
} // }
@ApiOperation(value = "重新实训", httpMethod = "POST") @ApiOperation(value = "重新实训", httpMethod = "POST")
@PostMapping("reTraining") @PostMapping("reTraining")
@ -118,4 +186,6 @@ public class UserController {
return new ResultEntity(HttpStatus.OK, "已重新实训!"); return new ResultEntity(HttpStatus.OK, "已重新实训!");
} }
} }

@ -45,6 +45,18 @@ public class User {
@ApiModelProperty("学校名称") @ApiModelProperty("学校名称")
private String schoolName; private String schoolName;
@ApiModelProperty("平台跳转用户名")
private String un;
@ApiModelProperty("平台跳转姓名")
private String dis;
@ApiModelProperty("平台跳转token")
private String accessToken;
@ApiModelProperty("0平台跳转1网站直接访问")
private Integer loginType;
public String getUserid() { public String getUserid() {
return userid; return userid;
} }
@ -140,4 +152,36 @@ public class User {
public void setSchoolName(String schoolName) { public void setSchoolName(String schoolName) {
this.schoolName = schoolName == null ? null : schoolName.trim(); this.schoolName = schoolName == null ? null : schoolName.trim();
} }
public String getUn() {
return un;
}
public void setUn(String un) {
this.un = un == null ? null : un.trim();
}
public String getDis() {
return dis;
}
public void setDis(String dis) {
this.dis = dis == null ? null : dis.trim();
}
public String getAccessToken() {
return accessToken;
}
public void setAccessToken(String accessToken) {
this.accessToken = accessToken == null ? null : accessToken.trim();
}
public Integer getLoginType() {
return loginType;
}
public void setLoginType(Integer loginType) {
this.loginType = loginType;
}
} }

@ -924,6 +924,276 @@ public class UserExample {
addCriterion("school_name not between", value1, value2, "schoolName"); addCriterion("school_name not between", value1, value2, "schoolName");
return (Criteria) this; return (Criteria) this;
} }
public Criteria andUnIsNull() {
addCriterion("un is null");
return (Criteria) this;
}
public Criteria andUnIsNotNull() {
addCriterion("un is not null");
return (Criteria) this;
}
public Criteria andUnEqualTo(String value) {
addCriterion("un =", value, "un");
return (Criteria) this;
}
public Criteria andUnNotEqualTo(String value) {
addCriterion("un <>", value, "un");
return (Criteria) this;
}
public Criteria andUnGreaterThan(String value) {
addCriterion("un >", value, "un");
return (Criteria) this;
}
public Criteria andUnGreaterThanOrEqualTo(String value) {
addCriterion("un >=", value, "un");
return (Criteria) this;
}
public Criteria andUnLessThan(String value) {
addCriterion("un <", value, "un");
return (Criteria) this;
}
public Criteria andUnLessThanOrEqualTo(String value) {
addCriterion("un <=", value, "un");
return (Criteria) this;
}
public Criteria andUnLike(String value) {
addCriterion("un like", value, "un");
return (Criteria) this;
}
public Criteria andUnNotLike(String value) {
addCriterion("un not like", value, "un");
return (Criteria) this;
}
public Criteria andUnIn(List<String> values) {
addCriterion("un in", values, "un");
return (Criteria) this;
}
public Criteria andUnNotIn(List<String> values) {
addCriterion("un not in", values, "un");
return (Criteria) this;
}
public Criteria andUnBetween(String value1, String value2) {
addCriterion("un between", value1, value2, "un");
return (Criteria) this;
}
public Criteria andUnNotBetween(String value1, String value2) {
addCriterion("un not between", value1, value2, "un");
return (Criteria) this;
}
public Criteria andDisIsNull() {
addCriterion("dis is null");
return (Criteria) this;
}
public Criteria andDisIsNotNull() {
addCriterion("dis is not null");
return (Criteria) this;
}
public Criteria andDisEqualTo(String value) {
addCriterion("dis =", value, "dis");
return (Criteria) this;
}
public Criteria andDisNotEqualTo(String value) {
addCriterion("dis <>", value, "dis");
return (Criteria) this;
}
public Criteria andDisGreaterThan(String value) {
addCriterion("dis >", value, "dis");
return (Criteria) this;
}
public Criteria andDisGreaterThanOrEqualTo(String value) {
addCriterion("dis >=", value, "dis");
return (Criteria) this;
}
public Criteria andDisLessThan(String value) {
addCriterion("dis <", value, "dis");
return (Criteria) this;
}
public Criteria andDisLessThanOrEqualTo(String value) {
addCriterion("dis <=", value, "dis");
return (Criteria) this;
}
public Criteria andDisLike(String value) {
addCriterion("dis like", value, "dis");
return (Criteria) this;
}
public Criteria andDisNotLike(String value) {
addCriterion("dis not like", value, "dis");
return (Criteria) this;
}
public Criteria andDisIn(List<String> values) {
addCriterion("dis in", values, "dis");
return (Criteria) this;
}
public Criteria andDisNotIn(List<String> values) {
addCriterion("dis not in", values, "dis");
return (Criteria) this;
}
public Criteria andDisBetween(String value1, String value2) {
addCriterion("dis between", value1, value2, "dis");
return (Criteria) this;
}
public Criteria andDisNotBetween(String value1, String value2) {
addCriterion("dis not between", value1, value2, "dis");
return (Criteria) this;
}
public Criteria andAccessTokenIsNull() {
addCriterion("access_token is null");
return (Criteria) this;
}
public Criteria andAccessTokenIsNotNull() {
addCriterion("access_token is not null");
return (Criteria) this;
}
public Criteria andAccessTokenEqualTo(String value) {
addCriterion("access_token =", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenNotEqualTo(String value) {
addCriterion("access_token <>", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenGreaterThan(String value) {
addCriterion("access_token >", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenGreaterThanOrEqualTo(String value) {
addCriterion("access_token >=", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenLessThan(String value) {
addCriterion("access_token <", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenLessThanOrEqualTo(String value) {
addCriterion("access_token <=", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenLike(String value) {
addCriterion("access_token like", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenNotLike(String value) {
addCriterion("access_token not like", value, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenIn(List<String> values) {
addCriterion("access_token in", values, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenNotIn(List<String> values) {
addCriterion("access_token not in", values, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenBetween(String value1, String value2) {
addCriterion("access_token between", value1, value2, "accessToken");
return (Criteria) this;
}
public Criteria andAccessTokenNotBetween(String value1, String value2) {
addCriterion("access_token not between", value1, value2, "accessToken");
return (Criteria) this;
}
public Criteria andLoginTypeIsNull() {
addCriterion("login_type is null");
return (Criteria) this;
}
public Criteria andLoginTypeIsNotNull() {
addCriterion("login_type is not null");
return (Criteria) this;
}
public Criteria andLoginTypeEqualTo(Integer value) {
addCriterion("login_type =", value, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeNotEqualTo(Integer value) {
addCriterion("login_type <>", value, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeGreaterThan(Integer value) {
addCriterion("login_type >", value, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeGreaterThanOrEqualTo(Integer value) {
addCriterion("login_type >=", value, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeLessThan(Integer value) {
addCriterion("login_type <", value, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeLessThanOrEqualTo(Integer value) {
addCriterion("login_type <=", value, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeIn(List<Integer> values) {
addCriterion("login_type in", values, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeNotIn(List<Integer> values) {
addCriterion("login_type not in", values, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeBetween(Integer value1, Integer value2) {
addCriterion("login_type between", value1, value2, "loginType");
return (Criteria) this;
}
public Criteria andLoginTypeNotBetween(Integer value1, Integer value2) {
addCriterion("login_type not between", value1, value2, "loginType");
return (Criteria) this;
}
} }
public static class Criteria extends GeneratedCriteria { public static class Criteria extends GeneratedCriteria {

@ -8,7 +8,6 @@ import java.util.Map;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
@Mapper @Mapper
public interface UserMapper { public interface UserMapper {
long countByExample(UserExample example); long countByExample(UserExample example);
@ -33,6 +32,8 @@ public interface UserMapper {
int updateByPrimaryKey(User record); int updateByPrimaryKey(User record);
User selectByUn(@Param("un") String un);
@Select("select distinct(class_id),class_name from wx_user where school_id = #{schoolId}") @Select("select distinct(class_id),class_name from wx_user where school_id = #{schoolId}")
List<Map<String,String>> selectClassNameBySchoolId(@Param("schoolId") String schoolId); List<Map<String,String>> selectClassNameBySchoolId(@Param("schoolId") String schoolId);
} }

@ -32,4 +32,6 @@ public class UserServiceImpl implements IUserService {
public User findById(String id) { public User findById(String id) {
return userMapper.selectByPrimaryKey(id); return userMapper.selectByPrimaryKey(id);
} }
} }

Loading…
Cancel
Save