84 lines
3.3 KiB
Java
84 lines
3.3 KiB
Java
package com.quinn.service.impl;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.quinn.common.RoleType;
|
|
import com.quinn.intergration.AttrIcon;
|
|
import com.quinn.mapper.UserMapper;
|
|
import com.quinn.pojo.AccSetting;
|
|
import com.quinn.pojo.AccSettingDefault;
|
|
import com.quinn.pojo.User;
|
|
import com.quinn.service.AccSettingDefaultService;
|
|
import com.quinn.service.AccSettingService;
|
|
import com.quinn.service.AccountCheckService;
|
|
import com.quinn.utils.HttpUtils;
|
|
import com.quinn.utils.JsonUtils;
|
|
import com.quinn.utils.QuinnUtils;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.springframework.beans.BeanUtils;
|
|
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.util.StringUtils;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.*;
|
|
|
|
@Component
|
|
public class AccountCheckServiceImpl implements AccountCheckService {
|
|
|
|
@Resource
|
|
UserMapper userMapper;
|
|
@Resource
|
|
AccSettingService accSettingService;
|
|
@Resource
|
|
AccSettingDefaultService accSettingDefaultService;
|
|
|
|
private final String WX_OPENID_URL = "https://api.weixin.qq.com/sns/jscode2session";
|
|
private final String WX_APP_ID = "wxb1f499f0a173865b";
|
|
private final String WX_APP_SECRET = "833eefaf9206337d6c2d643f94baef7b";
|
|
private final String GRANT_TYPE = "authorization_code";
|
|
|
|
@Override
|
|
public String getUserId(String code) {
|
|
Map param = new HashMap<>();
|
|
param.put("appid",WX_APP_ID);
|
|
param.put("secret",WX_APP_SECRET);
|
|
param.put("js_code",code);
|
|
param.put("GRANT_TYPE",GRANT_TYPE);
|
|
String result = HttpUtils.doPost(WX_OPENID_URL, param);
|
|
String openid = (String) JsonUtils.decode(result,Map.class).get("openid");
|
|
String uid = userMapper.getUserByOpenid(openid);
|
|
if (StringUtils.isEmpty(uid) && !StringUtils.isEmpty(openid)){
|
|
// 没有这个用户,需要构建用户对象
|
|
User user = new User();
|
|
uid = QuinnUtils.getUuid();
|
|
user.setUid(uid); // 用户唯一id
|
|
user.setRole(RoleType.NORMAL.name());
|
|
user.setUsername(uid);
|
|
// 密码加密
|
|
String bCryptPassword = new BCryptPasswordEncoder().encode("123456");
|
|
user.setAvatar(AttrIcon.INSTANCE.generateImgUrl("123456"));
|
|
user.setPassword(bCryptPassword);
|
|
user.setGmtCreate(QuinnUtils.getTime());
|
|
user.setLoginDate(QuinnUtils.getTime());
|
|
user.setOpenid(openid);
|
|
// 保存对象!
|
|
userMapper.insert(user);
|
|
|
|
// 初始化支出收入配置
|
|
List<AccSetting> insertList = new ArrayList<>();
|
|
List<AccSettingDefault> list = accSettingDefaultService.list(new QueryWrapper<>());
|
|
for (AccSettingDefault x : list) {
|
|
AccSetting accSetting = new AccSetting();
|
|
BeanUtils.copyProperties(x,accSetting);
|
|
accSetting.setGmtCreate(new Date());
|
|
accSetting.setUserId(uid);
|
|
insertList.add(accSetting);
|
|
}
|
|
if (!CollectionUtils.isEmpty(insertList)){
|
|
accSettingService.saveBatch(insertList);
|
|
}
|
|
}
|
|
return uid;
|
|
}
|
|
}
|