|
|
@@ -0,0 +1,220 @@
|
|
|
+package com.jpsoft.employment.modules.mobile.controller;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.jpsoft.employment.config.OSSConfig;
|
|
|
+import com.jpsoft.employment.modules.base.entity.UserAuthenticationApprove;
|
|
|
+import com.jpsoft.employment.modules.base.service.UserAuthenticationApproveService;
|
|
|
+import com.jpsoft.employment.modules.common.dto.MessageResult;
|
|
|
+import com.jpsoft.employment.modules.common.utils.DES3;
|
|
|
+import com.jpsoft.employment.modules.common.utils.JwtUtil;
|
|
|
+import com.jpsoft.employment.modules.common.utils.OSSUtil;
|
|
|
+import com.jpsoft.employment.modules.common.utils.SMSUtil;
|
|
|
+import com.jpsoft.employment.modules.job.entity.JobUser;
|
|
|
+import com.jpsoft.employment.modules.sys.entity.User;
|
|
|
+import com.jpsoft.employment.modules.job.service.JobUserService;
|
|
|
+import com.jpsoft.employment.modules.job.service.ResumeDeliverService;
|
|
|
+import com.jpsoft.employment.modules.job.service.ResumeService;
|
|
|
+import com.jpsoft.employment.modules.job.service.UserCollectionService;
|
|
|
+import com.jpsoft.employment.modules.sys.entity.SysLog;
|
|
|
+import com.jpsoft.employment.modules.sys.service.SysLogService;
|
|
|
+import com.jpsoft.employment.modules.sys.service.UserService;
|
|
|
+import io.swagger.annotations.Api;
|
|
|
+import io.swagger.annotations.ApiImplicitParam;
|
|
|
+import io.swagger.annotations.ApiImplicitParams;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.joda.time.DateTime;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.data.redis.core.ValueOperations;
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
+import sun.misc.BASE64Decoder;
|
|
|
+
|
|
|
+import java.io.ByteArrayInputStream;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.UUID;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@RequestMapping("/mobile/sysUserApi")
|
|
|
+@Api(description = "hr用户接口")
|
|
|
+@Slf4j
|
|
|
+public class SysUserApiController {
|
|
|
+ @Value("${jwt.secret}")
|
|
|
+ private String jwtSecret;
|
|
|
+
|
|
|
+ private Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserService userService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ValueOperations<String, Object> valueOperations;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OSSConfig ossConfig;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SysLogService sysLogService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserAuthenticationApproveService userAuthenticationApproveService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserCollectionService userCollectionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ResumeDeliverService resumeDeliverService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ResumeService resumeService;
|
|
|
+
|
|
|
+ @PostMapping("findByOpenId")
|
|
|
+ @ApiOperation(value = "通过openId查询人员(公开接口)")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "openId", value = "微信openId", required = true, paramType = "form")
|
|
|
+ })
|
|
|
+ public MessageResult<Map> findByOpenId(String openId) {
|
|
|
+ MessageResult<Map> messageResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+ User sysUser = null;
|
|
|
+ if (StringUtils.isNotBlank(openId)) {
|
|
|
+ sysUser = userService.findByOpenId(openId);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (sysUser == null) {
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage("未查到该用户");
|
|
|
+ messageResult.setCode(400);
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> dataMap = new HashMap<String, Object>();
|
|
|
+ String token = JwtUtil.createToken(jwtSecret, sysUser.getId() + "", DateTime.now().plusHours(6).toDate());
|
|
|
+
|
|
|
+ dataMap.put("sysUser", sysUser);
|
|
|
+ dataMap.put("token", token);
|
|
|
+
|
|
|
+ messageResult.setData(dataMap);
|
|
|
+ messageResult.setResult(true);
|
|
|
+ messageResult.setCode(200);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ logger.error(ex.getMessage(), ex);
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("wechatLogin")
|
|
|
+ @ApiOperation(value = "微信登录(公开接口)")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "openId", value = "openId", required = true, paramType = "form")
|
|
|
+ })
|
|
|
+ public MessageResult<Map> wechatLogin(String openId) {
|
|
|
+ MessageResult<Map> messageResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+ User sysUser = userService.findByOpenId(openId);
|
|
|
+
|
|
|
+ if (sysUser ==null) {
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage("未查到该用户");
|
|
|
+ messageResult.setCode(400);
|
|
|
+ return messageResult;
|
|
|
+ }else{
|
|
|
+ Boolean hasRole = userService.hasRole(sysUser.getId(),"HR");
|
|
|
+ if(!hasRole){
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage("该用户没有登录权限");
|
|
|
+ messageResult.setCode(400);
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> dataMap = new HashMap<String, Object>();
|
|
|
+ String token = JwtUtil.createToken(jwtSecret, sysUser.getId() + "", DateTime.now().plusHours(6).toDate());
|
|
|
+
|
|
|
+ dataMap.put("sysUser", sysUser);
|
|
|
+ dataMap.put("token", token);
|
|
|
+
|
|
|
+ messageResult.setData(dataMap);
|
|
|
+ messageResult.setResult(true);
|
|
|
+ messageResult.setCode(200);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error(ex.getMessage());
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("passwordLogin")
|
|
|
+ @ApiOperation(value = "密码登录(公开接口)")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name = "name", value = "用户名", required = true, paramType = "form"),
|
|
|
+ @ApiImplicitParam(name = "password", value = "密码", required = true, paramType = "form"),
|
|
|
+ @ApiImplicitParam(name = "openId", value = "openId", required = true, paramType = "form")
|
|
|
+ })
|
|
|
+ public MessageResult<Map> passwordLogin(String name,String password,String openId) {
|
|
|
+ MessageResult<Map> messageResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+ User sysUser = userService.findByUserName(name);
|
|
|
+ if(sysUser == null){
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage("未查到该用户");
|
|
|
+ messageResult.setCode(200);
|
|
|
+ return messageResult;
|
|
|
+ }else{
|
|
|
+ Boolean hasRole = userService.hasRole(sysUser.getId(),"HR");
|
|
|
+ if(!hasRole){
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage("该用户没有登录权限");
|
|
|
+ messageResult.setCode(400);
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ DES3 des3 = new DES3();
|
|
|
+ String passwordEnc = des3.encrypt(jwtSecret,password);
|
|
|
+
|
|
|
+ if(passwordEnc.equals(sysUser.getPassword())){
|
|
|
+ sysUser.setOpenId(openId);
|
|
|
+ sysUser.setUpdateTime(new Date());
|
|
|
+ userService.update(sysUser);
|
|
|
+ }else {
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage("密码错误");
|
|
|
+ messageResult.setCode(400);
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> dataMap = new HashMap<String, Object>();
|
|
|
+ String token = JwtUtil.createToken(jwtSecret, sysUser.getId() + "", DateTime.now().plusHours(6).toDate());
|
|
|
+
|
|
|
+ dataMap.put("sysUser", sysUser);
|
|
|
+ dataMap.put("token", token);
|
|
|
+
|
|
|
+ messageResult.setData(dataMap);
|
|
|
+ messageResult.setResult(true);
|
|
|
+ messageResult.setCode(200);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ log.error(ex.getMessage());
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+}
|