60 lines
2.2 KiB
Java
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;
|
|
}
|
|
}
|