This commit is contained in:
dute7liang
2023-12-24 16:58:05 +08:00
parent 2f47f91b37
commit 3febb24205
19 changed files with 322 additions and 9 deletions

View File

@@ -8,10 +8,7 @@ import com.ruoyi.cai.domain.CaiAccountRecharge;
import com.ruoyi.cai.dto.app.query.*;
import com.ruoyi.cai.dto.app.vo.*;
import com.ruoyi.cai.manager.CurrentUserManager;
import com.ruoyi.cai.service.CaiAccountBankcardService;
import com.ruoyi.cai.service.CaiAccountCashService;
import com.ruoyi.cai.service.CaiAccountRechargeService;
import com.ruoyi.cai.service.CaiUserAlbumService;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
@@ -35,6 +32,8 @@ public class CaiCurrentUserAppController {
private CaiAccountCashService accountCashService;
@Autowired
private CaiUserAlbumService userAlbumService;
@Autowired
private CaiReportService reportService;
@GetMapping("/user/aliInfo")
public R<CaiAccountBankcard> aliInfo(){
@@ -113,4 +112,12 @@ public class CaiCurrentUserAppController {
.orderByDesc(CaiAccountCash::getCreateTime));
return TableDataInfo.build(page,AccountCashVo::new);
}
@PostMapping("/user/report")
public R<Void> report(UserReportRes reportRes){
Long userId = LoginHelper.getUserId();
reportRes.setUserId(userId);
reportService.report(reportRes);
return R.ok();
}
}

View File

@@ -2,8 +2,10 @@ package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.cai.domain.CaiGoods;
import com.ruoyi.cai.domain.CaiReportCate;
import com.ruoyi.cai.domain.CaiWithdrawExchange;
import com.ruoyi.cai.service.CaiGoodsService;
import com.ruoyi.cai.service.CaiReportCateService;
import com.ruoyi.cai.service.CaiWithdrawExchangeService;
import com.ruoyi.common.core.domain.R;
import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +23,8 @@ public class CaiSettingAppController {
private CaiGoodsService goodsService;
@Autowired
private CaiWithdrawExchangeService withdrawExchangeService;
@Autowired
private CaiReportCateService reportCateService;
@GetMapping("/goods")
public R<List<CaiGoods>> goods(){
@@ -36,4 +40,10 @@ public class CaiSettingAppController {
.orderByAsc(CaiWithdrawExchange::getMoney));
return R.ok(list);
}
@GetMapping("/report")
public R<List<CaiReportCate>> report(){
List<CaiReportCate> list = reportCateService.list(Wrappers.lambdaQuery(CaiReportCate.class));
return R.ok(list);
}
}

View File

@@ -0,0 +1,56 @@
package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.query.DynamicAddRes;
import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.query.DynamicStarRes;
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import com.ruoyi.cai.service.CaiDynamicService;
import com.ruoyi.cai.service.CaiUserFollowDynamicService;
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.helper.LoginHelper;
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.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/dynamic")
public class CaiUserDynamicAppController {
@Autowired
private CaiDynamicService dynamicService;
@Autowired
private CaiUserFollowDynamicService userFollowDynamicService;
@GetMapping("/page")
public TableDataInfo<DynamicListVo> page(PageQuery pageQuery, DynamicQuery query){
Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query);
return TableDataInfo.build(resp);
}
@PostMapping("/star")
public R<Void> star(DynamicStarRes query){
query.setUserId(LoginHelper.getUserId());
userFollowDynamicService.star(query);
return R.ok();
}
@PostMapping("/unstar")
public R<Void> unStar(DynamicStarRes query){
query.setUserId(LoginHelper.getUserId());
userFollowDynamicService.unStar(query);
return R.ok();
}
@PostMapping("/save")
public R<Void> save(DynamicAddRes res){
res.setUserId(LoginHelper.getUserId());
dynamicService.saveDynamic(res);
return R.ok();
}
}

View File

