|
@@ -1,14 +1,35 @@
|
|
package com.fdkankan.openApi.service.system.impl;
|
|
package com.fdkankan.openApi.service.system.impl;
|
|
|
|
|
|
|
|
+import cn.dev33.satoken.stp.SaLoginModel;
|
|
|
|
+import cn.dev33.satoken.stp.StpUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.fdkankan.common.constant.CommonStatus;
|
|
|
|
+import com.fdkankan.common.constant.ErrorCode;
|
|
|
|
+import com.fdkankan.common.exception.BusinessException;
|
|
|
|
+import com.fdkankan.common.util.Base64Converter;
|
|
|
|
+import com.fdkankan.common.util.PasswordUtils;
|
|
import com.fdkankan.openApi.entity.system.Account;
|
|
import com.fdkankan.openApi.entity.system.Account;
|
|
|
|
+import com.fdkankan.openApi.entity.system.UserAuthInfo;
|
|
|
|
+import com.fdkankan.openApi.entity.www.User;
|
|
|
|
+import com.fdkankan.openApi.httpclient.client.FdKKClient;
|
|
import com.fdkankan.openApi.mapper.system.IAccountMapper;
|
|
import com.fdkankan.openApi.mapper.system.IAccountMapper;
|
|
import com.fdkankan.openApi.service.system.IAccountService;
|
|
import com.fdkankan.openApi.service.system.IAccountService;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.fdkankan.openApi.service.system.IUserAuthInfoService;
|
|
|
|
+import com.fdkankan.openApi.service.www.IUserService;
|
|
import com.fdkankan.openApi.util.JwtUtil;
|
|
import com.fdkankan.openApi.util.JwtUtil;
|
|
|
|
+import com.fdkankan.openApi.util.TokenUtil;
|
|
|
|
+import com.fdkankan.openApi.vo.system.CreateAppUserParamVo;
|
|
|
|
+import com.fdkankan.openApi.vo.system.LoginParam;
|
|
|
|
+import com.fdkankan.openApi.vo.www.FdkkLoginVo;
|
|
|
|
+import com.fdkankan.web.response.Result;
|
|
|
|
+import com.fdkankan.web.response.ResultData;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.util.Objects;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
* 账号表 服务实现类
|
|
* 账号表 服务实现类
|
|
@@ -20,6 +41,13 @@ import org.springframework.stereotype.Service;
|
|
@Service
|
|
@Service
|
|
public class AccountServiceImpl extends ServiceImpl<IAccountMapper, Account> implements IAccountService {
|
|
public class AccountServiceImpl extends ServiceImpl<IAccountMapper, Account> implements IAccountService {
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private FdKKClient fdKKClient;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IUserAuthInfoService userAuthService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IUserService userService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public Account findByUserName(String userName) {
|
|
public Account findByUserName(String userName) {
|
|
LambdaQueryWrapper<Account> wrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<Account> wrapper = new LambdaQueryWrapper<>();
|
|
@@ -61,4 +89,58 @@ public class AccountServiceImpl extends ServiceImpl<IAccountMapper, Account> imp
|
|
return findByUserName(userName);
|
|
return findByUserName(userName);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public ResultData longinV1(LoginParam param) {
|
|
|
|
+ String password = PasswordUtils.decycptPasswordWeb(Base64Converter.encode(param.getPassword()));
|
|
|
|
+ param.setPassword(password);
|
|
|
|
+ Result<FdkkLoginVo> fdkkLoginVo = fdKKClient.fdkkLogin(param);
|
|
|
|
+ SaLoginModel saLoginModel = new SaLoginModel();
|
|
|
|
+ saLoginModel
|
|
|
|
+ .setIsLastingCookie(false)
|
|
|
|
+ .setToken(fdkkLoginVo.getData().getToken());
|
|
|
|
+ FdkkLoginVo data = fdkkLoginVo.getData();
|
|
|
|
+ Account account = this.findByUserName(data.getUser().getUserName(), data.getUser().getId(), data.getUser().getHead());
|
|
|
|
+ if(Objects.nonNull(account)){
|
|
|
|
+ UserAuthInfo userAuthInfo = userAuthService.findByUserIdCreateIfNotExits(account.getId(), account.getUserId());
|
|
|
|
+ data.setAppKey(userAuthInfo.getAppKey());
|
|
|
|
+ }
|
|
|
|
+ StpUtil.login(account.getUserName(), saLoginModel);
|
|
|
|
+ StpUtil.getSession().set("user", account);
|
|
|
|
+ return ResultData.ok(data.getAppKey());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public ResultData createApp(CreateAppUserParamVo param) {
|
|
|
|
+ Account account = this.getOne(new LambdaQueryWrapper<Account>().eq(Account::getUserName, param.getUserName()));
|
|
|
|
+ if(Objects.nonNull(account)){
|
|
|
|
+ throw new BusinessException(ErrorCode.FAILURE_CODE_10002);
|
|
|
|
+ }
|
|
|
|
+ User user = userService.getByUserName(param.getUserName());
|
|
|
|
+ if(Objects.isNull(user)){
|
|
|
|
+ throw new BusinessException(ErrorCode.FAILURE_CODE_3021);
|
|
|
|
+ }
|
|
|
|
+ if(param.getState() != CommonStatus.NO.code().intValue()
|
|
|
|
+ || param.getState() != CommonStatus.YES.code().intValue()){
|
|
|
|
+ throw new BusinessException(ErrorCode.PARAM_ERROR);
|
|
|
|
+ }
|
|
|
|
+ account = new Account();
|
|
|
|
+ account.setUserId(user.getId());
|
|
|
|
+ account.setUserName(user.getUserName());
|
|
|
|
+ account.setCustomerName(param.getCustomerName());
|
|
|
|
+ account.setDescription(param.getDescription());
|
|
|
|
+ account.setCreaterId(param.getCreaterId());
|
|
|
|
+ this.save(account);
|
|
|
|
+
|
|
|
|
+ UserAuthInfo userAuthInfo = new UserAuthInfo();
|
|
|
|
+ userAuthInfo.setAccountId(account.getId());
|
|
|
|
+ userAuthInfo.setUserId(user.getId());
|
|
|
|
+ userAuthInfo.setAppKey(TokenUtil.createToken());
|
|
|
|
+ userAuthInfo.setTotalCount(param.getCount());
|
|
|
|
+ userAuthInfo.setState(userAuthInfo.getState());
|
|
|
|
+ userAuthInfo.setEffectTime(param.getEffectTime());
|
|
|
|
+ userAuthInfo.setCreaterId(param.getCreaterId());
|
|
|
|
+ userAuthService.save(userAuthInfo);
|
|
|
|
+
|
|
|
|
+ return ResultData.ok();
|
|
|
|
+ }
|
|
}
|
|
}
|