master
肖凡 2023-11-24 21:24:55 +08:00
parent 06d0c3b837
commit f25d48a272
38 changed files with 205 additions and 27 deletions

View File

@ -14,9 +14,13 @@
<module name="bwie-rabbit" />
<module name="bwie-gateway" />
<module name="bwie-auth" />
<module name="bwie-list" />
<module name="bwie-merch" />
</profile>
</annotationProcessing>
<bytecodeTargetLevel>
<module name="bwie-list" target="1.8" />
</bytecodeTargetLevel>
</component>
<component name="JavacSettings">
<option name="ADDITIONAL_OPTIONS_OVERRIDE">
@ -24,6 +28,7 @@
<module name="bwie-common" options="-parameters" />
<module name="bwie-customer" options="-parameters" />
<module name="bwie-gateway" options="-parameters" />
<module name="bwie-list" options="-parameters" />
<module name="bwie-merch" options="-parameters" />
<module name="bwie-rabbit" options="-parameters" />
<module name="bwie-user" options="-parameters" />

View File

@ -7,6 +7,11 @@
<option value="$PROJECT_DIR$/pom.xml" />
</list>
</option>
<option name="ignoredFiles">
<set>
<option value="$PROJECT_DIR$/bwie-moudels/bwie-list/pom.xml" />
</set>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />

View File

@ -0,0 +1,46 @@
package com.bwie.auth.constart;
import com.bwie.auth.feign.UserFeignService;
import com.bwie.common.constants.RabbitMQQueueConstants;
import com.bwie.common.domain.Info;
import com.rabbitmq.client.Channel;
import lombok.extern.log4j.Log4j2;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.Queue;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
@Component
@Log4j2
public class AddInfoQueue {
@Autowired
RedisTemplate<String,String> redisTemplate;
@Autowired
UserFeignService userFeignService;
@RabbitListener(queuesToDeclare = {@Queue(RabbitMQQueueConstants.LONG_LOG_QUEUE)})
public void addInfo(Message message, Info info, Channel channel){
log.info("开始记录日志");
String messageId = message.getMessageProperties().getMessageId();
try {
Long l = redisTemplate.opsForSet().add(RabbitMQQueueConstants.LONG_LOG_QUEUE,messageId);
if (l==1){
userFeignService.addInfo(info);
channel.basicAck(message.getMessageProperties().getDeliveryTag(),false);
log.info("日志添加成功");
}else{
log.info("日志已添加,请勿重复添加");
}
}catch (Exception e){
try {
channel.basicReject(message.getMessageProperties().getDeliveryTag(),true);
redisTemplate.opsForSet().remove(RabbitMQQueueConstants.LONG_LOG_QUEUE,messageId);
}catch (Exception e1){
e1.printStackTrace();
}
e.printStackTrace();
}
}
}

View File

@ -1,13 +1,18 @@
package com.bwie.auth.feign;
import com.bwie.common.domain.Info;
import com.bwie.common.domain.User;
import com.bwie.common.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@FeignClient("bwie-user")
public interface UserFeignService {
@GetMapping("/findByPhone/{phone}")
public Result<User> findByPhone(@PathVariable String phone);
@PostMapping("/addInfo")
public Result addInfo(@RequestBody Info info);
}

View File