@@ -27,7 +27,7 @@ public class CaiDynamic implements Serializable {
/**
* 用户ID
*/
private Integer userId;
private Long userId;
/**
* 内容
*/

View File

@@ -0,0 +1,39 @@
package com.ruoyi.cai.dto.app.query;
import com.ruoyi.cai.dto.app.vo.DynamicImageVo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class DynamicAddRes {
/**
* 用户ID
*/
private Long userId;
/**
* 内容
*/
private String content;
/**
* 城市ID
*/
private Integer cityId;
/**
* 是否有附件 0 没有 1 有
*/
private Integer isAttach;
/**
* 状态 0 审核中 1可用 2 不可用
*/
private Integer status;
/**
* 排序字段
*/
private Long sort;
private LocalDateTime createTime;
private List<DynamicImageVo> imageList;
}

View File

@@ -0,0 +1,16 @@
package com.ruoyi.cai.dto.app.query;
import lombok.Data;
@Data
public class DynamicQuery {
// 1=最新(默认) 2=关注 3=同城
private Integer type = 1;
private Long userId;
private Long currentUserId;
private Integer cityId;
}

View File

@@ -0,0 +1,9 @@
package com.ruoyi.cai.dto.app.query;
import lombok.Data;
@Data
public class DynamicStarRes {
private Long dynamicId;
private Long userId;
}

View File

@@ -0,0 +1,28 @@
package com.ruoyi.cai.dto.app.query;
import lombok.Data;
@Data
public class UserReportRes {
/**
* 举报类型 1 个人详情页 2 视频结束 3 动态 4.IM页面
*/
private Integer type;
/**
* 举报分类
*/
private Long cateId;
/**
* 举报人
*/
private Long userId;
/**
* 举报对象
*/
private Long reportUid;
/**
* 举报内容
*/
private String content;
}

View File

@@ -7,11 +7,11 @@ import java.time.LocalDateTime;
@Data
public class DynamicImageVo {
private Integer id;
private Long id;
/**
* 用户ID
*/
private Integer userId;
private Long userId;
/**
* 动态ID
*/

View File

@@ -0,0 +1,19 @@
package com.ruoyi.cai.dto.app.vo;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class DynamicListVo extends DynamicVo{
private Integer age;
/**
* 性别 0 未知 1 女 2 男
*/
private Integer gender;
private String avatar;
private String nickname;
private boolean star;
}

View File

@@ -14,7 +14,7 @@ public class DynamicVo {
/**
* 用户ID
*/
private Integer userId;
private Long userId;
/**
* 内容
*/

View File

@@ -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.CaiDynamic;
import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import org.apache.ibatis.annotations.Param;
/**
* 主播动态Mapper接口
@@ -11,4 +15,5 @@ import com.ruoyi.cai.domain.CaiDynamic;
*/
public interface CaiDynamicMapper extends BaseMapper<CaiDynamic> {
Page<DynamicListVo> pageApp(@Param("build") Page<Object> build, @Param("query") DynamicQuery query);
}

View File

@@ -1,8 +1,14 @@
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.CaiDynamic;
import com.ruoyi.cai.dto.app.query.DynamicAddRes;
import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.query.DynamicStarRes;
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import com.ruoyi.cai.dto.app.vo.DynamicVo;
import com.ruoyi.common.core.domain.PageQuery;
import java.util.List;
@@ -15,4 +21,8 @@ import java.util.List;
public interface CaiDynamicService extends IService<CaiDynamic> {
List<DynamicVo> selectDynamicList(Long userId, Integer limit);
Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query);
void saveDynamic(DynamicAddRes res);
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiReport;
import com.ruoyi.cai.dto.app.query.UserReportRes;
/**
* 举报Service接口
@@ -11,4 +12,5 @@ import com.ruoyi.cai.domain.CaiReport;
*/
public interface CaiReportService extends IService<CaiReport> {
void report(UserReportRes reportRes);
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.CaiUserFollowDynamic;
import com.ruoyi.cai.dto.app.query.DynamicStarRes;
/**
* 关注动态表Service接口
@@ -11,4 +12,7 @@ import com.ruoyi.cai.domain.CaiUserFollowDynamic;
*/
public interface CaiUserFollowDynamicService extends IService<CaiUserFollowDynamic> {
void star(DynamicStarRes query);
void unStar(DynamicStarRes query);
}

View File

@@ -2,14 +2,21 @@ package com.ruoyi.cai.service.impl;
import cn.hutool.core.collection.CollectionUtil;
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.CaiDynamic;
import com.ruoyi.cai.domain.CaiDynamicImages;
import com.ruoyi.cai.dto.app.query.DynamicAddRes;
import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.query.DynamicStarRes;
import com.ruoyi.cai.dto.app.vo.DynamicImageVo;
import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import com.ruoyi.cai.dto.app.vo.DynamicVo;
import com.ruoyi.cai.mapper.CaiDynamicMapper;
import com.ruoyi.cai.service.CaiDynamicImagesService;
import com.ruoyi.cai.service.CaiDynamicService;
import com.ruoyi.cai.service.CaiUserFollowDynamicService;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.utils.BeanConvertUtil;
import lombok.RequiredArgsConstructor;
import net.bytebuddy.utility.JavaConstant;
@@ -18,6 +25,7 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -54,4 +62,38 @@ public class CaiDynamicServiceImpl extends ServiceImpl<CaiDynamicMapper,CaiDynam
}
return res;
}
@Override
public Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query) {
Page<DynamicListVo> page = baseMapper.pageApp(pageQuery.build(),query);
List<DynamicListVo> records = page.getRecords();
List<Long> dynamicIds = records.stream().filter(i -> i.getIsAttach() == 1).map(DynamicVo::getId).collect(Collectors.toList());
if(CollectionUtil.isNotEmpty(dynamicIds)){
List<CaiDynamicImages> dynamicImages = dynamicImagesService.list(Wrappers.lambdaQuery(CaiDynamicImages.class)
.in(CaiDynamicImages::getDynamicId, dynamicIds));
Map<Long, List<CaiDynamicImages>> map =
dynamicImages.stream().collect(Collectors.groupingBy(CaiDynamicImages::getDynamicId));
for (DynamicVo re : records) {
List<CaiDynamicImages> images = map.get(re.getId());
re.setImageList(BeanConvertUtil.convertListTo(images, DynamicImageVo::new));
}
}
return page;
}
@Override
public void saveDynamic(DynamicAddRes res) {
CaiDynamic caiDynamic = BeanConvertUtil.convertTo(res, CaiDynamic::new);
this.save(caiDynamic);
List<DynamicImageVo> imageList = res.getImageList();
if(CollectionUtil.isNotEmpty(imageList)){
for (DynamicImageVo imageVo : imageList) {
imageVo.setDynamicId(caiDynamic.getId());
imageVo.setUserId(caiDynamic.getUserId());
imageVo.setId(null);
}
dynamicImagesService.saveBatch(BeanConvertUtil.convertListTo(imageList, CaiDynamicImages::new));
}
}
}

