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; } }