|
@@ -18,12 +18,14 @@ import com.fs.company.domain.CompanyUser;
|
|
|
import com.fs.company.service.ICompanyDeptService;
|
|
|
import com.fs.company.service.ICompanyUserService;
|
|
|
import com.fs.core.security.SecurityUtils;
|
|
|
+import com.fs.store.domain.FsUser;
|
|
|
import com.fs.store.service.IFsUserService;
|
|
|
import com.fs.wx.miniapp.config.WxMaConfiguration;
|
|
|
import com.fs.wx.miniapp.config.WxMaProperties;
|
|
|
import io.jsonwebtoken.Claims;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import me.chanjar.weixin.common.error.WxErrorException;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -37,6 +39,7 @@ import java.util.Objects;
|
|
|
@Api("微信小程序相关接口")
|
|
|
@RestController
|
|
|
@RequestMapping(value = "/app/wx/miniapp")
|
|
|
+@Slf4j
|
|
|
public class WxCompanyUserController extends AppBaseController {
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
@@ -55,7 +58,10 @@ public class WxCompanyUserController extends AppBaseController {
|
|
|
@Autowired
|
|
|
private ICompanyDeptService companyDeptService;
|
|
|
|
|
|
- @ApiOperation("小程序-销售授权登录")
|
|
|
+ @Autowired
|
|
|
+ private IFsUserService userService;
|
|
|
+
|
|
|
+ @ApiOperation("小程序-授权登录")
|
|
|
@PostMapping("/loginByMa")
|
|
|
public R login(@RequestBody LoginMaWxParam param) {
|
|
|
if (StringUtils.isBlank(param.getCode())) {
|
|
@@ -70,60 +76,90 @@ public class WxCompanyUserController extends AppBaseController {
|
|
|
// 解密
|
|
|
WxMaPhoneNumberInfo phoneNoInfo = wxService.getUserService().getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
|
|
|
WxMaUserInfo userInfo = wxService.getUserService().getUserInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv());
|
|
|
- CompanyUser companyUser = companyUserService.getCompanyUserByOpenId(session.getOpenid());
|
|
|
- String ip = IpUtil.getRequestIp();
|
|
|
|
|
|
-// // 如果公司id为空(表示可能是该公司的第一位销售管理员),则需要根据电话号码判断是否存在销售,如果不存在则提示
|
|
|
-// if (param.getCompanyId() == null) {
|
|
|
-// if (checkPhone == null) {
|
|
|
-// throw new CustomException("由于不是管理员,不能直接登录", 401);
|
|
|
+ //以下暂时注释,不需要往销售表添加数据
|
|
|
+// CompanyUser companyUser = companyUserService.getCompanyUserByOpenId(session.getOpenid());
|
|
|
+// String ip = IpUtil.getRequestIp();
|
|
|
+//
|
|
|
+//// // 如果公司id为空(表示可能是该公司的第一位销售管理员),则需要根据电话号码判断是否存在销售,如果不存在则提示
|
|
|
+//// if (param.getCompanyId() == null) {
|
|
|
+//// if (checkPhone == null) {
|
|
|
+//// throw new CustomException("由于不是管理员,不能直接登录", 401);
|
|
|
+//// }
|
|
|
+//// }
|
|
|
+// if (companyUser == null) {
|
|
|
+// CompanyUser checkPhone = companyUserService.getCompanyUserByPhone(phoneNoInfo.getPhoneNumber());
|
|
|
+// if (checkPhone != null) {
|
|
|
+// if (checkPhone.getMaOpenId() == null) {
|
|
|
+// companyUser = checkPhone;
|
|
|
+// companyUser.setMaOpenId(session.getOpenid());
|
|
|
+// companyUser.setUserId(companyUser.getUserId());
|
|
|
+// companyUser.setUpdateTime(new DateTime());
|
|
|
+// companyUser.setLoginIp(ip);
|
|
|
+// companyUserService.updateUserProfile(companyUser);
|
|
|
+// } else {
|
|
|
+// throw new CustomException("此手机号用户已存在");
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// //新增
|
|
|
+// companyUser = new CompanyUser();
|
|
|
+// companyUser.setUserName(phoneNoInfo.getPhoneNumber());
|
|
|
+// companyUser.setNickName(userInfo.getNickName() == null ? "微信用户" : userInfo.getNickName());
|
|
|
+// companyUser.setPhonenumber(phoneNoInfo.getPhoneNumber());
|
|
|
+// companyUser.setSex(userInfo.getGender());
|
|
|
+// //密码初始化为123456
|
|
|
+// String pw = "123456";
|
|
|
+// companyUser.setPassword(SecurityUtils.encryptPassword(param.getPassword() == null ? pw : param.getPassword()));
|
|
|
+// companyUser.setCreateTime(new Date());
|
|
|
+// companyUser.setCompanyId(param.getCompanyId());
|
|
|
+// companyUser.setParentId(param.getParentCompanyUseId());
|
|
|
+// companyUser.setMaOpenId(session.getOpenid());
|
|
|
+//
|
|
|
+// //部门信息
|
|
|
+// CompanyDept dept = companyDeptService.getDefaultCompanyDeptByCompanyId(param.getCompanyId());
|
|
|
+// if (Objects.nonNull(dept)) {
|
|
|
+// companyUser.setDeptId(dept.getDeptId());
|
|
|
+// }
|
|
|
+// companyUserService.insertUser(companyUser);
|
|
|
// }
|
|
|
+// } else {
|
|
|
+// CompanyUser companyUserMp = new CompanyUser();
|
|
|
+// companyUserMp.setPhonenumber(phoneNoInfo.getPhoneNumber());
|
|
|
+// companyUserMp.setUserId(companyUser.getUserId());
|
|
|
+// companyUserMp.setUpdateTime(new DateTime());
|
|
|
+// companyUserMp.setLoginIp(ip);
|
|
|
+// companyUserService.updateUserProfile(companyUser);
|
|
|
// }
|
|
|
- if (companyUser == null) {
|
|
|
- CompanyUser checkPhone = companyUserService.getCompanyUserByPhone(phoneNoInfo.getPhoneNumber());
|
|
|
- if (checkPhone != null) {
|
|
|
- if (checkPhone.getMaOpenId() == null) {
|
|
|
- companyUser = checkPhone;
|
|
|
- companyUser.setMaOpenId(session.getOpenid());
|
|
|
- companyUser.setUserId(companyUser.getUserId());
|
|
|
- companyUser.setUpdateTime(new DateTime());
|
|
|
- companyUser.setLoginIp(ip);
|
|
|
- companyUserService.updateUserProfile(companyUser);
|
|
|
- } else {
|
|
|
- throw new CustomException("此手机号用户已存在");
|
|
|
- }
|
|
|
- } else {
|
|
|
- //新增
|
|
|
- companyUser = new CompanyUser();
|
|
|
- companyUser.setUserName(phoneNoInfo.getPhoneNumber());
|
|
|
- companyUser.setNickName(userInfo.getNickName() == null ? "微信用户" : userInfo.getNickName());
|
|
|
- companyUser.setPhonenumber(phoneNoInfo.getPhoneNumber());
|
|
|
- companyUser.setSex(userInfo.getGender());
|
|
|
- //密码初始化为123456
|
|
|
- String pw = "123456";
|
|
|
- companyUser.setPassword(SecurityUtils.encryptPassword(param.getPassword() == null ? pw : param.getPassword()));
|
|
|
- companyUser.setCreateTime(new Date());
|
|
|
- companyUser.setCompanyId(param.getCompanyId());
|
|
|
- companyUser.setParentId(param.getParentCompanyUseId());
|
|
|
- companyUser.setMaOpenId(session.getOpenid());
|
|
|
-
|
|
|
- //部门信息
|
|
|
- CompanyDept dept = companyDeptService.getDefaultCompanyDeptByCompanyId(param.getCompanyId());
|
|
|
- if (Objects.nonNull(dept)) {
|
|
|
- companyUser.setDeptId(dept.getDeptId());
|
|
|
- }
|
|
|
- companyUserService.insertUser(companyUser);
|
|
|
- }
|
|
|
+
|
|
|
+ // 添加会员表数据
|
|
|
+ FsUser user = userService.selectFsUserByMpOpenId(session.getOpenid());
|
|
|
+ if (user != null) {
|
|
|
+ //修改
|
|
|
+ FsUser userMap = new FsUser();
|
|
|
+ userMap.setUserId(user.getUserId());
|
|
|
+ userMap.setMpOpenId(session.getOpenid());
|
|
|
+ userMap.setUnionId(session.getUnionid());
|
|
|
+ userMap.setUpdateTime(new DateTime());
|
|
|
+ userMap.setNickname(userInfo.getNickName() != null ? userInfo.getNickName() : "微信用户");
|
|
|
+ userMap.setAvatar(userInfo.getAvatarUrl() != null ? userInfo.getAvatarUrl() : null);
|
|
|
+ userMap.setPhone(phoneNoInfo.getPhoneNumber());
|
|
|
+ userService.updateFsUser(userMap);
|
|
|
} else {
|
|
|
- CompanyUser companyUserMp = new CompanyUser();
|
|
|
- companyUserMp.setPhonenumber(phoneNoInfo.getPhoneNumber());
|
|
|
- companyUserMp.setUserId(companyUser.getUserId());
|
|
|
- companyUserMp.setUpdateTime(new DateTime());
|
|
|
- companyUserMp.setLoginIp(ip);
|
|
|
- companyUserService.updateUserProfile(companyUser);
|
|
|
+ //新增
|
|
|
+ user = new FsUser();
|
|
|
+ user.setNickname(userInfo.getNickName() != null ? userInfo.getNickName() : "微信用户");
|
|
|
+ user.setAvatar(userInfo.getAvatarUrl() != null ? userInfo.getAvatarUrl() : null);
|
|
|
+ user.setStatus(1);
|
|
|
+ user.setMpOpenId(session.getOpenid());
|
|
|
+ user.setUnionId(session.getUnionid());
|
|
|
+ user.setCreateTime(new Date());
|
|
|
+ user.setPhone(phoneNoInfo.getPhoneNumber());
|
|
|
+ userService.insertFsUser(user);
|
|
|
}
|
|
|
- String token = jwtUtils.generateToken(companyUser.getUserId());
|
|
|
- return R.ok("登录成功").put("token", token).put("companyUser", companyUser);
|
|
|
+ log.info("保存成功的用户信息user: {}, 用户id: {}", user, user.getUserId());
|
|
|
+ String token = jwtUtils.generateToken(user.getUserId());
|
|
|
+ // 返回一个写死的数据到前端
|
|
|
+ return R.ok("登录成功").put("token", token).put("phoneNumber", phoneNoInfo.getPhoneNumber()).put("nickName", "微信用户").put("user", user);
|
|
|
} catch (WxErrorException e) {
|
|
|
this.logger.error(e.getMessage(), e);
|
|
|
return R.error("授权失败," + e.getMessage());
|