后台首页面板数据接口&代码优化
This commit is contained in:
parent
1a0645a72d
commit
e5f4a6ad14
18
.gitignore
vendored
18
.gitignore
vendored
@ -23,3 +23,21 @@ target
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
|
||||
.DS_Store
|
||||
node_modules/
|
||||
dist/
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
/test/unit/coverage/
|
||||
/test/e2e/reports/
|
||||
selenium-debug.log
|
||||
|
||||
# Editor directories and files
|
||||
.idea
|
||||
.vscode
|
||||
*.suo
|
||||
*.ntvs*
|
||||
*.njsproj
|
||||
*.sln
|
@ -8,34 +8,33 @@ import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 主页统计数据对象
|
||||
* 面板统计数据对象
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@ApiModel(value="HomeRateResponse对象", description="主页统计数据对象")
|
||||
@ApiModel(value="HomeRateResponse对象", description="面板统计数据对象")
|
||||
public class HomeRateResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID=1L;
|
||||
|
||||
@ApiModelProperty(value = "今日销售额")
|
||||
private Object sales;
|
||||
@ApiModelProperty(value = "总用户数")
|
||||
private Object totalUser;
|
||||
|
||||
@ApiModelProperty(value = "昨日销售额")
|
||||
private Object yesterdaySales;
|
||||
@ApiModelProperty(value = "总帖子数")
|
||||
private Object totalPost;
|
||||
|
||||
@ApiModelProperty(value = "今日访问量")
|
||||
private Object pageviews;
|
||||
|
||||
@ApiModelProperty(value = "昨日访问量")
|
||||
private Object yesterdayPageviews;
|
||||
|
||||
@ApiModelProperty(value = "今日订单量")
|
||||
private Object orderNum;
|
||||
|
||||
@ApiModelProperty(value = "昨日订单量")
|
||||
private Object yesterdayOrderNum;
|
||||
@ApiModelProperty(value = "总待审核帖子数")
|
||||
private Object totalPostOfReview;
|
||||
|
||||
@ApiModelProperty(value = "今日新增用户")
|
||||
private Object newUserNum;
|
||||
|
@ -1,12 +1,15 @@
|
||||
package io.linfeng.modules.admin.controller;
|
||||
|
||||
import io.linfeng.common.utils.R;
|
||||
import io.linfeng.modules.admin.service.AppUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 后台前端首页数据统计
|
||||
*
|
||||
* @author linfeng
|
||||
* @date 2022/4/17 16:49
|
||||
*/
|
||||
@ -14,9 +17,13 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
@RequestMapping("admin/statistics")
|
||||
public class StatisticController {
|
||||
|
||||
@GetMapping("/home")
|
||||
public R index(){
|
||||
@Autowired
|
||||
private AppUserService userService;
|
||||
|
||||
return R.ok();
|
||||
|
||||
@GetMapping("/home")
|
||||
public R index() {
|
||||
|
||||
return R.ok().put("result", userService.indexDate());
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package io.linfeng.modules.admin.service;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import io.linfeng.common.response.AppUserInfoResponse;
|
||||
import io.linfeng.common.response.AppUserResponse;
|
||||
import io.linfeng.common.response.HomeRateResponse;
|
||||
import io.linfeng.common.utils.AppPageUtils;
|
||||
import io.linfeng.common.utils.PageUtils;
|
||||
import io.linfeng.modules.admin.entity.AppUserEntity;
|
||||
@ -27,5 +28,11 @@ public interface AppUserService extends IService<AppUserEntity> {
|
||||
void ban(Integer id);
|
||||
|
||||
void openBan(Integer id);
|
||||
|
||||
/**
|
||||
* 首页数据
|
||||
* @return HomeRateResponse
|
||||
*/
|
||||
HomeRateResponse indexDate();
|
||||
}
|
||||
|
||||
|
@ -1,9 +1,12 @@
|
||||
package io.linfeng.modules.admin.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import io.linfeng.common.exception.LinfengException;
|
||||
import io.linfeng.common.response.HomeRateResponse;
|
||||
import io.linfeng.common.utils.*;
|
||||
import io.linfeng.modules.admin.entity.PostEntity;
|
||||
import io.linfeng.modules.admin.service.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.util.*;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
@ -17,11 +20,20 @@ import io.linfeng.modules.admin.entity.AppUserEntity;
|
||||
public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> implements AppUserService {
|
||||
|
||||
|
||||
@Autowired
|
||||
private PostService postService;
|
||||
|
||||
@Autowired
|
||||
private AppUserDao userDao;
|
||||
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
QueryWrapper<AppUserEntity> queryWrapper=new QueryWrapper<>();
|
||||
queryWrapper.lambda().orderByDesc(AppUserEntity::getUid);
|
||||
IPage<AppUserEntity> page = this.page(
|
||||
new Query<AppUserEntity>().getPage(params),
|
||||
new QueryWrapper<>()
|
||||
queryWrapper
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
@ -34,10 +46,10 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
|
||||
if(status==1){
|
||||
throw new LinfengException("该用户已被禁用");
|
||||
}
|
||||
UpdateWrapper<AppUserEntity> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set("status",1);
|
||||
updateWrapper.eq("uid",id);
|
||||
update(updateWrapper);
|
||||
this.lambdaUpdate()
|
||||
.set(AppUserEntity::getStatus,1)
|
||||
.eq(AppUserEntity::getUid,id)
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -46,11 +58,36 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserDao, AppUserEntity> i
|
||||
if(status==0){
|
||||
throw new LinfengException("该用户已解除禁用");
|
||||
}
|
||||
UpdateWrapper<AppUserEntity> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set("status",0);
|
||||
updateWrapper.eq("uid",id);
|
||||
update(updateWrapper);
|
||||
this.lambdaUpdate()
|
||||
.set(AppUserEntity::getStatus,0)
|
||||
.eq(AppUserEntity::getUid,id)
|
||||
.update();
|
||||
}
|
||||
|
||||
@Override
|
||||
public HomeRateResponse indexDate() {
|
||||
String today = cn.hutool.core.date.DateUtil.date().toString("yyyy-MM-dd");
|
||||
String yesterday = cn.hutool.core.date.DateUtil.yesterday().toString("yyyy-MM-dd");
|
||||
// Integer count = postService.lambdaQuery().eq(PostEntity::getStatus, Constant.POST_REVIEWED).count();
|
||||
Integer postCount = postService.lambdaQuery().select(PostEntity::getId).count();
|
||||
HomeRateResponse response = new HomeRateResponse();
|
||||
response.setTotalPostOfReview(0);
|
||||
response.setTotalPost(postCount);
|
||||
response.setNewUserNum(this.getRegisterNumByDate(today));
|
||||
response.setYesterdayNewUserNum(this.getRegisterNumByDate(yesterday));
|
||||
response.setTotalUser(this.getTotalNum());
|
||||
return response;
|
||||
}
|
||||
|
||||
private Integer getTotalNum() {
|
||||
return this.lambdaQuery().select(AppUserEntity::getUid).count();
|
||||
}
|
||||
|
||||
private Integer getRegisterNumByDate(String date) {
|
||||
QueryWrapper<AppUserEntity> wrapper = Wrappers.query();
|
||||
wrapper.select("uid");
|
||||
wrapper.apply("date_format(create_time, '%Y-%m-%d') = {0}", date);
|
||||
return userDao.selectCount(wrapper);
|
||||
}
|
||||
|
||||
}
|
@ -34,19 +34,16 @@ public class CommentServiceImpl extends ServiceImpl<CommentDao, CommentEntity> i
|
||||
|
||||
@Override
|
||||
public Integer getCountByTopicId(Integer id) {
|
||||
Integer count = baseMapper.selectCount(new LambdaQueryWrapper<CommentEntity>()
|
||||
return baseMapper.selectCount(new LambdaQueryWrapper<CommentEntity>()
|
||||
.eq(CommentEntity::getStatus,1)
|
||||
.eq(CommentEntity::getPostId, id));
|
||||
|
||||
return count;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CommentEntity> getByPid(Long pid) {
|
||||
List<CommentEntity> commentList = baseMapper.selectList(
|
||||
return baseMapper.selectList(
|
||||
new LambdaQueryWrapper<CommentEntity>()
|
||||
.eq(CommentEntity::getPid, pid));
|
||||
return commentList;
|
||||
}
|
||||
|
||||
|
||||
|
@ -86,14 +86,12 @@ public class MessageServiceImpl extends ServiceImpl<MessageDao, MessageEntity> i
|
||||
|
||||
@Override
|
||||
public Boolean status(Integer type, Integer uid) {
|
||||
List<Integer> list = new ArrayList<>();
|
||||
list.add(Constant.STAR);
|
||||
list.add(Constant.COLLECT);
|
||||
|
||||
UpdateWrapper<MessageEntity> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.set("status",1);
|
||||
updateWrapper.eq("to_uid",uid);
|
||||
if(type==1){
|
||||
updateWrapper.in("type",list);
|
||||
updateWrapper.and(wrapper->wrapper.eq("type",Constant.STAR).or().eq("type",Constant.COLLECT));
|
||||
}else if(type==2){
|
||||
updateWrapper.eq("type",Constant.WATCH);
|
||||
}else if(type==3){
|
||||
|
@ -85,8 +85,7 @@ public class PostServiceImpl extends ServiceImpl<PostDao, PostEntity> implements
|
||||
public Integer findTopicPostCount(Integer topicId) {
|
||||
LambdaQueryWrapper<PostEntity> lambdaQueryWrapper = Wrappers.lambdaQuery();
|
||||
lambdaQueryWrapper.eq(PostEntity::getTopicId,topicId);
|
||||
Integer num = baseMapper.selectCount(lambdaQueryWrapper);
|
||||
return num;
|
||||
return baseMapper.selectCount(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -96,26 +95,29 @@ public class PostServiceImpl extends ServiceImpl<PostDao, PostEntity> implements
|
||||
*/
|
||||
@Override
|
||||
public List<String> findThreeMedia(Integer id) {
|
||||
QueryWrapper<PostEntity> queryWrapper=new QueryWrapper();
|
||||
QueryWrapper<PostEntity> queryWrapper=new QueryWrapper<>();
|
||||
queryWrapper.eq("topic_id",id);
|
||||
queryWrapper.eq("type",1);
|
||||
queryWrapper.orderByDesc("read_count");
|
||||
queryWrapper.last("limit 3");
|
||||
queryWrapper.last("limit 10");
|
||||
List<PostEntity> postEntityList = baseMapper.selectList(queryWrapper);
|
||||
List<String> imageList=new ArrayList<>();
|
||||
postEntityList.forEach(list->{
|
||||
if(!list.getMedia().equals("")){
|
||||
List<String> jsonToList = JsonUtils.JsonToList(list.getMedia());
|
||||
for (int i = 0; i < postEntityList.size() ; i++) {
|
||||
if(!postEntityList.get(i).getMedia().equals("")){
|
||||
List<String> jsonToList = JsonUtils.JsonToList(postEntityList.get(i).getMedia());
|
||||
if(jsonToList.size()>0){
|
||||
if(imageList.size()>2){
|
||||
break;
|
||||
}else{
|
||||
imageList.add(jsonToList.get(0));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return imageList;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteByAdmin(List<Integer> ids) {
|
||||
|
@ -17,14 +17,12 @@ import io.linfeng.modules.admin.service.SystemService;
|
||||
@Service("systemService")
|
||||
public class SystemServiceImpl extends ServiceImpl<SystemDao, SystemEntity> implements SystemService {
|
||||
|
||||
@Autowired
|
||||
private AppUserDao appUserDao;
|
||||
|
||||
@Override
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
IPage<SystemEntity> page = this.page(
|
||||
new Query<SystemEntity>().getPage(params),
|
||||
new QueryWrapper<SystemEntity>()
|
||||
new QueryWrapper<>()
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
|
@ -35,7 +35,7 @@ public class TopicServiceImpl extends ServiceImpl<TopicDao, TopicEntity> impleme
|
||||
public AppPageUtils queryByPage(Map<String, Object> params) {
|
||||
Integer classId = Integer.valueOf((String) params.get(Constant.CLASSID));
|
||||
QueryWrapper<TopicEntity> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("cate_id", classId);
|
||||
queryWrapper.lambda().eq(TopicEntity::getCateId, classId);
|
||||
|
||||
IPage<TopicEntity> page = this.page(
|
||||
new Query<TopicEntity>().getPage(params),
|
||||
|
@ -27,7 +27,7 @@ public class PostCollectionServiceImpl extends ServiceImpl<PostCollectionDao, Po
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
IPage<PostCollectionEntity> page = this.page(
|
||||
new Query<PostCollectionEntity>().getPage(params),
|
||||
new QueryWrapper<PostCollectionEntity>()
|
||||
new QueryWrapper<>()
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
@ -35,10 +35,9 @@ public class PostCollectionServiceImpl extends ServiceImpl<PostCollectionDao, Po
|
||||
|
||||
@Override
|
||||
public Integer collectCount(Integer postId) {
|
||||
Integer count = baseMapper.selectCount(new LambdaQueryWrapper<PostCollectionEntity>()
|
||||
.eq(PostCollectionEntity::getPostId, postId));
|
||||
|
||||
return count;
|
||||
return baseMapper.selectCount(new LambdaQueryWrapper<PostCollectionEntity>()
|
||||
.eq(PostCollectionEntity::getPostId, postId));
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -47,10 +46,7 @@ public class PostCollectionServiceImpl extends ServiceImpl<PostCollectionDao, Po
|
||||
new LambdaQueryWrapper<PostCollectionEntity>()
|
||||
.eq(PostCollectionEntity::getPostId, postId)
|
||||
.eq(PostCollectionEntity::getUid, uid));
|
||||
if(entity!=null){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return entity != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -66,8 +62,7 @@ public class PostCollectionServiceImpl extends ServiceImpl<PostCollectionDao, Po
|
||||
lambdaQueryWrapper.select(PostCollectionEntity::getPostId);
|
||||
lambdaQueryWrapper.in(PostCollectionEntity::getUid, uid);
|
||||
List<PostCollectionEntity> postCollectionEntities = baseMapper.selectList(lambdaQueryWrapper);
|
||||
List<Integer> collect = postCollectionEntities.stream().map(PostCollectionEntity::getPostId).collect(Collectors.toList());
|
||||
return collect;
|
||||
return postCollectionEntities.stream().map(PostCollectionEntity::getPostId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
@ -33,10 +33,7 @@ public class PostFabulousServiceImpl extends ServiceImpl<PostFabulousDao, PostFa
|
||||
new LambdaQueryWrapper<PostFabulousEntity>()
|
||||
.eq(PostFabulousEntity::getPostId, id)
|
||||
.eq(PostFabulousEntity::getUid, uid));
|
||||
if(entity!=null){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return entity != null;
|
||||
}
|
||||
|
||||
}
|
@ -22,7 +22,7 @@ public class TopicAdminServiceImpl extends ServiceImpl<TopicAdminDao, TopicAdmin
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
IPage<TopicAdminEntity> page = this.page(
|
||||
new Query<TopicAdminEntity>().getPage(params),
|
||||
new QueryWrapper<TopicAdminEntity>()
|
||||
new QueryWrapper<>()
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
|
@ -25,7 +25,7 @@ public class TopicTopServiceImpl extends ServiceImpl<TopicTopDao, TopicTopEntity
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
IPage<TopicTopEntity> page = this.page(
|
||||
new Query<TopicTopEntity>().getPage(params),
|
||||
new QueryWrapper<TopicTopEntity>()
|
||||
new QueryWrapper<>()
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
@ -35,8 +35,7 @@ public class TopicTopServiceImpl extends ServiceImpl<TopicTopDao, TopicTopEntity
|
||||
public List<TopicTopEntity> findByTopicId(Integer topicId) {
|
||||
LambdaQueryWrapper<TopicTopEntity> lambdaQueryWrapper = Wrappers.lambdaQuery();
|
||||
lambdaQueryWrapper.eq(TopicTopEntity::getTopicId, topicId);
|
||||
List<TopicTopEntity> list = baseMapper.selectList(lambdaQueryWrapper);
|
||||
return list;
|
||||
return baseMapper.selectList(lambdaQueryWrapper);
|
||||
}
|
||||
|
||||
}
|
@ -21,7 +21,7 @@ public class UserTopicServiceImpl extends ServiceImpl<UserTopicDao, UserTopicEnt
|
||||
public PageUtils queryPage(Map<String, Object> params) {
|
||||
IPage<UserTopicEntity> page = this.page(
|
||||
new Query<UserTopicEntity>().getPage(params),
|
||||
new QueryWrapper<UserTopicEntity>()
|
||||
new QueryWrapper<>()
|
||||
);
|
||||
|
||||
return new PageUtils(page);
|
||||
|
@ -1,5 +1,6 @@
|
||||
====================================================================================================================
|
||||
===================================================================================================================================
|
||||
|
||||
欢迎使用林风科技_社交圈子app后端api
|
||||
欢迎使用林风社交论坛项目后端api
|
||||
https://www.linfeng.tech
|
||||
|
||||
====================================================================================================================
|
||||
===================================================================================================================================
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "linfengCommunity-vue",
|
||||
"name": "linfeng-community-vue",
|
||||
"version": "1.2.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
|
@ -2,12 +2,12 @@
|
||||
<div class="mod-home">
|
||||
<h2>数据概览</h2>
|
||||
|
||||
<h4>
|
||||
<!-- <h4>
|
||||
林风社交圈子是基于Springboot MybatisPlus Shiro Jwt Vue Uniapp Redis
|
||||
MySQL构建的社交app平台
|
||||
</h4>
|
||||
</h4> -->
|
||||
<!--头部-->
|
||||
<!-- <base-info ref="baseInfo"/> -->
|
||||
<base-info ref="baseInfo"/>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
@ -163,7 +163,7 @@
|
||||
<el-button type="text" size="small" @click="addOrUpdateHandle(scope.row.uid)">修改</el-button>
|
||||
<el-button v-if="scope.row.status == 0" type="text" size="small" @click="banHandle(scope.row.uid)">禁用</el-button>
|
||||
<el-button v-if="scope.row.status == 1" type="text" size="small" @click="openBanHandle(scope.row.uid)">解禁</el-button>
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.uid)">删除</el-button>
|
||||
<!-- <el-button type="text" size="small" @click="deleteHandle(scope.row.uid)">删除</el-button> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
Loading…
x
Reference in New Issue
Block a user