Files
quinn-bbc/src/main/java/com/quinn/service/impl/AccountCheckServiceImpl.java
2023-02-08 21:35:09 +08:00

60 lines
2.2 KiB
Java

package com.quinn.service.impl;
import com.quinn.common.RoleType;
import com.quinn.intergration.AttrIcon;
import com.quinn.mapper.UserMapper;
import com.quinn.pojo.User;
import com.quinn.service.AccountCheckService;
import com.quinn.utils.HttpUtils;
import com.quinn.utils.JsonUtils;
import com.quinn.utils.QuinnUtils;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@Component
public class AccountCheckServiceImpl implements AccountCheckService {
@Resource
UserMapper userMapper;
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);
}
return uid;
}
}