临时提交
This commit is contained in:
parent
7fbf87ff3f
commit
1ff3807725
|
@ -119,10 +119,11 @@ public class LoginUser implements UserDetails
|
||||||
this.permissions = permissions;
|
this.permissions = permissions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LoginUser(Long userId, SmUser smUser) {
|
public LoginUser(Long userId, SmUser smUser, Set<String> permissions) {
|
||||||
this.loginType = LoginType.FRONT;
|
this.loginType = LoginType.FRONT;
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
this.smUser = smUser;
|
this.smUser = smUser;
|
||||||
|
this.permissions = permissions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getUserId()
|
public Long getUserId()
|
||||||
|
|
|
@ -114,7 +114,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
|
||||||
// 过滤请求
|
// 过滤请求
|
||||||
.authorizeRequests()
|
.authorizeRequests()
|
||||||
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
|
// 对于登录login 注册register 验证码captchaImage 允许匿名访问
|
||||||
.antMatchers("/login", "/register","/app/**", "/captchaImage").permitAll()
|
.antMatchers("/login", "/register","/app/**", "/captchaImage", "/userLogin").permitAll()
|
||||||
// 静态资源,可匿名访问
|
// 静态资源,可匿名访问
|
||||||
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
|
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
|
||||||
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
|
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
|
||||||
|
|
|
@ -11,6 +11,7 @@ import com.ruoyi.common.constant.CacheConstants;
|
||||||
import com.ruoyi.common.constant.Constants;
|
import com.ruoyi.common.constant.Constants;
|
||||||
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.core.redis.RedisCache;
|
||||||
import com.ruoyi.framework.security.domain.AccessLoginUser;
|
import com.ruoyi.framework.security.domain.AccessLoginUser;
|
||||||
|
import com.ruoyi.framework.web.service.SysPermissionService;
|
||||||
import com.ruoyi.ss.access.domain.AccessVO;
|
import com.ruoyi.ss.access.domain.AccessVO;
|
||||||
import com.ruoyi.ss.access.service.AccessService;
|
import com.ruoyi.ss.access.service.AccessService;
|
||||||
import com.ruoyi.ss.user.domain.SmUserVo;
|
import com.ruoyi.ss.user.domain.SmUserVo;
|
||||||
|
@ -42,9 +43,13 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ISmUserService userService;
|
private ISmUserService userService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private SysPermissionService permissionService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
||||||
throws ServletException, IOException
|
throws ServletException, IOException
|
||||||
|
@ -98,7 +103,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
LoginUser loginUser = new LoginUser(user.getUserId(), user);
|
LoginUser loginUser = new LoginUser(user.getUserId(), user, permissionService.getMenuPermission(user));
|
||||||
accessLoginUser.setLoginUser(loginUser);
|
accessLoginUser.setLoginUser(loginUser);
|
||||||
|
|
||||||
// 放入缓存中
|
// 放入缓存中
|
||||||
|
|
|
@ -360,4 +360,11 @@ public class SysLoginService
|
||||||
WxMaPhoneNumberInfo wxMaPhoneNumberInfo = JSONObject.parseObject(phoneInfo, WxMaPhoneNumberInfo.class);
|
WxMaPhoneNumberInfo wxMaPhoneNumberInfo = JSONObject.parseObject(phoneInfo, WxMaPhoneNumberInfo.class);
|
||||||
return wxMaPhoneNumberInfo.getPhoneNumber();
|
return wxMaPhoneNumberInfo.getPhoneNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String userLogin(String username, String password, String code, String uuid) {
|
||||||
|
// 验证码校验
|
||||||
|
validateCaptcha(username, code, uuid);
|
||||||
|
// 登录
|
||||||
|
return this.appLogin(username, password);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@ package com.ruoyi.framework.web.service;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.SmUser;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
@ -46,6 +48,17 @@ public class SysPermissionService
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取角色数据权限
|
||||||
|
*
|
||||||
|
* @param user 用户信息
|
||||||
|
* @return 角色权限信息
|
||||||
|
*/
|
||||||
|
public Set<String> getRolePermission(SmUser user) {
|
||||||
|
return new HashSet<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取菜单数据权限
|
* 获取菜单数据权限
|
||||||
*
|
*
|
||||||
|
@ -80,4 +93,14 @@ public class SysPermissionService
|
||||||
}
|
}
|
||||||
return perms;
|
return perms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<String> getMenuPermission(SmUser user) {
|
||||||
|
Set<String> perms = new HashSet<String>();
|
||||||
|
// 若是商户,则有商户后台权限
|
||||||
|
if (user.getIsMch() != null && user.getIsMch()) {
|
||||||
|
perms.add("mch:*:*");
|
||||||
|
}
|
||||||
|
return perms;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,6 +127,6 @@ public class UserDetailsServiceImpl implements UserDetailsService
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserDetails createLoginUser(SmUser user) {
|
public UserDetails createLoginUser(SmUser user) {
|
||||||
return new LoginUser(user.getUserId(), user);
|
return new LoginUser(user.getUserId(), user, permissionService.getMenuPermission(user));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -330,6 +330,12 @@ public class TransactionBillServiceImpl implements TransactionBillService {
|
||||||
ServiceUtil.assertion(suit == null, "套餐不存在");
|
ServiceUtil.assertion(suit == null, "套餐不存在");
|
||||||
order.setSuitName(suit.getName());
|
order.setSuitName(suit.getName());
|
||||||
|
|
||||||
|
// 用户信息
|
||||||
|
SmUserVo user = userService.selectSmUserByUserId(data.getUserId());
|
||||||
|
ServiceUtil.assertion(user == null, "用户不存在");
|
||||||
|
ServiceUtil.assertion(user.getWxOpenId() == null, "用户微信openId为空");
|
||||||
|
order.setAccountNo(user.getWxOpenId());
|
||||||
|
|
||||||
// 支付过期时间
|
// 支付过期时间
|
||||||
long expireTime = TimeUnit.MILLISECONDS.convert(Constants.BILL_UNPAID_TIMEOUT, Constants.BILL_UNPAID_TIMEUNIT) + System.currentTimeMillis();
|
long expireTime = TimeUnit.MILLISECONDS.convert(Constants.BILL_UNPAID_TIMEOUT, Constants.BILL_UNPAID_TIMEUNIT) + System.currentTimeMillis();
|
||||||
order.setExpireTime(new Date(expireTime));
|
order.setExpireTime(new Date(expireTime));
|
||||||
|
|
|
@ -108,10 +108,6 @@ public class WxPayService implements IWxPayService {
|
||||||
ServiceUtil.assertion(!TransactionBillStatus.UNPAID.getStatus().equals(bill.getStatus()), "只能支付未支付的订单");
|
ServiceUtil.assertion(!TransactionBillStatus.UNPAID.getStatus().equals(bill.getStatus()), "只能支付未支付的订单");
|
||||||
ServiceUtil.assertion(!TransactionBillType.RECHARGE.getType().equals(bill.getType()), "只能支付充值订单");
|
ServiceUtil.assertion(!TransactionBillType.RECHARGE.getType().equals(bill.getType()), "只能支付充值订单");
|
||||||
|
|
||||||
SmUserVo user = smUserService.selectSmUserByUserId(bill.getUserId());
|
|
||||||
ServiceUtil.assertion(user == null, "用户不存在");
|
|
||||||
ServiceUtil.assertion(user.getWxOpenId() == null, "用户微信openId为空");
|
|
||||||
|
|
||||||
// 获取JSAPI所需参数
|
// 获取JSAPI所需参数
|
||||||
// PrepayRequest request = new PrepayRequest();
|
// PrepayRequest request = new PrepayRequest();
|
||||||
// request.setAmount(getAmount(bill.getMoney()));
|
// request.setAmount(getAmount(bill.getMoney()));
|
||||||
|
|
|
@ -3,6 +3,9 @@ package com.ruoyi.web.controller.system;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.ruoyi.common.core.domain.entity.SmUser;
|
||||||
|
import com.ruoyi.common.core.domain.model.LoginUser;
|
||||||
|
import com.ruoyi.common.enums.LoginType;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
@ -19,6 +22,8 @@ import com.ruoyi.framework.web.service.SysLoginService;
|
||||||
import com.ruoyi.framework.web.service.SysPermissionService;
|
import com.ruoyi.framework.web.service.SysPermissionService;
|
||||||
import com.ruoyi.system.service.ISysMenuService;
|
import com.ruoyi.system.service.ISysMenuService;
|
||||||
|
|
||||||
|
import static oshi.util.UserGroupInfo.getUser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
*
|
*
|
||||||
|
@ -53,6 +58,23 @@ public class SysLoginController
|
||||||
return ajax;
|
return ajax;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 普通用户登录方法
|
||||||
|
*
|
||||||
|
* @param loginBody 登录信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/userLogin")
|
||||||
|
public AjaxResult userLogin(@RequestBody LoginBody loginBody)
|
||||||
|
{
|
||||||
|
AjaxResult ajax = AjaxResult.success();
|
||||||
|
// 生成令牌
|
||||||
|
String token = loginService.userLogin(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
|
||||||
|
loginBody.getUuid());
|
||||||
|
ajax.put(Constants.TOKEN, token);
|
||||||
|
return ajax;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户信息
|
* 获取用户信息
|
||||||
*
|
*
|
||||||
|
@ -61,15 +83,30 @@ public class SysLoginController
|
||||||
@GetMapping("getInfo")
|
@GetMapping("getInfo")
|
||||||
public AjaxResult getInfo()
|
public AjaxResult getInfo()
|
||||||
{
|
{
|
||||||
SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
||||||
// 角色集合
|
|
||||||
Set<String> roles = permissionService.getRolePermission(user);
|
|
||||||
// 权限集合
|
|
||||||
Set<String> permissions = permissionService.getMenuPermission(user);
|
|
||||||
AjaxResult ajax = AjaxResult.success();
|
AjaxResult ajax = AjaxResult.success();
|
||||||
ajax.put("user", user);
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
|
|
||||||
|
// 角色集合
|
||||||
|
Set<String> roles = null;
|
||||||
|
// 权限集合
|
||||||
|
Set<String> permissions = null;
|
||||||
|
// 管理员
|
||||||
|
if (LoginType.ADMIN.equals(loginUser.getLoginType())) {
|
||||||
|
SysUser user = loginUser.getUser();
|
||||||
|
roles = permissionService.getRolePermission(user);
|
||||||
|
permissions = permissionService.getMenuPermission(user);
|
||||||
|
ajax.put("user", user);
|
||||||
|
}
|
||||||
|
// 普通用户
|
||||||
|
else {
|
||||||
|
SmUser user = loginUser.getSmUser();
|
||||||
|
roles = permissionService.getRolePermission(user);
|
||||||
|
permissions = permissionService.getMenuPermission(user);
|
||||||
|
ajax.put("user", user);
|
||||||
|
}
|
||||||
ajax.put("roles", roles);
|
ajax.put("roles", roles);
|
||||||
ajax.put("permissions", permissions);
|
ajax.put("permissions", permissions);
|
||||||
|
ajax.put("userType", loginUser.getLoginType().getType());
|
||||||
return ajax;
|
return ajax;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user