|
|
@@ -1,5 +1,7 @@
|
|
|
package shop.alien.storeplatform.service.impl;
|
|
|
|
|
|
+import cn.hutool.captcha.CaptchaUtil;
|
|
|
+import cn.hutool.captcha.LineCaptcha;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
@@ -8,6 +10,7 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.cloud.context.config.annotation.RefreshScope;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
import shop.alien.config.redis.BaseRedisService;
|
|
|
@@ -21,16 +24,22 @@ import shop.alien.storeplatform.service.StorePlatformLoginervice;
|
|
|
import shop.alien.util.common.DateUtils;
|
|
|
import shop.alien.util.common.JwtUtil;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.io.IOException;
|
|
|
import java.util.*;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
|
+@RefreshScope
|
|
|
public class StorePlatformLoginServiceImpl extends ServiceImpl<StoreUserMapper, StoreUser> implements StorePlatformLoginervice {
|
|
|
|
|
|
@Value("${jwt.expiration-time}")
|
|
|
private String effectiveTime;
|
|
|
|
|
|
+ @Value("${captcha.register.timeOut}")
|
|
|
+ private Long timeOut;
|
|
|
+
|
|
|
private final StoreUserMapper storeUserMapper;
|
|
|
private final StoreInfoMapper storeInfoMapper;
|
|
|
private final BaseRedisService baseRedisService;
|
|
|
@@ -60,6 +69,20 @@ public class StorePlatformLoginServiceImpl extends ServiceImpl<StoreUserMapper,
|
|
|
return R.success("操作成功");
|
|
|
}
|
|
|
|
|
|
+ private void saveNewUser(String phone, String password) {
|
|
|
+ StoreUser registerStoreUser = new StoreUser();
|
|
|
+ registerStoreUser.setPhone(phone);
|
|
|
+ registerStoreUser.setPassword(password);
|
|
|
+ registerStoreUser.setMoney(0);
|
|
|
+ registerStoreUser.setDeleteFlag(0);
|
|
|
+ registerStoreUser.setStatus(0);
|
|
|
+ registerStoreUser.setPassType(2);
|
|
|
+ registerStoreUser.setCreatedTime(new Date());
|
|
|
+ registerStoreUser.setLogoutFlag(0);
|
|
|
+ registerStoreUser.setNickName(phone);
|
|
|
+ storeUserMapper.insert(registerStoreUser);
|
|
|
+ }
|
|
|
+
|
|
|
public boolean checkRegister(String phone) {
|
|
|
LambdaQueryWrapper<StoreUser> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(StoreUser::getPhone, phone);
|
|
|
@@ -98,7 +121,7 @@ public class StorePlatformLoginServiceImpl extends ServiceImpl<StoreUserMapper,
|
|
|
tokenMap.put("phone", storeUser.getPhone());
|
|
|
tokenMap.put("userName", storeUser.getName());
|
|
|
tokenMap.put("userId", storeUser.getId().toString());
|
|
|
- tokenMap.put("userType", "store");
|
|
|
+ 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());
|
|
|
@@ -149,18 +172,13 @@ public class StorePlatformLoginServiceImpl extends ServiceImpl<StoreUserMapper,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private void saveNewUser(String phone, String password) {
|
|
|
- StoreUser registerStoreUser = new StoreUser();
|
|
|
- registerStoreUser.setPhone(phone);
|
|
|
- registerStoreUser.setPassword(password);
|
|
|
- registerStoreUser.setMoney(0);
|
|
|
- registerStoreUser.setDeleteFlag(0);
|
|
|
- registerStoreUser.setStatus(0);
|
|
|
- registerStoreUser.setPassType(2);
|
|
|
- registerStoreUser.setCreatedTime(new Date());
|
|
|
- registerStoreUser.setLogoutFlag(0);
|
|
|
- registerStoreUser.setNickName(phone);
|
|
|
- storeUserMapper.insert(registerStoreUser);
|
|
|
+ @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());
|
|
|
}
|
|
|
|
|
|
private void passwordVerification(String phone, String password, String newPassword, String confirmNewPassword) {
|