main
yz 1 year ago
parent 0a2dbf3798
commit 1c5ebbc20c

@ -3,8 +3,12 @@ package com.sztzjy.linkCommerce.config.security;
import com.sztzjy.linkCommerce.entity.StuUser;
import com.sztzjy.linkCommerce.entity.StuUserExample;
import com.sztzjy.linkCommerce.entity.Userinfo;
import com.sztzjy.linkCommerce.entity.UserinfoExample;
import com.sztzjy.linkCommerce.mapper.StuUserMapper;
import com.sztzjy.linkCommerce.mapper.UserinfoMapper;
import io.jsonwebtoken.lang.Assert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
@ -19,6 +23,8 @@ import java.util.List;
public class AuthenticationService implements UserDetailsService {
@Resource
private StuUserMapper stuUserMapper;
@Autowired
UserinfoMapper userinfoMapper;
// @Override
@ -40,18 +46,19 @@ public class AuthenticationService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
StuUserExample stuUserExample = new StuUserExample();
stuUserExample.createCriteria().andStudentIdEqualTo(username);
List<StuUser> list = stuUserMapper.selectByExample(stuUserExample);
UserinfoExample stuUserExample=new UserinfoExample();
// StuUserExample stuUserExample = new StuUserExample();
stuUserExample.createCriteria().andUsernameEqualTo(username);
List<Userinfo> list = userinfoMapper.selectByExample(stuUserExample);
Assert.notNull(list, "用户不存在");
StuUser user = list.get(0);
Userinfo userinfo = list.get(0);
JwtUser jwtUser = new JwtUser();
jwtUser.setUsername(user.getStudentId());
jwtUser.setPassword(new BCryptPasswordEncoder().encode(user.getPassword())); //不加密会报错Encoded password does not look like BCrypt
jwtUser.setUserId(user.getUserId());
jwtUser.setName(user.getName());
jwtUser.setRoleId(user.getRoleId());
jwtUser.setStudentId(user.getStudentId());
jwtUser.setUsername(userinfo.getUsername());
jwtUser.setPassword(new BCryptPasswordEncoder().encode(userinfo.getPassword())); //不加密会报错Encoded password does not look like BCrypt
jwtUser.setUserId(userinfo.getUserId());
jwtUser.setName(userinfo.getName());
jwtUser.setRoleId(userinfo.getRole());
jwtUser.setStudentId(userinfo.getUsername());
return jwtUser;
}

@ -86,18 +86,18 @@ public class CgcpdwController {
}
}
// @PostMapping("/restartTraining")
// @ApiOperation("采购需求预测-重新实训")
// @AnonymousAccess
// public ResultEntity restartTraining(@RequestParam String userId) {
// Boolean b=scoreService.deleteScore(userId,Constant.PRO_GYQDGL,Constant.MODULE_CGXQYC);
// if(b){
// CgxqycStuAnswerExample cgxqycStuAnswerExample = new CgxqycStuAnswerExample();
// cgxqycStuAnswerExample.createCriteria().andUserIdEqualTo(userId);
// cgxqycStuAnswerMapper.deleteByExample(cgxqycStuAnswerExample);
// return new ResultEntity<>(HttpStatus.OK, "重新实训成功");
// }else {
// return new ResultEntity<>(HttpStatus.BAD_REQUEST, "重新实训失败");
// }
// }
@PostMapping("/restartTraining")
@ApiOperation("采购产品定位-重新实训")
@AnonymousAccess
public ResultEntity restartTraining(@RequestParam String userId) {
Boolean b=scoreService.deleteScore(userId,Constant.PRO_GYQDGL,Constant.MODULE_CGCPDW);
if(b){
CgcpdwStuAnswerExample example = new CgcpdwStuAnswerExample();
example.createCriteria().andUserIdEqualTo(userId);
cgcpdwStuAnswerMapper.deleteByExample(example);
return new ResultEntity<>(HttpStatus.OK, "重新实训成功");
}else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "重新实训失败");
}
}
}