View File

@@ -2,9 +2,13 @@ package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.CaiReport;
import com.ruoyi.cai.domain.CaiReportCate;
import com.ruoyi.cai.dto.app.query.UserReportRes;
import com.ruoyi.cai.mapper.CaiReportMapper;
import com.ruoyi.cai.service.CaiReportCateService;
import com.ruoyi.cai.service.CaiReportService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@@ -16,5 +20,18 @@ import org.springframework.stereotype.Service;
@RequiredArgsConstructor
@Service
public class CaiReportServiceImpl extends ServiceImpl<CaiReportMapper,CaiReport> implements CaiReportService {
@Autowired
private CaiReportCateService reportCateService;
@Override
public void report(UserReportRes reportRes) {
CaiReportCate reportCate = reportCateService.getById(reportRes.getCateId());
CaiReport report = new CaiReport();
report.setType(reportRes.getType());
report.setCateName(reportCate.getName());
report.setCateId(reportRes.getCateId());
report.setUserId(reportRes.getUserId());
report.setReportUid(reportRes.getReportUid());
report.setContent(reportRes.getContent());
this.save(report);
}
}

View File

@@ -1,10 +1,15 @@
package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.CaiDynamic;
import com.ruoyi.cai.domain.CaiUserFollowDynamic;
import com.ruoyi.cai.dto.app.query.DynamicStarRes;
import com.ruoyi.cai.mapper.CaiUserFollowDynamicMapper;
import com.ruoyi.cai.service.CaiDynamicService;
import com.ruoyi.cai.service.CaiUserFollowDynamicService;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@@ -17,4 +22,29 @@ import org.springframework.stereotype.Service;
@Service
public class CaiUserFollowDynamicServiceImpl extends ServiceImpl<CaiUserFollowDynamicMapper,CaiUserFollowDynamic> implements CaiUserFollowDynamicService {
@Autowired
private CaiDynamicService dynamicService;
@Override
public void star(DynamicStarRes query) {
CaiDynamic dynamic = dynamicService.getById(query.getDynamicId());
if(dynamic == null){
return;
}
this.remove(Wrappers.lambdaQuery(CaiUserFollowDynamic.class)
.eq(CaiUserFollowDynamic::getDynamicId,query.getDynamicId())
.eq(CaiUserFollowDynamic::getUserId,query.getUserId()));
CaiUserFollowDynamic userFollowDynamic = new CaiUserFollowDynamic();
userFollowDynamic.setUserId(query.getUserId());
userFollowDynamic.setFollowUid(dynamic.getUserId());
userFollowDynamic.setDynamicId(dynamic.getId());
this.save(userFollowDynamic);
}
@Override
public void unStar(DynamicStarRes query) {
this.remove(Wrappers.lambdaQuery(CaiUserFollowDynamic.class)
.eq(CaiUserFollowDynamic::getDynamicId,query.getDynamicId())
.eq(CaiUserFollowDynamic::getUserId,query.getUserId()));
}
}