chenwen 4 年 前
コミット
bcc3e3c495

+ 220 - 0
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/SysUserApiController.java

@@ -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;
+    }
+
+}