init
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
package com.ruoyi.cai.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.cai.domain.CaiUserCount;
|
||||
import com.ruoyi.cai.service.CaiUserCountService;
|
||||
import com.ruoyi.common.annotation.Log;
|
||||
import com.ruoyi.common.annotation.RepeatSubmit;
|
||||
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.common.core.validate.AddGroup;
|
||||
import com.ruoyi.common.core.validate.EditGroup;
|
||||
import com.ruoyi.common.enums.BusinessType;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* 用户信息数量统计
|
||||
*
|
||||
* @author 77
|
||||
* @date 2023-12-24
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/cai/userCount")
|
||||
public class CaiUserCountController extends BaseController {
|
||||
|
||||
private final CaiUserCountService caiUserCountService;
|
||||
|
||||
/**
|
||||
* 查询用户信息数量统计列表
|
||||
*/
|
||||
@SaCheckPermission("cai:userCount:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<CaiUserCount> list(CaiUserCount bo, PageQuery pageQuery) {
|
||||
Page<CaiUserCount> page = caiUserCountService.page(pageQuery.build(), Wrappers.lambdaQuery(bo));
|
||||
return TableDataInfo.build(page);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取用户信息数量统计详细信息
|
||||
*
|
||||
* @param userId 主键
|
||||
*/
|
||||
@SaCheckPermission("cai:userCount:query")
|
||||
@GetMapping("/{userId}")
|
||||
public R<CaiUserCount> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Integer userId) {
|
||||
return R.ok(caiUserCountService.getById(userId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增用户信息数量统计
|
||||
*/
|
||||
@SaCheckPermission("cai:userCount:add")
|
||||
@Log(title = "用户信息数量统计", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody CaiUserCount bo) {
|
||||
return toAjax(caiUserCountService.save(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户信息数量统计
|
||||
*/
|
||||
@SaCheckPermission("cai:userCount:edit")
|
||||
@Log(title = "用户信息数量统计", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody CaiUserCount bo) {
|
||||
return toAjax(caiUserCountService.updateById(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户信息数量统计
|
||||
*
|
||||
* @param userIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("cai:userCount:remove")
|
||||
@Log(title = "用户信息数量统计", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{userIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Integer[] userIds) {
|
||||
return toAjax(caiUserCountService.removeBatchByIds(Arrays.asList(userIds), true));
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package com.ruoyi.cai.controller.app;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.dto.app.query.StarQuery;
|
||||
import com.ruoyi.cai.dto.app.query.StarRes;
|
||||
import com.ruoyi.cai.dto.app.query.StarOrVisitorRes;
|
||||
import com.ruoyi.cai.dto.app.vo.UserStarOrVisitorList;
|
||||
import com.ruoyi.cai.service.CaiUserFollowService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
@@ -20,14 +20,14 @@ public class CaiUserStartAppController {
|
||||
private CaiUserFollowService userFollowService;
|
||||
|
||||
@PostMapping("/star")
|
||||
public R<Boolean> star(StarRes starRes){
|
||||
boolean bool = userFollowService.star(starRes);
|
||||
public R<Boolean> star(StarOrVisitorRes starOrVisitorRes){
|
||||
boolean bool = userFollowService.star(starOrVisitorRes);
|
||||
return R.ok(bool);
|
||||
}
|
||||
|
||||
@PostMapping("/unstar")
|
||||
public R<Boolean> unStar(StarRes starRes){
|
||||
boolean bool = userFollowService.unStar(starRes);
|
||||
public R<Boolean> unStar(StarOrVisitorRes starOrVisitorRes){
|
||||
boolean bool = userFollowService.unStar(starOrVisitorRes);
|
||||
return R.ok(bool);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.ruoyi.cai.controller.app;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.dto.app.query.StarOrVisitorRes;
|
||||
import com.ruoyi.cai.dto.app.query.VisitorQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.UserStarOrVisitorList;
|
||||
import com.ruoyi.cai.service.CaiUserVisitorService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.page.TableDataInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController("/user/visitor")
|
||||
@Slf4j
|
||||
public class CaiUserVisitorAppController {
|
||||
|
||||
@Autowired
|
||||
private CaiUserVisitorService userVisitorService;
|
||||
|
||||
// 除网络问题不返回异常。避免影响业务
|
||||
@PostMapping("/visitor")
|
||||
public R<Boolean> visitor(StarOrVisitorRes starOrVisitorRes){
|
||||
try {
|
||||
boolean bool = userVisitorService.visitor(starOrVisitorRes);
|
||||
}catch (Exception e){
|
||||
log.error("记录访客失败",e);
|
||||
}
|
||||
return R.ok(true);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
public TableDataInfo<UserStarOrVisitorList> page(VisitorQuery query, PageQuery pageQuery){
|
||||
Page<UserStarOrVisitorList> res = userVisitorService.pageApp(pageQuery,query);
|
||||
return TableDataInfo.build(res);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
package com.ruoyi.cai.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 用户信息数量统计对象 cai_user_count
|
||||
*
|
||||
* @author 77
|
||||
* @date 2023-12-24
|
||||
*/
|
||||
@Data
|
||||
@TableName("cai_user_count")
|
||||
public class CaiUserCount implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
@TableId(value = "user_id")
|
||||
private Integer userId;
|
||||
/**
|
||||
* 粉丝总数
|
||||
*/
|
||||
private Integer fansCount;
|
||||
/**
|
||||
* 关注数
|
||||
*/
|
||||
private Integer followCount;
|
||||
/**
|
||||
* 访客数
|
||||
*/
|
||||
private Integer visitorCount;
|
||||
/**
|
||||
* 相册数量
|
||||
*/
|
||||
private Integer photoCount;
|
||||
/**
|
||||
* 发帖数量
|
||||
*/
|
||||
private Integer dynamicCount;
|
||||
/**
|
||||
* 收到的礼物数量
|
||||
*/
|
||||
private Integer receiveGiftCount;
|
||||
/**
|
||||
* 送礼总数量
|
||||
*/
|
||||
private Integer giveGiftCount;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@@ -27,7 +27,7 @@ public class CaiUserVisitor implements Serializable {
|
||||
/**
|
||||
* 被访用户ID
|
||||
*/
|
||||
private Integer userId;
|
||||
private Long userId;
|
||||
/**
|
||||
* 访客用户ID
|
||||
*/
|
||||
|
||||
@@ -3,6 +3,6 @@ package com.ruoyi.cai.dto.app.query;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class StarRes {
|
||||
public class StarOrVisitorRes {
|
||||
private Long toUserId;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.ruoyi.cai.dto.app.query;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class VisitorQuery {
|
||||
// 1=查询我的足迹 2=查询我的访客
|
||||
private Integer type = 1;
|
||||
|
||||
private Long userId;
|
||||
}
|
||||
@@ -8,4 +8,6 @@ import java.time.LocalDateTime;
|
||||
public class UserStarOrVisitorList {
|
||||
|
||||
private LocalDateTime happenTime;
|
||||
|
||||
private Integer isWatch;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.cai.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.ruoyi.cai.domain.CaiUserCount;
|
||||
|
||||
/**
|
||||
* 用户信息数量统计Mapper接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2023-12-24
|
||||
*/
|
||||
public interface CaiUserCountMapper extends BaseMapper<CaiUserCount> {
|
||||
|
||||
}
|
||||
@@ -1,7 +1,11 @@
|
||||
package com.ruoyi.cai.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.ruoyi.cai.domain.CaiUserVisitor;
|
||||
import com.ruoyi.cai.dto.app.query.VisitorQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.UserStarOrVisitorList;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* 用户来访记录Mapper接口
|
||||
@@ -11,4 +15,5 @@ import com.ruoyi.cai.domain.CaiUserVisitor;
|
||||
*/
|
||||
public interface CaiUserVisitorMapper extends BaseMapper<CaiUserVisitor> {
|
||||
|
||||
Page<UserStarOrVisitorList> pageApp(@Param("build") Page<Object> build, @Param("query") VisitorQuery query);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.CaiUserCount;
|
||||
|
||||
/**
|
||||
* 用户信息数量统计Service接口
|
||||
*
|
||||
* @author 77
|
||||
* @date 2023-12-24
|
||||
*/
|
||||
public interface CaiUserCountService extends IService<CaiUserCount> {
|
||||
|
||||
}
|
||||
@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.CaiUserFollow;
|
||||
import com.ruoyi.cai.dto.app.query.StarQuery;
|
||||
import com.ruoyi.cai.dto.app.query.StarRes;
|
||||
import com.ruoyi.cai.dto.app.query.StarOrVisitorRes;
|
||||
import com.ruoyi.cai.dto.app.vo.UserStarOrVisitorList;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
@@ -20,9 +20,9 @@ public interface CaiUserFollowService extends IService<CaiUserFollow> {
|
||||
|
||||
boolean checkStar(Long userId, Long followUserId);
|
||||
|
||||
boolean star(StarRes starRes);
|
||||
boolean star(StarOrVisitorRes starOrVisitorRes);
|
||||
|
||||
boolean unStar(StarRes starRes);
|
||||
boolean unStar(StarOrVisitorRes starOrVisitorRes);
|
||||
|
||||
Page<UserStarOrVisitorList> pageApp(PageQuery pageQuery, StarQuery query);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package com.ruoyi.cai.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.cai.domain.CaiUserVisitor;
|
||||
import com.ruoyi.cai.dto.app.query.StarOrVisitorRes;
|
||||
import com.ruoyi.cai.dto.app.query.VisitorQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.UserStarOrVisitorList;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
|
||||
/**
|
||||
* 用户来访记录Service接口
|
||||
@@ -11,4 +16,7 @@ import com.ruoyi.cai.domain.CaiUserVisitor;
|
||||
*/
|
||||
public interface CaiUserVisitorService extends IService<CaiUserVisitor> {
|
||||
|
||||
boolean visitor(StarOrVisitorRes starOrVisitorRes);
|
||||
|
||||
Page<UserStarOrVisitorList> pageApp(PageQuery pageQuery, VisitorQuery query);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.CaiUserCount;
|
||||
import com.ruoyi.cai.mapper.CaiUserCountMapper;
|
||||
import com.ruoyi.cai.service.CaiUserCountService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 用户信息数量统计Service业务层处理
|
||||
*
|
||||
* @author 77
|
||||
* @date 2023-12-24
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class CaiUserCountServiceImpl extends ServiceImpl<CaiUserCountMapper,CaiUserCount> implements CaiUserCountService {
|
||||
|
||||
}
|
||||
@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.CaiUserFollow;
|
||||
import com.ruoyi.cai.dto.app.query.StarQuery;
|
||||
import com.ruoyi.cai.dto.app.query.StarRes;
|
||||
import com.ruoyi.cai.dto.app.query.StarOrVisitorRes;
|
||||
import com.ruoyi.cai.dto.app.vo.UserStarOrVisitorList;
|
||||
import com.ruoyi.cai.mapper.CaiUserFollowMapper;
|
||||
import com.ruoyi.cai.service.CaiUserFollowService;
|
||||
@@ -43,24 +43,24 @@ public class CaiUserFollowServiceImpl extends ServiceImpl<CaiUserFollowMapper,Ca
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean star(StarRes starRes) {
|
||||
public boolean star(StarOrVisitorRes starOrVisitorRes) {
|
||||
Long fromUserId = LoginHelper.getUserId();
|
||||
this.remove(Wrappers.lambdaQuery(CaiUserFollow.class)
|
||||
.eq(CaiUserFollow::getUserId,fromUserId)
|
||||
.eq(CaiUserFollow::getFollowUser,starRes.getToUserId()));
|
||||
.eq(CaiUserFollow::getFollowUser, starOrVisitorRes.getToUserId()));
|
||||
CaiUserFollow userFollow = new CaiUserFollow();
|
||||
userFollow.setUserId(fromUserId);
|
||||
userFollow.setFollowUser(starRes.getToUserId());
|
||||
userFollow.setFollowUser(starOrVisitorRes.getToUserId());
|
||||
this.save(userFollow);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean unStar(StarRes starRes) {
|
||||
public boolean unStar(StarOrVisitorRes starOrVisitorRes) {
|
||||
Long fromUserId = LoginHelper.getUserId();
|
||||
this.remove(Wrappers.lambdaQuery(CaiUserFollow.class)
|
||||
.eq(CaiUserFollow::getUserId,fromUserId)
|
||||
.eq(CaiUserFollow::getFollowUser,starRes.getToUserId()));
|
||||
.eq(CaiUserFollow::getFollowUser, starOrVisitorRes.getToUserId()));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,12 +1,23 @@
|
||||
package com.ruoyi.cai.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.cai.domain.CaiUserFollow;
|
||||
import com.ruoyi.cai.domain.CaiUserVisitor;
|
||||
import com.ruoyi.cai.dto.app.query.StarOrVisitorRes;
|
||||
import com.ruoyi.cai.dto.app.query.VisitorQuery;
|
||||
import com.ruoyi.cai.dto.app.vo.UserStarOrVisitorList;
|
||||
import com.ruoyi.cai.mapper.CaiUserVisitorMapper;
|
||||
import com.ruoyi.cai.service.CaiUserVisitorService;
|
||||
import com.ruoyi.common.core.domain.PageQuery;
|
||||
import com.ruoyi.common.helper.LoginHelper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户来访记录Service业务层处理
|
||||
*
|
||||
@@ -16,4 +27,26 @@ import org.springframework.stereotype.Service;
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class CaiUserVisitorServiceImpl extends ServiceImpl<CaiUserVisitorMapper,CaiUserVisitor> implements CaiUserVisitorService {
|
||||
@Override
|
||||
public boolean visitor(StarOrVisitorRes starOrVisitorRes) {
|
||||
Long fromUserId = LoginHelper.getUserId();
|
||||
CaiUserVisitor userVisitor = this.getOne(Wrappers.lambdaQuery(CaiUserVisitor.class)
|
||||
.eq(CaiUserVisitor::getVisitorId, fromUserId)
|
||||
.eq(CaiUserVisitor::getUserId, starOrVisitorRes.getToUserId())
|
||||
.last("limit 1"));
|
||||
if(userVisitor == null){
|
||||
userVisitor = new CaiUserVisitor();
|
||||
userVisitor.setVisitorId(fromUserId);
|
||||
userVisitor.setUserId(starOrVisitorRes.getToUserId());
|
||||
}
|
||||
userVisitor.setCreateTime(LocalDateTime.now());
|
||||
this.saveOrUpdate(userVisitor);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<UserStarOrVisitorList> pageApp(PageQuery pageQuery, VisitorQuery query) {
|
||||
query.setUserId(LoginHelper.getUserId());
|
||||
return baseMapper.pageApp(pageQuery.build(),query);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user