This commit is contained in:
张良(004796)
2024-03-18 18:46:46 +08:00
parent 688ef1d649
commit a75e7b3257
11 changed files with 303 additions and 8 deletions

View File

@@ -0,0 +1,34 @@
package com.ruoyi.xq.controller;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.xq.dto.admin.unread.UnreadData;
import com.ruoyi.xq.manager.UnreadManager;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/cai/unread")
public class UnreadController {
@Autowired
public UnreadManager unreadManager;
@GetMapping("/data")
public R<UnreadData> list() {
UnreadData data = unreadManager.data();
return R.ok(data);
}
@GetMapping("/checkCount")
public R<Integer> count() {
boolean checkCount = unreadManager.checkCount();
return R.ok(checkCount?1:0);
}
}

View File

@@ -0,0 +1,56 @@
package com.ruoyi.xq.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.xq.domain.UserVisitor;
import com.ruoyi.xq.service.UserVisitorService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.NotNull;
/**
* 用户来访记录
*
* @author 77
* @date 2024-03-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/xq/userVisitor")
public class UserVisitorController extends BaseController {
private final UserVisitorService userVisitorService;
/**
* 查询用户来访记录列表
*/
@SaCheckPermission("xq:userVisitor:list")
@GetMapping("/list")
public TableDataInfo<UserVisitor> list(UserVisitor bo, PageQuery pageQuery) {
Page<UserVisitor> page = userVisitorService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
return TableDataInfo.build(page);
}
/**
* 获取用户来访记录详细信息
*
* @param id 主键
*/
@SaCheckPermission("xq:userVisitor:query")
@GetMapping("/{id}")
public R<UserVisitor> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(userVisitorService.getById(id));
}
}

View File