@ -1,12 +1,12 @@
package com.bwie.auth.service;
import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
import com.bwie.auth.feign.UserFeignService;
import com.bwie.common.constants.JwtConstants;
import com.bwie.common.constants.RabbitMQQueueConstants;
import com.bwie.common.constants.TokenConstants;
import com.bwie.common.domain.AddInfo;
import com.bwie.common.domain.Info;
import com.bwie.common.domain.User;
import com.bwie.common.domain.request.LoginRequest;
import com.bwie.common.domain.response.JwtResponse;
@ -19,6 +19,7 @@ import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@ -58,34 +59,46 @@ public class AuthServiceimpl implements AuthService{
@Override
public Result<JwtResponse> login(LoginRequest loginRequest) {
Info info = new Info();
info.setCreateTime(new Date());
if (!vailPhone(loginRequest.getPhone())){
addLog(loginRequest.getPhone(), AddInfo.LOG_INFO,"手机号格式错误");
return Result.error("手机号格式错误");
}
Result<User> byPhone = userFeignService.findByPhone(loginRequest.getPhone());
User user = byPhone.getData();
if (user==null){
addLog(loginRequest.getPhone(),AddInfo.LOG_INFO,"手机号或密码不能为空");
return Result.error("手机号或密码不能为空");
}
String code = redisTemplate.opsForValue().get(loginRequest.getPhone());
if (StringUtils.isEmpty(code)){
addLog(loginRequest.getPhone(),AddInfo.LOG_INFO,"请注册");
return Result.error("请注册");
}
if (!code.equals(loginRequest.getCode())){
addLog(loginRequest.getPhone(),AddInfo.LOG_INFO,"验证码错误");
return Result.error("验证码错误");
}
if (loginRequest.getUserPwd()==null){
addLog(loginRequest.getPhone(),AddInfo.LOG_INFO,"密码不能为空");
return Result.error("密码不能为空");
}
if (!vailPwd(loginRequest.getUserPwd())){
addLog(loginRequest.getPhone(),AddInfo.LOG_INFO,"密码最少六位,包含一个大写字母和一个小写字母和一个数字和一个特殊字符");
return Result.error("密码最少六位,包含一个大写字母和一个小写字母和一个数字和一个特殊字符");
}
if (vailPwd2(loginRequest.getUserPwd())){
addLog(loginRequest.getPhone(),AddInfo.LOG_INFO,"密码不能为空");
return Result.error("密码不能为空");
}
if (!user.getUserPwd().equals(loginRequest.getUserPwd())){
addLog(loginRequest.getPhone(),AddInfo.LOG_INFO,"密码错误");
return Result.error("密码错误");
}
addLog(loginRequest.getPhone(),AddInfo.LOG_SUCCESS,"登陆成功");
String userKey = UUID.randomUUID().toString().replaceAll("-", "");
HashMap<String, Object> claims = new HashMap<>();
claims.put(JwtConstants.USER_KEY,userKey);
@ -93,6 +106,8 @@ public class AuthServiceimpl implements AuthService{
redisTemplate.opsForValue().set(TokenConstants.LOGIN_TOKEN_KEY+userKey, JSONObject.toJSONString(user),30, TimeUnit.MINUTES);
JwtResponse jwtResponse = new JwtResponse();
jwtResponse.setTime("30MIN");
jwtResponse.setToken(token);
@ -129,4 +144,16 @@ public class AuthServiceimpl implements AuthService{
return compile.matcher(userPwd).matches();
}
public void addLog(String userName,Integer isOk,String pormenInfo){
Info info = new Info();
info.setCreateTime(new Date());
info.setUserName(userName);
info.setIsOk(isOk);
info.setPromenInfo(pormenInfo);
rabbitTemplate.convertAndSend(RabbitMQQueueConstants.LONG_LOG_QUEUE,info,message -> {
message.getMessageProperties().setMessageId(UUID.randomUUID().toString().replaceAll("-",""));
return message;
});
}
}

View File

@ -1,6 +1,7 @@
com\bwie\auth\config\ConfirmCallbackConfig.class
com\bwie\auth\service\AuthServiceimpl.class
com\bwie\auth\controller\AuthController.class
com\bwie\auth\constart\AddInfoQueue.class
com\bwie\auth\feign\UserFeignService.class
com\bwie\auth\AuthApp.class
com\bwie\auth\service\AuthService.class

View File

@ -2,6 +2,7 @@ D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\AuthApp.java
D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\config\ConfirmCallbackConfig.java
D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\feign\UserFeignService.java
D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\service\AuthService.java
D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\constart\AddInfoQueue.java
D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\controller\AuthController.java
D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\service\AuthServiceimpl.java
D:\zhuangao5\safeway\bwie-auth\src\main\java\com\bwie\auth\config\ReturnCallbackConfig.java

View File

@ -0,0 +1,6 @@
package com.bwie.common.domain;
public class AddInfo {
public static final Integer LOG_INFO=1;
public static final Integer LOG_SUCCESS=2;
}

View File

@ -0,0 +1,15 @@
package com.bwie.common.domain;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class Info implements Serializable {
private Integer id;
private String userName;
private Date createTime;
private Integer isOk;
private String promenInfo;
}

View File

@ -0,0 +1,18 @@
package com.bwie.common.domain;
import lombok.Data;
import java.util.Date;
@Data
public class Provider {
private Integer listId;
private Integer merchId;
private String merchName;
private String merchType;
private Double merchPrice;
private Integer planNum;
private Date importDate;
private Integer providerId;
private String providerName;
}

View File

@ -0,0 +1,4 @@
package com.bwie.common.domain.request;
public class ProviderRequest {
}

View File

@ -1,23 +1,25 @@
com\bwie\common\domain\Merch.class
com\bwie\common\domain\request\VipRequest.class
com\bwie\common\result\PageResult.class
com\bwie\common\domain\request\LoginRequest.class
com\bwie\common\domain\User.class
com\bwie\common\utils\JwtUtils.class
com\bwie\common\constants\Constants.class
com\bwie\common\domain\Vip.class
com\bwie\common\domain\Info.class
com\bwie\common\domain\Customer.class
com\bwie\common\constants\RabbitName.class
com\bwie\common\domain\Merch.class
com\bwie\common\domain\request\LoginRequest.class
com\bwie\common\utils\TelSmsUtils.class
com\bwie\common\domain\request\CustomerRequest.class
com\bwie\common\utils\JwtUtils.class
com\bwie\common\constants\RabbitMQQueueConstants.class
com\bwie\common\utils\StringUtils.class
com\bwie\common\constants\JwtConstants.class
com\bwie\common\constants\Constants.class
com\bwie\common\domain\AddInfo.class
com\bwie\common\domain\request\MerchRequest.class
com\bwie\common\constants\TokenConstants.class
com\bwie\common\utils\OssUtil.class
com\bwie\common\result\Result.class
com\bwie\common\domain\Vip.class
com\bwie\common\domain\request\UserRequest.class
com\bwie\common\config\RedisConfig.class
com\bwie\common\domain\Customer.class
com\bwie\common\utils\FastUtil.class
com\bwie\common\constants\RabbitName.class
com\bwie\common\domain\response\JwtResponse.class

View File

@ -1,23 +1,25 @@
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\OssUtil.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\UserRequest.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\result\Result.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\JwtUtils.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\config\RedisConfig.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\AddInfo.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\StringUtils.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\CustomerRequest.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\VipRequest.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\RabbitName.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\Constants.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\JwtConstants.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\Info.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\Merch.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\OssUtil.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\config\RedisConfig.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\MerchRequest.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\Vip.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\RabbitMQQueueConstants.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\VipRequest.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\FastUtil.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\RabbitName.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\request\LoginRequest.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\Customer.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\Constants.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\response\JwtResponse.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\JwtConstants.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\constants\TokenConstants.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\Merch.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\domain\User.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\result\PageResult.java
D:\zhuangao5\safeway\bwie-common\src\main\java\com\bwie\common\utils\TelSmsUtils.java

View File

@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.bwie.common.constants.TokenConstants;
import com.bwie.common.domain.User;
import com.bwie.common.utils.JwtUtils;
import com.bwie.common.utils.StringUtils;
import com.bwie.gateway.config.IgnoreWhiteConfig;
@ -74,17 +75,7 @@ public class AuthFilter implements GlobalFilter, Ordered {
if (null == hasKey || !hasKey) {
return GatewayUtils.errorResponse(exchange, "token过期");
}
redisTemplate.expire(TokenConstants.LOGIN_TOKEN_KEY + userKey, 15, TimeUnit.MINUTES);
// String jsonStr = redisTemplate.opsForValue().get(TokenConstants.LOGIN_TOKEN_KEY + userKey);
// SysUser sysUser = JSONObject.parseObject(jsonStr, SysUser.class);
// Date lastLoginTime = sysUser.getLastLoginTime();
// long between = DateUtil.between(lastLoginTime, new Date(), DateUnit.MINUTE);
// if (between >= 10) {
// redisTemplate.expire(TokenConstants.LOGIN_TOKEN_KEY + userKey, 15, TimeUnit.MINUTES);
// }
// 验证通过放行
redisTemplate.opsForValue().get(TokenConstants.LOGIN_TOKEN_KEY + userKey);
return chain.filter(exchange);
}

View File

@ -1,6 +1,7 @@
package com.bwie.user.controller;
import com.alibaba.fastjson.JSONObject;
import com.bwie.common.domain.Info;
import com.bwie.common.domain.User;
import com.bwie.common.domain.request.UserRequest;
import com.bwie.common.result.PageResult;
@ -94,4 +95,15 @@ public class UserController {
request.getMethod(),JSONObject.toJSONString(result));
return result;
}
@PostMapping("/addInfo")
public Result addInfo(@RequestBody Info info){
log.info("执行操作:添加日志,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(),
request.getMethod(),JSONObject.toJSONString(info));
Result result=Result.success();
userService.addInfo(info);
log.info("执行操作:添加日志,请求URL:{},请求方式:{},请求参数:{}",request.getRequestURI(),
request.getMethod(),JSONObject.toJSONString(result));
return result;
}
}