@ -84,9 +84,9 @@ public class CgxqycController {
public ResultEntity restartTraining(@RequestParam String userId) {
Boolean b=scoreService.deleteScore(userId,Constant.PRO_GYQDGL,Constant.MODULE_CGXQYC);
if(b){
CgxqycStuAnswerExample cgxqycStuAnswerExample = new CgxqycStuAnswerExample();
cgxqycStuAnswerExample.createCriteria().andUserIdEqualTo(userId);
cgxqycStuAnswerMapper.deleteByExample(cgxqycStuAnswerExample);
CgxqycStuAnswerExample example = new CgxqycStuAnswerExample();
example.createCriteria().andUserIdEqualTo(userId);
cgxqycStuAnswerMapper.deleteByExample(example);
return new ResultEntity<>(HttpStatus.OK, "重新实训成功");
}else {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "重新实训失败");

@ -0,0 +1,91 @@
package com.sztzjy.linkCommerce.controller.stu;
import cn.hutool.system.UserInfo;
import com.sztzjy.linkCommerce.annotation.AnonymousAccess;
import com.sztzjy.linkCommerce.config.security.JwtUser;
import com.sztzjy.linkCommerce.config.security.TokenProvider;
import com.sztzjy.linkCommerce.entity.Userinfo;
import com.sztzjy.linkCommerce.entity.UserinfoExample;
import com.sztzjy.linkCommerce.mapper.UserinfoMapper;
import com.sztzjy.linkCommerce.util.ResultEntity;
import com.sztzjy.linkCommerce.util.RsaUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api/user")
@Api(tags = "yz-登录相关")
public class LoginController {
@Resource
private AuthenticationManagerBuilder authenticationManagerBuilder;
@Autowired
UserinfoMapper userinfoMapper;
@PostMapping("/login")
@ApiOperation("登录接口")
@AnonymousAccess
public ResultEntity login(@RequestParam(required = false) String passwordEncode,
@RequestParam(required = false) String userName,
HttpServletRequest request,
@RequestParam(required = false) String TOKEN) {
JwtUser jwtUser;
String passWord;
if (StringUtils.isBlank(TOKEN)) {
try {
passWord = RsaUtil.decryptByPrivateKey(passwordEncode);
} catch (Exception e) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "密码错误");
}
try{
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(userName, passWord);
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication);
jwtUser = (JwtUser) authentication.getPrincipal();
String token = TokenProvider.createToken(jwtUser);
// 1、子系统直接登录
UserinfoExample stuUserExample = new UserinfoExample();
stuUserExample.createCriteria().andUsernameEqualTo(userName).andPasswordEqualTo(passWord);
List<Userinfo> userinfos = userinfoMapper.selectByExample(stuUserExample);
//不存在返回错误,正确放行
if (userinfos.isEmpty()) {
return new ResultEntity(HttpStatus.BAD_REQUEST, "密码错误");
}
// 保存用户的登录信息
Map<String, Object> map = new HashMap<>();
Userinfo user = userinfos.get(0);
map.put("name", user.getName());
map.put("username", user.getUsername());
map.put("roleId", String.valueOf(user.getRole()));
map.put("schoolId", user.getSchoolId());
map.put("classId", user.getSchoolClassId());
map.put("userId", user.getUserId());
map.put("token", token);
return new ResultEntity(HttpStatus.OK, map);
}catch (Exception e){
return new ResultEntity(HttpStatus.BAD_REQUEST, "账号不存在");
}
}else {
return new ResultEntity(HttpStatus.BAD_REQUEST, "暂不支持智云跳转");
}
}
}

@ -1,5 +1,5 @@
server:
port: 9869
port: 7548
servlet:
context-path: /
tomcat:

@ -242,6 +242,20 @@
where school_major_id = #{schoolMajorId,jdbcType=VARCHAR}
</update>
<resultMap id="SchoolMajorDtoResultMap" type="com.sztzjy.linkCommerce.entity.dto.SchoolMajorDto">
<id property="schoolMajorId" column="school_major_id"/>
<result property="schoolName" column="school_name"/>
<result property="schoolFacultyName" column="school_faculty_name"/>
<association property="schoolMajor" javaType="com.sztzjy.linkCommerce.entity.SchoolMajor">
<result property="schoolFacultyId" column="school_faculty_id"/>
<result property="schoolMajorName" column="school_major_name"/>
<result property="schoolId" column="school_id"/>
<result property="schoolMajorContact" column="school_major_contact"/>
<result property="schoolMajorContactTel" column="school_major_contact_tel"/>
<result property="createTime" column="create_time"/>
</association>
</resultMap>
<select id="findSchoolMajorList" resultMap="SchoolMajorDtoResultMap">
SELECT
s.school_name AS school_name,

Loading…
Cancel
Save