@@ -9,7 +9,7 @@ import com.ruoyi.xq.dto.app.login.LoginUser;
import com.ruoyi.xq.dto.app.login.LoginVo;
import com.ruoyi.xq.dto.app.user.ResetPasswordReq;
import com.ruoyi.xq.dto.common.sms.SmsCodeReq;
import com.ruoyi.xq.manager.CaiLoginManager;
import com.ruoyi.xq.manager.LoginManager;
import com.ruoyi.xq.manager.CurrentUserManager;
import com.ruoyi.xq.service.SmsVerifyService;
import io.swagger.v3.oas.annotations.Operation;
@@ -31,7 +31,7 @@ import java.util.Map;
public class AuthAppController {
@Autowired
private CaiLoginManager caiLoginManager;
private LoginManager loginManager;
@Autowired
private SmsVerifyService smsVerifyService;
@Autowired
@@ -57,9 +57,9 @@ public class AuthAppController {
LoginVo vo = new LoginVo();
String token;
if(loginBody.getLoginType() == 2){
token = caiLoginManager.login(loginBody.getUsername(), loginBody.getPassword());
token = loginManager.login(loginBody.getUsername(), loginBody.getPassword());
}else if(loginBody.getLoginType() == 1){
token = caiLoginManager.loginSms(loginBody.getUsername(), loginBody.getCode(), loginBody.getInviteCode());
token = loginManager.loginSms(loginBody.getUsername(), loginBody.getCode(), loginBody.getInviteCode());
}else{
return R.fail(600,"登陆失败,参数异常");
}
@@ -72,7 +72,7 @@ public class AuthAppController {
@Operation(summary = "登出")
@Log(title = "登出", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> loginOut(){
caiLoginManager.logout();
loginManager.logout();
return R.ok();
}
@@ -80,7 +80,7 @@ public class AuthAppController {
@Operation(summary = "重置密码")
@Log(title = "重置密码", businessType = BusinessType.OTHER, isSaveDb = false)
public R<Void> resetPassword(@RequestBody ResetPasswordReq code){
caiLoginManager.resetPassword(code.getMobile(),code.getCode(),code.getPassword());
loginManager.resetPassword(code.getMobile(),code.getCode(),code.getPassword());
return R.ok();
}

View File

@@ -0,0 +1,51 @@
package com.ruoyi.xq.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* 用户来访记录对象 xq_user_visitor
*
* @author 77
* @date 2024-03-18
*/
@Data
@TableName("xq_user_visitor")
public class UserVisitor implements Serializable {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "id")
private Long id;
/**
* 用户ID
*/
private Long userId;
/**
* 用户编号
*/
private String usercode;
/**
* 浏览的用户ID
*/
private Long tarId;
/**
* 浏览的用户编号
*/
private String tarUsercode;
/**
* 访问的次数
*/
private Integer visitorNum;
private LocalDateTime createTime;
private LocalDateTime updateTime;
}

View File

@@ -0,0 +1,23 @@
package com.ruoyi.xq.dto.admin.unread;
import lombok.Data;
@Data
public class UnreadData {
/**
* 用户提现审核
*/
private Long userWithdrawCount;
/**
* 用户认证审核
*/
private Long userAuthCount;
/**
* 动态审核
*/
private Long dynamicCount;
/**
* 用户信息审核
*/
private Long userInfoCount;
}

View File

@@ -40,7 +40,7 @@ import java.util.Collections;
@Component
@Slf4j
public class CaiLoginManager {
public class LoginManager {
@Autowired
private UserService userService;
@@ -115,7 +115,7 @@ public class CaiLoginManager {
}
lock.lock();
try {
CaiLoginManager bean = SpringUtil.getBean(CaiLoginManager.class);
LoginManager bean = SpringUtil.getBean(LoginManager.class);
user = bean.registerUser(mobile,inviteCode);
}finally {
lock.unlock();

View File

@@ -0,0 +1,66 @@
package com.ruoyi.xq.manager;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.xq.domain.Dynamic;
import com.ruoyi.xq.domain.UserAuthAudit;
import com.ruoyi.xq.domain.UserInfoAudit;
import com.ruoyi.xq.domain.UserWithdraw;
import com.ruoyi.xq.dto.admin.unread.UnreadData;
import com.ruoyi.xq.enums.common.AuditEnum;
import com.ruoyi.xq.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class UnreadManager {
@Autowired
private UserWithdrawService userWithdrawService;
@Autowired
private UserAuthAuditService userAuthAuditService;
@Autowired
private DynamicService dynamicService;
@Autowired
private UserInfoAuditService userInfoAuditService;
public UnreadData data() {
UnreadData unreadData = new UnreadData();
long userWithdraw = userWithdrawService.count(Wrappers.lambdaQuery(UserWithdraw.class).eq(UserWithdraw::getAuditStatus, AuditEnum.AUDITING.getCode()));
unreadData.setUserWithdrawCount(userWithdraw);
long userAuth = userAuthAuditService.count(Wrappers.lambdaQuery(UserAuthAudit.class).eq(UserAuthAudit::getAuditStatus, AuditEnum.AUDITING.getCode()));
unreadData.setUserAuthCount(userAuth);
long dynamic = dynamicService.count(Wrappers.lambdaQuery(Dynamic.class).eq(Dynamic::getAuditStatus, AuditEnum.AUDITING.getCode()));
unreadData.setDynamicCount(dynamic);
long userInfo = userInfoAuditService.count(Wrappers.lambdaQuery(UserInfoAudit.class).eq(UserInfoAudit::getAuditStatus, AuditEnum.AUDITING.getCode()));
unreadData.setUserInfoCount(userInfo);
return unreadData;
}
public boolean checkCount() {
boolean userWithdraw = userWithdrawService.exists(Wrappers.lambdaQuery(UserWithdraw.class).eq(UserWithdraw::getAuditStatus, AuditEnum.AUDITING.getCode()));
if(userWithdraw){
return true;
}
boolean userAuth = userAuthAuditService.exists(Wrappers.lambdaQuery(UserAuthAudit.class).eq(UserAuthAudit::getAuditStatus, AuditEnum.AUDITING.getCode()));
if(userAuth){
return true;
}
boolean dynamic = dynamicService.exists(Wrappers.lambdaQuery(Dynamic.class).eq(Dynamic::getAuditStatus, AuditEnum.AUDITING.getCode()));
if(dynamic){
return true;
}
boolean userInfo = userInfoAuditService.exists(Wrappers.lambdaQuery(UserInfoAudit.class).eq(UserInfoAudit::getAuditStatus, AuditEnum.AUDITING.getCode()));
if(userInfo){
return true;
}
return false;
}
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.xq.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.xq.domain.UserVisitor;
/**
* 用户来访记录Mapper接口
*
* @author 77
* @date 2024-03-18
*/
public interface UserVisitorMapper extends BaseMapper<UserVisitor> {
}

View File

@@ -0,0 +1,14 @@
package com.ruoyi.xq.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.xq.domain.UserVisitor;
/**
* 用户来访记录Service接口
*
* @author 77
* @date 2024-03-18
*/
public interface UserVisitorService extends IService<UserVisitor> {
}

View File

@@ -0,0 +1,18 @@
package com.ruoyi.xq.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.xq.domain.UserVisitor;
import com.ruoyi.xq.mapper.UserVisitorMapper;
import com.ruoyi.xq.service.UserVisitorService;
import org.springframework.stereotype.Service;
/**
* 用户来访记录Service业务层处理
*
* @author 77
* @date 2024-03-18
*/
@Service
public class UserVisitorServiceImpl extends ServiceImpl<UserVisitorMapper,UserVisitor> implements UserVisitorService {
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.xq.mapper.UserVisitorMapper">
<resultMap type="com.ruoyi.xq.domain.UserVisitor" id="UserVisitorResult">
<result property="id" column="id"/>
<result property="userId" column="user_id"/>
<result property="usercode" column="usercode"/>
<result property="tarId" column="tar_id"/>
<result property="tarUsercode" column="tar_usercode"/>
<result property="visitorNum" column="visitor_num"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>