|
|
@@ -0,0 +1,142 @@
|
|
|
+package com.jpsoft.employment.modules.base.api;
|
|
|
+
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.github.pagehelper.Page;
|
|
|
+import com.jpsoft.employment.exception.CustomException;
|
|
|
+import com.jpsoft.employment.modules.base.entity.RegUser;
|
|
|
+import com.jpsoft.employment.modules.base.service.RegUserService;
|
|
|
+import com.jpsoft.employment.modules.common.dto.MessageResult;
|
|
|
+import com.jpsoft.employment.modules.common.dto.Sort;
|
|
|
+import com.jpsoft.employment.modules.common.utils.DES3;
|
|
|
+import com.jpsoft.employment.modules.common.utils.JwtUtil;
|
|
|
+import com.jpsoft.employment.modules.common.utils.PojoUtils;
|
|
|
+import io.swagger.annotations.ApiImplicitParam;
|
|
|
+import io.swagger.annotations.ApiImplicitParams;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+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.web.bind.annotation.*;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@RequestMapping("/base/api/regUser")
|
|
|
+public class RegUserApi {
|
|
|
+ private Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
+
|
|
|
+ @Value("${jwt.secret}")
|
|
|
+ private String jwtSecret;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RegUserService regUserService;
|
|
|
+
|
|
|
+ @PostMapping("saveRegUser")
|
|
|
+ @ApiOperation(value = "一键注册(公开接口)")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="nickName", value="昵称", required=false, paramType="query"),
|
|
|
+ @ApiImplicitParam(name="realName", value="真实姓名", required=false, paramType="query"),
|
|
|
+ @ApiImplicitParam(name="phone", value="电话号码", required=true, paramType="query"),
|
|
|
+ @ApiImplicitParam(name="openId", value="openId", required=true, paramType="query"),
|
|
|
+ @ApiImplicitParam(name="headImg", value="头像", required=false, paramType="query"),
|
|
|
+ })
|
|
|
+ public MessageResult<Map> saveRegUser(String nickName, String realName, String phone, String openId, String headImg) {
|
|
|
+ MessageResult<Map> messageResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (StrUtil.isBlank(openId)) {
|
|
|
+ throw new Exception("微信标识不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StrUtil.isBlank(phone)) {
|
|
|
+ throw new Exception("手机号不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ RegUser regUser = null;
|
|
|
+ String token = null;
|
|
|
+ if (StringUtils.isNotEmpty(openId)) {
|
|
|
+ regUser = regUserService.getByPhone(phone);
|
|
|
+
|
|
|
+ if (regUser != null) {
|
|
|
+ regUser.setOpenId(openId);
|
|
|
+ regUser.setUpdateBy(regUser.getId());
|
|
|
+ regUser.setUpdateTime(new Date());
|
|
|
+ regUserService.update(regUser);
|
|
|
+
|
|
|
+ token = JwtUtil.createToken(jwtSecret, regUser.getId(), DateTime.now().plusHours(6).toDate());
|
|
|
+ } else {
|
|
|
+ regUser = new RegUser();
|
|
|
+ regUser.setId(UUID.randomUUID().toString());
|
|
|
+ regUser.setNickName(nickName);
|
|
|
+ regUser.setRealName(realName);
|
|
|
+ regUser.setPhone(phone);
|
|
|
+ regUser.setOpenId(openId);
|
|
|
+ regUser.setHeadImg(headImg);
|
|
|
+ regUser.setDelFlag(false);
|
|
|
+ regUser.setCreateBy(regUser.getId());
|
|
|
+ regUser.setCreateTime(new Date());
|
|
|
+ regUserService.insert(regUser);
|
|
|
+
|
|
|
+ token = JwtUtil.createToken(jwtSecret, regUser.getId(), DateTime.now().plusHours(6).toDate());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("token", token);
|
|
|
+ map.put("regUser", regUser);
|
|
|
+
|
|
|
+ messageResult.setData(map);
|
|
|
+ messageResult.setResult(true);
|
|
|
+ messageResult.setCode(200);
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ logger.error(ex.getMessage());
|
|
|
+ messageResult.setCode(400);
|
|
|
+ messageResult.setResult(false);
|
|
|
+ messageResult.setMessage(ex.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ return messageResult;
|
|
|
+ }
|
|
|
+
|
|
|
+ @GetMapping("getByOpenId")
|
|
|
+ @ApiOperation(value = "登录(公开接口)")
|
|
|
+ @ApiImplicitParams({
|
|
|
+ @ApiImplicitParam(name="openId", value="openId", required=true, paramType="query"),
|
|
|
+ })
|
|
|
+ public MessageResult<Map> getByOpenId(String openId) {
|
|
|
+ MessageResult<Map> msgResult = new MessageResult<>();
|
|
|
+
|
|
|
+ try {
|
|
|
+ RegUser regUser= regUserService.getByOpenId(openId);
|
|
|
+
|
|
|
+ if (regUser != null) {
|
|
|
+ String token = JwtUtil.createToken(jwtSecret, regUser.getId(), DateTime.now().plusDays(7).toDate());
|
|
|
+
|
|
|
+ Map<String, Object> dataMap = new HashMap<String, Object>();
|
|
|
+ dataMap.put("regUser", regUser);
|
|
|
+ dataMap.put("token", token);
|
|
|
+
|
|
|
+ msgResult.setData(dataMap);
|
|
|
+ msgResult.setResult(true);
|
|
|
+ } else {
|
|
|
+ throw new CustomException("openid不存在");
|
|
|
+ }
|
|
|
+ } catch (Exception ex) {
|
|
|
+ if (ex instanceof CustomException) {
|
|
|
+ logger.error(ex.getMessage());
|
|
|
+ } else {
|
|
|
+ logger.error(ex.getMessage(), ex);
|
|
|
+ }
|
|
|
+
|
|
|
+ msgResult.setMessage(ex.getMessage());
|
|
|
+ msgResult.setResult(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ return msgResult;
|
|
|
+ }
|
|
|
+}
|