View File

@ -1,5 +1,6 @@
package com.bwie.user.mapper;
import com.bwie.common.domain.Info;
import com.bwie.common.domain.User;
import com.bwie.common.domain.request.UserRequest;
import org.apache.ibatis.annotations.Mapper;
@ -23,4 +24,6 @@ public interface UserMapper {
void deleteId(Integer userId);
List<User> list2(UserRequest userRequest);
void addInfo(Info info);
}

View File

@ -1,5 +1,6 @@
package com.bwie.user.service;
import com.bwie.common.domain.Info;
import com.bwie.common.domain.User;
import com.bwie.common.domain.request.UserRequest;
import com.bwie.common.result.PageResult;
@ -19,4 +20,6 @@ public interface UserService {
void deleteId(Integer userId);
Result<PageResult<User>> list2(UserRequest userRequest);
void addInfo(Info info);
}

View File

@ -2,6 +2,7 @@ package com.bwie.user.service;
import com.alibaba.fastjson.JSONObject;
import com.bwie.common.constants.TokenConstants;
import com.bwie.common.domain.Info;
import com.bwie.common.domain.User;
import com.bwie.common.domain.request.UserRequest;
import com.bwie.common.result.PageResult;
@ -66,6 +67,11 @@ public class UserServiceimpl implements UserService{
return PageResult.toResult(info.getTotal(),list2);
}
@Override
public void addInfo(Info info) {
userMapper.addInfo(info);
}
public User info() {
String token = request.getHeader(TokenConstants.TOKEN);

View File

@ -30,6 +30,19 @@
now()
)
</insert>
<insert id="addInfo">
insert into t_info(
user_name,
create_time,
is_ok,
promen_info
) values (
#{userName},
#{createTime},
#{isOk},
#{promenInfo}
)
</insert>
<update id="update">
update t_user set
user_name=#{userName},

View File

@ -30,6 +30,19 @@
now()
)
</insert>
<insert id="addInfo">
insert into t_info(
user_name,
create_time,
is_ok,
promen_info
) values (
#{userName},
#{createTime},
#{isOk},
#{promenInfo}
)
</insert>
<update id="update">
update t_user set
user_name=#{userName},