|
@@ -25,6 +25,7 @@ import shop.alien.util.common.DateUtils;
|
|
|
import shop.alien.util.common.JwtUtil;
|
|
import shop.alien.util.common.JwtUtil;
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
+import javax.servlet.http.HttpSession;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
|
|
|
|
@@ -46,27 +47,31 @@ public class StorePlatformLoginServiceImpl extends ServiceImpl<StoreUserMapper,
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public R<Boolean> register(String phone, String password) {
|
|
public R<Boolean> register(String phone, String password) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ LambdaQueryWrapper<StoreUser> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq(StoreUser::getPhone, phone)
|
|
|
|
|
+ .orderByDesc(StoreUser::getCreatedTime).last("LIMIT 1");
|
|
|
|
|
+ StoreUser storeUser = storeUserMapper.selectOne(queryWrapper);
|
|
|
|
|
+
|
|
|
|
|
+ List<Integer> noRegister = Arrays.asList(0, 1);
|
|
|
|
|
|
|
|
- LambdaQueryWrapper<StoreUser> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- queryWrapper.eq(StoreUser::getPhone, phone)
|
|
|
|
|
- .orderByDesc(StoreUser::getCreatedTime).last("LIMIT 1");
|
|
|
|
|
- StoreUser storeUser = storeUserMapper.selectOne(queryWrapper);
|
|
|
|
|
|
|
+ if (Objects.isNull((storeUser))) {
|
|
|
|
|
+ // 没有数据
|
|
|
|
|
+ saveNewUser(phone, password);
|
|
|
|
|
+ return R.success("操作成功");
|
|
|
|
|
|
|
|
- List<Integer> noRegister = Arrays.asList(0, 1);
|
|
|
|
|
|
|
+ } else if (noRegister.contains(storeUser.getStatus())) {
|
|
|
|
|
+ return R.fail("手机号已经注册过");
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- if (Objects.isNull((storeUser))) {
|
|
|
|
|
- // 没有数据
|
|
|
|
|
|
|
+ int daysSinceDeletion = DateUtils.subtraction(storeUser.getCreatedTime(), new Date());
|
|
|
|
|
+ if (daysSinceDeletion < 30) return R.fail(String.format("请于%d天后重新申请注册", 30 - daysSinceDeletion));
|
|
|
saveNewUser(phone, password);
|
|
saveNewUser(phone, password);
|
|
|
return R.success("操作成功");
|
|
return R.success("操作成功");
|
|
|
-
|
|
|
|
|
- } else if (noRegister.contains(storeUser.getStatus())) {
|
|
|
|
|
- return R.fail("手机号已经注册过");
|
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("StorePlatformLoginServiceImpl.register(): Error Msg={}", e.getMessage());
|
|
|
|
|
+ throw new RuntimeException(e.getMessage());
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
- int daysSinceDeletion = DateUtils.subtraction(storeUser.getCreatedTime(), new Date());
|
|
|
|
|
- if (daysSinceDeletion < 30) return R.fail(String.format("请于%d天后重新申请注册", 30 - daysSinceDeletion));
|
|
|
|
|
- saveNewUser(phone, password);
|
|
|
|
|
- return R.success("操作成功");
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void saveNewUser(String phone, String password) {
|
|
private void saveNewUser(String phone, String password) {
|
|
@@ -83,53 +88,64 @@ public class StorePlatformLoginServiceImpl extends ServiceImpl<StoreUserMapper,
|
|
|
storeUserMapper.insert(registerStoreUser);
|
|
storeUserMapper.insert(registerStoreUser);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
public boolean checkRegister(String phone) {
|
|
public boolean checkRegister(String phone) {
|
|
|
- LambdaQueryWrapper<StoreUser> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
- queryWrapper.eq(StoreUser::getPhone, phone);
|
|
|
|
|
- queryWrapper.in(StoreUser::getStatus, 0, 1);
|
|
|
|
|
- List<StoreUser> storeUsers = storeUserMapper.selectList(queryWrapper);
|
|
|
|
|
- return CollectionUtils.isEmpty(storeUsers) ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ LambdaQueryWrapper<StoreUser> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
+ queryWrapper.eq(StoreUser::getPhone, phone);
|
|
|
|
|
+ queryWrapper.in(StoreUser::getStatus, 0, 1);
|
|
|
|
|
+ List<StoreUser> storeUsers = storeUserMapper.selectList(queryWrapper);
|
|
|
|
|
+ return CollectionUtils.isEmpty(storeUsers) ? Boolean.TRUE : Boolean.FALSE;
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("StorePlatformLoginServiceImpl.checkRegister(): Error Msg={}", e.getMessage());
|
|
|
|
|
+ throw new RuntimeException(e.getMessage());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
public R<StoreUserVo> createToKen(StoreUser storeUser) {
|
|
public R<StoreUserVo> createToKen(StoreUser storeUser) {
|
|
|
- int effectiveTimeInt = Integer.parseInt(effectiveTime.substring(0, effectiveTime.length() - 1));
|
|
|
|
|
- String effectiveTimeUnit = effectiveTime.substring(effectiveTime.length() - 1);
|
|
|
|
|
- long effectiveTimeIntLong = 0L;
|
|
|
|
|
- switch (effectiveTimeUnit) {
|
|
|
|
|
- case "s": {
|
|
|
|
|
- effectiveTimeIntLong = effectiveTimeInt * 1000L;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- case "m": {
|
|
|
|
|
- effectiveTimeIntLong = effectiveTimeInt * 60L * 1000L;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- case "h": {
|
|
|
|
|
- effectiveTimeIntLong = effectiveTimeInt * 60L * 60L * 1000L;
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
- case "d": {
|
|
|
|
|
- effectiveTimeIntLong = effectiveTimeInt * 24L * 60L * 60L * 1000L;
|
|
|
|
|
- break;
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ int effectiveTimeInt = Integer.parseInt(effectiveTime.substring(0, effectiveTime.length() - 1));
|
|
|
|
|
+ String effectiveTimeUnit = effectiveTime.substring(effectiveTime.length() - 1);
|
|
|
|
|
+ long effectiveTimeIntLong = 0L;
|
|
|
|
|
+ switch (effectiveTimeUnit) {
|
|
|
|
|
+ case "s": {
|
|
|
|
|
+ effectiveTimeIntLong = effectiveTimeInt * 1000L;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ case "m": {
|
|
|
|
|
+ effectiveTimeIntLong = effectiveTimeInt * 60L * 1000L;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ case "h": {
|
|
|
|
|
+ effectiveTimeIntLong = effectiveTimeInt * 60L * 60L * 1000L;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
|
|
+ case "d": {
|
|
|
|
|
+ effectiveTimeIntLong = effectiveTimeInt * 24L * 60L * 60L * 1000L;
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
- StoreUserVo storeUserVo = new StoreUserVo();
|
|
|
|
|
- BeanUtils.copyProperties(storeUser, storeUserVo);
|
|
|
|
|
- Map<String, String> tokenMap = new HashMap<>();
|
|
|
|
|
- tokenMap.put("phone", storeUser.getPhone());
|
|
|
|
|
- tokenMap.put("userName", storeUser.getName());
|
|
|
|
|
- tokenMap.put("userId", storeUser.getId().toString());
|
|
|
|
|
- tokenMap.put("userType", "storePlatform");
|
|
|
|
|
- storeUserVo.setToken(JwtUtil.createJWT("store_platform_" + storeUser.getPhone(), storeUser.getName(), JSONObject.toJSONString(tokenMap), effectiveTimeIntLong));
|
|
|
|
|
- baseRedisService.setString("store_platform_" + storeUser.getPhone(), storeUserVo.getToken());
|
|
|
|
|
- StoreInfo storeInfo = storeInfoMapper.selectById(storeUser.getStoreId());
|
|
|
|
|
- if (storeInfo != null) {
|
|
|
|
|
- storeUserVo.setBusinessSection(storeInfo.getBusinessSection());
|
|
|
|
|
- storeUserVo.setBusinessTypesName(storeInfo.getBusinessTypesName());
|
|
|
|
|
|
|
+ StoreUserVo storeUserVo = new StoreUserVo();
|
|
|
|
|
+ BeanUtils.copyProperties(storeUser, storeUserVo);
|
|
|
|
|
+ Map<String, String> tokenMap = new HashMap<>();
|
|
|
|
|
+ tokenMap.put("phone", storeUser.getPhone());
|
|
|
|
|
+ tokenMap.put("userName", storeUser.getName());
|
|
|
|
|
+ tokenMap.put("userId", storeUser.getId().toString());
|
|
|
|
|
+ tokenMap.put("userType", "storePlatform");
|
|
|
|
|
+ storeUserVo.setToken(JwtUtil.createJWT("storePlatform_" + storeUser.getPhone(), storeUser.getName(), JSONObject.toJSONString(tokenMap), effectiveTimeIntLong));
|
|
|
|
|
+ baseRedisService.setString("storePlatform_" + storeUser.getPhone(), storeUserVo.getToken());
|
|
|
|
|
+ StoreInfo storeInfo = storeInfoMapper.selectById(storeUser.getStoreId());
|
|
|
|
|
+ if (storeInfo != null) {
|
|
|
|
|
+ storeUserVo.setBusinessSection(storeInfo.getBusinessSection());
|
|
|
|
|
+ storeUserVo.setBusinessTypesName(storeInfo.getBusinessTypesName());
|
|
|
|
|
+ }
|
|
|
|
|
+ return R.data(storeUserVo);
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ log.error("StorePlatformLoginServiceImpl.createToKen(): Error Msg={}", e.getMessage());
|
|
|
|
|
+ throw new RuntimeException(e.getMessage());
|
|
|
}
|
|
}
|
|
|
- return R.data(storeUserVo);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -168,17 +184,23 @@ public class StorePlatformLoginServiceImpl extends ServiceImpl<StoreUserMapper,
|
|
|
}
|
|
}
|
|
|
return R.success("密码修改成功");
|
|
return R.success("密码修改成功");
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
|
|
+ log.info("StorePlatformLoginServiceImpl.forgetOrModifyPassword(): Error Msg={}", e.getMessage());
|
|
|
return R.fail(e.getMessage());
|
|
return R.fail(e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- public void generateCaptcha(HttpServletResponse response, String phone) throws IOException {
|
|
|
|
|
- LineCaptcha captcha = CaptchaUtil.createLineCaptcha(200, 100, 4, 100);
|
|
|
|
|
- baseRedisService.setString("store_platform_captcha_" + phone, captcha.getCode(), timeOut);
|
|
|
|
|
- response.setContentType("image/png");
|
|
|
|
|
- response.setHeader("Pragma", "No-cache");
|
|
|
|
|
- captcha.write(response.getOutputStream());
|
|
|
|
|
|
|
+ public void generateCaptcha(HttpServletResponse response, HttpSession session) throws IOException {
|
|
|
|
|
+ try {
|
|
|
|
|
+ LineCaptcha captcha = CaptchaUtil.createLineCaptcha(200, 100, 4, 100);
|
|
|
|
|
+ session.setAttribute("captcha", captcha.getCode());
|
|
|
|
|
+ response.setContentType("image/png");
|
|
|
|
|
+ response.setHeader("Pragma", "No-cache");
|
|
|
|
|
+ captcha.write(response.getOutputStream());
|
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
|
+ log.error("StorePlatformLoginServiceImpl.generateCaptcha(): Error Msg={}", e.getMessage());
|
|
|
|
|
+ throw new RuntimeException(e.getMessage());
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private void passwordVerification(String phone, String password, String newPassword, String confirmNewPassword) {
|
|
private void passwordVerification(String phone, String password, String newPassword, String confirmNewPassword) {
|