| | |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.ruoyi.common.constant.AmountConstant; |
| | | import com.ruoyi.common.constant.CacheConstants; |
| | | import com.ruoyi.common.constant.Constants; |
| | | import com.ruoyi.common.core.domain.AjaxResult; |
| | | import com.ruoyi.common.core.domain.R; |
| | |
| | | import com.ruoyi.common.core.domain.model.LoginAppBody; |
| | | import com.ruoyi.common.core.domain.model.LoginUserApplet; |
| | | import com.ruoyi.common.core.redis.RedisCache; |
| | | import com.ruoyi.common.exception.ServiceException; |
| | | import com.ruoyi.common.redis.service.RedisService; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.OrderNos; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.uuid.UUID; |
| | | import com.ruoyi.framework.web.service.SysLoginService; |
| | | import com.ruoyi.framework.web.service.SysPermissionService; |
| | | import com.ruoyi.framework.web.service.TokenService; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | import org.springframework.web.client.RestTemplate; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Set; |
| | | import java.math.BigDecimal; |
| | | import java.text.ParseException; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 登录验证 |
| | |
| | | // } |
| | | // AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey, data.getIv()); |
| | | // appletUserDecodeData.setOpenId(openid); |
| | | // 先使用openId和当前手机号进行查询 |
| | | String uuid = UUID.fastUUID().toString(); |
| | | boolean lock = redisCache.trylockLoop(CacheConstants.LOGIN_LOCK_KEY + openid, uuid, 60); |
| | | // 先使用openId进行查询 |
| | | TAppUser sysAppUser = appUserService.getOne(Wrappers.lambdaQuery(TAppUser.class) |
| | | .and(e->e.eq(TAppUser::getOpenId, openid))); |
| | | if (sysAppUser==null){ |
| | | sysAppUser = new TAppUser(); |
| | | .eq(TAppUser::getOpenId, openid)); |
| | | if (lock){ |
| | | try { |
| | | if (sysAppUser==null){ |
| | | sysAppUser = new TAppUser(); |
| | | // sysAppUser.setPhoneNumber(appletUserDecodeData.getPhoneNumber()); |
| | | sysAppUser.setOpenId(openid); |
| | | // 手机号中间四位替换为* |
| | | sysAppUser.setOpenId(openid); |
| | | // 手机号中间四位替换为* |
| | | // sysAppUser.setNickName(appletUserDecodeData.getPhoneNumber().replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")); |
| | | appUserService.save(sysAppUser); |
| | | }else { |
| | | // 判断账号是否被冻结 |
| | | if (sysAppUser.getStatus() == 2){ |
| | | return R.fail("账号已冻结,请联系管理员"); |
| | | appUserService.save(sysAppUser); |
| | | }else { |
| | | // 判断账号是否被冻结 |
| | | if (sysAppUser.getStatus() == 2){ |
| | | return R.fail("账号已冻结,请联系管理员"); |
| | | } |
| | | // 手机号相同但openId为空的情况 |
| | | sysAppUser.setOpenId(openid); |
| | | appUserService.updateById(sysAppUser); |
| | | } |
| | | }finally { |
| | | redisCache.unlock(CacheConstants.LOGIN_LOCK_KEY + openid,uuid); |
| | | } |
| | | // 手机号相同但openId为空的情况 |
| | | sysAppUser.setOpenId(openid); |
| | | appUserService.updateById(sysAppUser); |
| | | } |
| | | LoginUserApplet loginUserApplet = new LoginUserApplet(); |
| | | TAppUserResp sysUserResp = new TAppUserResp(); |