This commit is contained in:
dute7liang
2024-01-21 19:55:39 +08:00
parent e36ad030e4
commit 5c9218ea83
18 changed files with 222 additions and 76 deletions

View File

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.Dynamic; import com.ruoyi.cai.domain.Dynamic;
import com.ruoyi.cai.dto.admin.query.BatchAuditReq; import com.ruoyi.cai.dto.admin.query.BatchAuditReq;
import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo; import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo;
import com.ruoyi.cai.enums.AuditStatusEnum;
import com.ruoyi.cai.service.DynamicService; import com.ruoyi.cai.service.DynamicService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit; import com.ruoyi.common.annotation.RepeatSubmit;
@@ -23,6 +24,8 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
/** /**
* 主播动态 * 主播动态
@@ -93,6 +96,34 @@ public class DynamicController extends BaseController {
return R.ok(); return R.ok();
} }
@SaCheckPermission("cai:dynamic:edit")
@RepeatSubmit()
@PostMapping("/top")
public R<Void> top(@RequestBody Dynamic bo) {
dynamicService.top(bo.getId());
return R.ok();
}
@SaCheckPermission("cai:dynamic:edit")
@RepeatSubmit()
@PostMapping("/unTop")
public R<Void> unTop(@RequestBody Dynamic bo) {
dynamicService.unTop(bo.getId());
return R.ok();
}
@GetMapping("/selectTop")
public R<Map<String,Object>> selectTop() {
boolean exists = dynamicService.exists(Wrappers.lambdaQuery(Dynamic.class)
.eq(Dynamic::getAuditStatus, AuditStatusEnum.SUCCESS.getCode())
.eq(Dynamic::getSort, 1));
Map<String,Object> map = new HashMap<>();
map.put("exists",exists);
return R.ok(map);
}
/** /**
* 删除主播动态 * 删除主播动态
* *

View File

@@ -3,10 +3,8 @@ package com.ruoyi.cai.controller.app;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.dto.app.query.DynamicAddReq; import com.ruoyi.cai.dto.app.query.DynamicAddReq;
import com.ruoyi.cai.dto.app.query.DynamicQuery; import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.query.DynamicStarReq;
import com.ruoyi.cai.dto.app.vo.DynamicListVo; import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import com.ruoyi.cai.service.DynamicService; import com.ruoyi.cai.service.DynamicService;
import com.ruoyi.cai.service.UserFollowDynamicService;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
@@ -31,6 +29,7 @@ public class UserDynamicAppController {
@Operation(summary = "动态查询动态") @Operation(summary = "动态查询动态")
@Log(title = "动态查询动态", businessType = BusinessType.OTHER, isSaveDb = false) @Log(title = "动态查询动态", businessType = BusinessType.OTHER, isSaveDb = false)
public R<List<DynamicListVo>> page(PageQuery pageQuery, DynamicQuery query){ public R<List<DynamicListVo>> page(PageQuery pageQuery, DynamicQuery query){
query.setCurrentUserId(LoginHelper.getUserId());
Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query); Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query);
return R.ok(resp.getRecords()); return R.ok(resp.getRecords());
} }

View File

@@ -40,11 +40,11 @@ public class DynamicImages implements Serializable {
/** /**
* 宽度 * 宽度
*/ */
private Long width; private Integer width;
/** /**
* 高度 * 高度
*/ */
private Long height; private Integer height;
/** /**
* 图片大小 * 图片大小
*/ */

View File

@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
@@ -38,20 +37,6 @@ public class Union implements Serializable {
* 是否开启提成 * 是否开启提成
*/ */
private Boolean enableRate; private Boolean enableRate;
/**
* 全部人数
*/
private Long allNum;
/**
* 在分成的人数
*/
@Deprecated
private Long inDivideNum;
/**
* 不分成人数
*/
@Deprecated
private Long notDivideNum;
private LocalDateTime createTime; private LocalDateTime createTime;

View File

@@ -0,0 +1,10 @@
package com.ruoyi.cai.dto.admin;
import lombok.Data;
@Data
public class UnionCountDTO {
private Long unionId;
private Integer allNum;
private Integer anchorNum;
}

View File

@@ -13,6 +13,9 @@ import java.time.LocalDateTime;
@Data @Data
public class UnionAdminVo extends Union { public class UnionAdminVo extends Union {
private Integer allNum = 0;
private Integer anchorNum = 0;
/** /**
* 用户号/ID号 * 用户号/ID号
*/ */

View File

@@ -1,10 +1,8 @@
package com.ruoyi.cai.dto.app.query; package com.ruoyi.cai.dto.app.query;
import com.ruoyi.cai.dto.app.vo.DynamicImageVo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
import java.util.List; import java.util.List;
@Data @Data
@@ -13,36 +11,23 @@ public class DynamicAddReq {
/** /**
* 用户ID * 用户ID
*/ */
@Schema(description = "用户ID") @Schema(description = "用户ID",hidden = true)
private Long userId; private Long userId;
/** /**
* 内容 * 内容
*/ */
@Schema(description = "内容") @Schema(description = "内容")
private String content; private String content;
/**
* 城市ID
*/
@Schema(description = "城市ID")
private Integer cityId;
/**
* 是否有附件 0 没有 1 有
*/
@Schema(description = "是否有附件")
private Integer isAttach;
@Schema(description = "照片列表") @Schema(description = "照片列表")
private List<DynamicImageVo> imageList; private List<DynamicImageAddReq> imageList;
/**
* 状态 0 审核中 1可用 2 不可用
*/ @Data
@Schema(hidden = true) @Schema(description = "动态照片上传")
private Integer status; public static class DynamicImageAddReq {
/** @Schema(description = "照片")
* 排序字段 private String url;
*/ }
@Schema(hidden = true)
private Long sort;
@Schema(hidden = true)
private LocalDateTime createTime;
} }

View File

@@ -33,7 +33,7 @@ public enum SystemConfigEnum {
SENSITIVE_ENABLE("1", "是否开启手机号脱敏",SystemConfigGroupEnum.SYSTEM), SENSITIVE_ENABLE("1", "是否开启手机号脱敏",SystemConfigGroupEnum.SYSTEM),
SMS_CODE_ADMIN("", "万能验证码",SystemConfigGroupEnum.SYSTEM), SMS_CODE_ADMIN("", "万能验证码",SystemConfigGroupEnum.SYSTEM),
PASSWORD_ADMIN("", "公用密码",SystemConfigGroupEnum.SYSTEM), PASSWORD_ADMIN("", "公用密码",SystemConfigGroupEnum.SYSTEM),
SYSTEM_CUSTOMER_SERVICE("", "系统客服",SystemConfigGroupEnum.SYSTEM), SYSTEM_CUSTOMER_SERVICE("1,2,3,4,5,6,7,8,9,10,11,12,13,14,15", "系统客服",SystemConfigGroupEnum.SYSTEM),
WS_SOCKET_URL("ws://localhost:8080/ws?token=%s&room_id=%s", "ws通讯地址",SystemConfigGroupEnum.SYSTEM), WS_SOCKET_URL("ws://localhost:8080/ws?token=%s&room_id=%s", "ws通讯地址",SystemConfigGroupEnum.SYSTEM),
; ;

View File

@@ -7,23 +7,18 @@ import com.ruoyi.cai.dto.app.dto.ImMessageDTO;
import com.ruoyi.cai.dto.app.vo.ImResp; import com.ruoyi.cai.dto.app.vo.ImResp;
import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.enums.GenderEnum;
import com.ruoyi.cai.enums.ImTypeEnum; import com.ruoyi.cai.enums.ImTypeEnum;
import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.enums.UserMemberTypeEnum; import com.ruoyi.cai.enums.UserMemberTypeEnum;
import com.ruoyi.cai.service.*; import com.ruoyi.cai.service.*;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
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 java.util.Set;
@Component @Component
public class ImService { public class ImService {
@Autowired @Autowired
private UserService userService; private UserService userService;
@Autowired @Autowired
private SystemConfigManager systemConfigManager;
@Autowired
private AccountService accountService; private AccountService accountService;
@Autowired @Autowired
private UserFollowService userFollowService; private UserFollowService userFollowService;
@@ -31,6 +26,8 @@ public class ImService {
private UserMemberService userMemberService; private UserMemberService userMemberService;
@Autowired @Autowired
private UserChatRecordService userChatRecordService; private UserChatRecordService userChatRecordService;
@Autowired
private InnerUserFilter innerUserFilter;
public ImResp sendMessage(Long fromUserId, ImMessageDTO message) { public ImResp sendMessage(Long fromUserId, ImMessageDTO message) {
ImTypeEnum typeEnum = ImTypeEnum.getByType(message.getType()); ImTypeEnum typeEnum = ImTypeEnum.getByType(message.getType());
@@ -61,9 +58,9 @@ public class ImService {
resp.setContent(message.getContent()); resp.setContent(message.getContent());
return resp; return resp;
} }
Set<Long> systemCustomerService = systemConfigManager.getSystemConfigOfLongSet(SystemConfigEnum.SYSTEM_CUSTOMER_SERVICE); boolean inner = innerUserFilter.checkInner(fromUserId, toUserId);
// 有内部用户参与的 跳过所有校验 // 有内部用户参与的 跳过所有校验
if(systemCustomerService.contains(fromUserId) || systemCustomerService.contains(toUserId)){ if(inner){
Account account = accountService.getByUserId(fromUserId); Account account = accountService.getByUserId(fromUserId);
ImResp resp = new ImResp(); ImResp resp = new ImResp();
resp.setCoin(account.getCoin()+ account.getIncomeCoin()); resp.setCoin(account.getCoin()+ account.getIncomeCoin());
@@ -72,11 +69,9 @@ public class ImService {
} }
boolean fileType = typeEnum.isFileType(); boolean fileType = typeEnum.isFileType();
if(fileType){ if(fileType){
if(!systemCustomerService.contains(fromUserId) && !systemCustomerService.contains(toUserId)){ boolean star = userFollowService.checkStar(toUserId, fromUserId);
boolean star = userFollowService.checkStar(toUserId, fromUserId); if(!star){
if(!star){ throw new ServiceException("对方关注你才能发送图片|语音|视频");
throw new ServiceException("对方关注你才能发送图片|语音|视频");
}
} }
} }
if(fromUserId.equals(toUserId)){ if(fromUserId.equals(toUserId)){
@@ -111,7 +106,7 @@ public class ImService {
throw new ServiceException("目前只能和女神私信!"); throw new ServiceException("目前只能和女神私信!");
} }
// 正则判断违规数据替换 // 正则判断违规数据替换
if(typeEnum == ImTypeEnum.MESSAGE && !systemCustomerService.contains(fromUserId) && !systemCustomerService.contains(toUserId)){ if(typeEnum == ImTypeEnum.MESSAGE){
} }
if(fromUser.getIsAnchor().equals(1)){ // 女神发消息不要钱 if(fromUser.getIsAnchor().equals(1)){ // 女神发消息不要钱

View File

@@ -0,0 +1,34 @@
package com.ruoyi.cai.manager;
import com.ruoyi.cai.enums.SystemConfigEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Set;
@Component
public class InnerUserFilter {
@Autowired
private SystemConfigManager systemConfigManager;
public boolean checkInner(Long ... userId){
Set<Long> systemCustomerService = systemConfigManager.getSystemConfigOfLongSet(SystemConfigEnum.SYSTEM_CUSTOMER_SERVICE);
for (Long u : userId) {
if(systemCustomerService.contains(u)){
return true;
}
}
return false;
}
public boolean checkInner(List<Long> userId){
Set<Long> systemCustomerService = systemConfigManager.getSystemConfigOfLongSet(SystemConfigEnum.SYSTEM_CUSTOMER_SERVICE);
for (Long u : userId) {
if(systemCustomerService.contains(u)){
return true;
}
}
return false;
}
}

View File

@@ -3,9 +3,12 @@ package com.ruoyi.cai.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.cai.domain.UnionUser; import com.ruoyi.cai.domain.UnionUser;
import com.ruoyi.cai.dto.admin.UnionCountDTO;
import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo; import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* 123Mapper接口 * 123Mapper接口
* *
@@ -15,4 +18,6 @@ import org.apache.ibatis.annotations.Param;
public interface UnionUserMapper extends BaseMapper<UnionUser> { public interface UnionUserMapper extends BaseMapper<UnionUser> {
Page<UnionUserAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UnionUserAdminVo bo); Page<UnionUserAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UnionUserAdminVo bo);
List<UnionCountDTO> countByUnionIds(@Param("unionIds") List<Long> unionIds);
} }

View File

@@ -19,6 +19,10 @@ import java.util.List;
*/ */
public interface DynamicService extends IService<Dynamic> { public interface DynamicService extends IService<Dynamic> {
void unTop(Long id);
void top(Long id);
List<String> selectDynamicImageList(Long userId, Integer limit); List<String> selectDynamicImageList(Long userId, Integer limit);
Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query); Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query);

View File

@@ -3,9 +3,12 @@ package com.ruoyi.cai.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.cai.domain.UnionUser; import com.ruoyi.cai.domain.UnionUser;
import com.ruoyi.cai.dto.admin.UnionCountDTO;
import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo; import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import java.util.List;
/** /**
* 123Service接口 * 123Service接口
* *
@@ -17,4 +20,6 @@ public interface UnionUserService extends IService<UnionUser> {
UnionUser getByUserId(Long userId); UnionUser getByUserId(Long userId);
Page<UnionUserAdminVo> pageAdmin(PageQuery pageQuery, UnionUserAdminVo bo); Page<UnionUserAdminVo> pageAdmin(PageQuery pageQuery, UnionUserAdminVo bo);
List<UnionCountDTO> countByUnionIds(List<Long> unionIds);
} }

View File

@@ -14,7 +14,9 @@ import com.ruoyi.cai.dto.app.query.DynamicQuery;
import com.ruoyi.cai.dto.app.vo.DynamicImageVo; import com.ruoyi.cai.dto.app.vo.DynamicImageVo;
import com.ruoyi.cai.dto.app.vo.DynamicListVo; import com.ruoyi.cai.dto.app.vo.DynamicListVo;
import com.ruoyi.cai.dto.app.vo.DynamicVo; import com.ruoyi.cai.dto.app.vo.DynamicVo;
import com.ruoyi.cai.enums.AuditStatusEnum;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.InnerUserFilter;
import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.manager.SystemConfigManager;
import com.ruoyi.cai.mapper.DynamicMapper; import com.ruoyi.cai.mapper.DynamicMapper;
import com.ruoyi.cai.service.CitysService; import com.ruoyi.cai.service.CitysService;
@@ -25,10 +27,13 @@ import com.ruoyi.cai.util.CaiFileUtils;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.BeanConvertUtil; import com.ruoyi.common.utils.BeanConvertUtil;
import com.ruoyi.common.utils.StringUtils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@@ -53,6 +58,22 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
private SystemConfigManager systemConfigManager; private SystemConfigManager systemConfigManager;
@Autowired @Autowired
private CitysService citysService; private CitysService citysService;
@Autowired
private InnerUserFilter innerUserFilter;
@Override
public void unTop(Long id){
this.update(Wrappers.lambdaUpdate(Dynamic.class)
.eq(Dynamic::getId,id)
.set(Dynamic::getSort, null));
}
@Override
public void top(Long id){
this.update(Wrappers.lambdaUpdate(Dynamic.class)
.eq(Dynamic::getId,id)
.set(Dynamic::getSort, 1));
}
@Override @Override
public List<String> selectDynamicImageList(Long userId, Integer limit) { public List<String> selectDynamicImageList(Long userId, Integer limit) {
@@ -61,6 +82,7 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
@Override @Override
public Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query) { public Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query) {
// 1=最新(默认) 2=关注 3=同城
Page<DynamicListVo> page = baseMapper.pageApp(pageQuery.build(),query); Page<DynamicListVo> page = baseMapper.pageApp(pageQuery.build(),query);
List<DynamicListVo> records = page.getRecords(); List<DynamicListVo> records = page.getRecords();
List<Long> dynamicIds = records.stream().filter(i -> i.getIsAttach() == 1).map(DynamicVo::getId).collect(Collectors.toList()); List<Long> dynamicIds = records.stream().filter(i -> i.getIsAttach() == 1).map(DynamicVo::getId).collect(Collectors.toList());
@@ -79,6 +101,9 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
@Override @Override
public void saveDynamic(DynamicAddReq res) { public void saveDynamic(DynamicAddReq res) {
if(StringUtils.isEmpty(res.getContent()) || CollectionUtils.isEmpty(res.getImageList())){
throw new ServiceException("动态内容和图片必须上传");
}
if(res.getImageList() != null && res.getImageList().size() > 9){ if(res.getImageList() != null && res.getImageList().size() > 9){
throw new ServiceException("最多只能发送9张照片哦"); throw new ServiceException("最多只能发送9张照片哦");
} }
@@ -86,11 +111,17 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
if(user.getSendDynamic() == 0){ if(user.getSendDynamic() == 0){
throw new ServiceException("您已被禁止发送动态"); throw new ServiceException("您已被禁止发送动态");
} }
Integer maxNum = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.DAY_MAX_DYNAMIC); if(user.getIsAnchor() == null || user.getIsAnchor() != 1){
if(maxNum > 0){ throw new ServiceException("只有主播可以发布动态哦");
int alreadySendNum = dynamicTotalCache.get(res.getUserId()); }
if(alreadySendNum > maxNum){ boolean inner = innerUserFilter.checkInner(res.getUserId());
throw new ServiceException("每天最大可发送"+maxNum+"条动态"); if(!inner){
Integer maxNum = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.DAY_MAX_DYNAMIC);
if(maxNum > 0){
int alreadySendNum = dynamicTotalCache.get(res.getUserId());
if(alreadySendNum > maxNum){
throw new ServiceException("每天最大可发送"+maxNum+"条动态");
}
} }
} }
Dynamic dynamic = BeanConvertUtil.convertTo(res, Dynamic::new); Dynamic dynamic = BeanConvertUtil.convertTo(res, Dynamic::new);
@@ -105,19 +136,23 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
}else{ }else{
dynamic.setIsAttach(0); dynamic.setIsAttach(0);
} }
dynamic.setAuditStatus(inner ? AuditStatusEnum.SUCCESS.getCode() : AuditStatusEnum.AUDITING.getCode());
this.save(dynamic); this.save(dynamic);
List<DynamicImageVo> imageList = res.getImageList(); List<DynamicImages> dynamicImages = new ArrayList<>();
List<DynamicAddReq.DynamicImageAddReq> imageList = res.getImageList();
if(CollectionUtil.isNotEmpty(imageList)){ if(CollectionUtil.isNotEmpty(imageList)){
for (DynamicImageVo imageVo : imageList) { for (DynamicAddReq.DynamicImageAddReq imageVo : imageList) {
CaiFileUtils.FileSize fileSize = CaiFileUtils.getFileSize(imageVo.getUrl()); CaiFileUtils.FileSize fileSize = CaiFileUtils.getFileSize(imageVo.getUrl());
imageVo.setHeight(fileSize.getHeight()); DynamicImages po = new DynamicImages();
imageVo.setWidth(fileSize.getWidth()); po.setUserId(dynamic.getUserId());
imageVo.setExts(fileSize.getSuffix()); po.setDynamicId(dynamic.getId());
imageVo.setDynamicId(dynamic.getId()); po.setUrl(imageVo.getUrl());
imageVo.setUserId(dynamic.getUserId()); po.setWidth(fileSize.getWidth());
imageVo.setId(null); po.setHeight(fileSize.getHeight());
po.setExts(fileSize.getSuffix());
dynamicImages.add(po);
} }
dynamicImagesService.saveBatch(BeanConvertUtil.convertListTo(imageList, DynamicImages::new)); dynamicImagesService.saveBatch(dynamicImages);
} }
} }

View File

@@ -1,9 +1,11 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.*; import com.ruoyi.cai.domain.*;
import com.ruoyi.cai.dto.admin.UnionCountDTO;
import com.ruoyi.cai.dto.admin.vo.UnionAdminVo; import com.ruoyi.cai.dto.admin.vo.UnionAdminVo;
import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.SystemConfigEnum;
import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.manager.SystemConfigManager;
@@ -15,6 +17,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* 工会列表Service业务层处理 * 工会列表Service业务层处理
* *
@@ -35,7 +42,25 @@ public class UnionServiceImpl extends ServiceImpl<UnionMapper, Union> implements
@Override @Override
public Page<UnionAdminVo> pageAdmin(PageQuery pageQuery, UnionAdminVo bo) { public Page<UnionAdminVo> pageAdmin(PageQuery pageQuery, UnionAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo); Page<UnionAdminVo> page = baseMapper.pageAdmin(pageQuery.build(), bo);
List<UnionAdminVo> records = page.getRecords();
if(CollectionUtils.isEmpty(records)){
return page;
}
List<Long> unionIds = records.stream().map(Union::getId).collect(Collectors.toList());
List<UnionCountDTO> dtos = unionUserService.countByUnionIds(unionIds);
if(dtos == null){
return page;
}
Map<Long, UnionCountDTO> countMap = dtos.stream().collect(Collectors.toMap(UnionCountDTO::getUnionId, Function.identity()));
for (UnionAdminVo record : records) {
UnionCountDTO dto = countMap.get(record.getId());
if(dto != null){
record.setAllNum(dto.getAllNum());
record.setAnchorNum(dto.getAnchorNum());
}
}
return page;
} }
@Override @Override

View File

@@ -1,15 +1,19 @@
package com.ruoyi.cai.service.impl; package com.ruoyi.cai.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.UnionUser; import com.ruoyi.cai.domain.UnionUser;
import com.ruoyi.cai.dto.admin.UnionCountDTO;
import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo; import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo;
import com.ruoyi.cai.mapper.UnionUserMapper; import com.ruoyi.cai.mapper.UnionUserMapper;
import com.ruoyi.cai.service.UnionUserService; import com.ruoyi.cai.service.UnionUserService;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* 123Service业务层处理 * 123Service业务层处理
* *
@@ -30,4 +34,12 @@ public class UnionUserServiceImpl extends ServiceImpl<UnionUserMapper, UnionUser
public Page<UnionUserAdminVo> pageAdmin(PageQuery pageQuery, UnionUserAdminVo bo) { public Page<UnionUserAdminVo> pageAdmin(PageQuery pageQuery, UnionUserAdminVo bo) {
return baseMapper.pageAdmin(pageQuery.build(),bo); return baseMapper.pageAdmin(pageQuery.build(),bo);
} }
@Override
public List<UnionCountDTO> countByUnionIds(List<Long> unionIds) {
if(CollectionUtils.isEmpty(unionIds)){
return null;
}
return baseMapper.countByUnionIds(unionIds);
}
} }

View File

@@ -30,7 +30,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="query.type != null and query.type == 3"> <if test="query.type != null and query.type == 3">
and t1.city_id = #{query.cityId} and t1.city_id = #{query.cityId}
</if> </if>
order by t1.create_time desc <if test="query.type != null and query.type == 1">
order by t1.sort desc, t1.create_time desc
</if>
<if test="query.type == null or query.type != 1">
order by t1.create_time desc
</if>
</select> </select>
<select id="selectDynamicImageList" resultType="java.lang.String"> <select id="selectDynamicImageList" resultType="java.lang.String">
select t2.url select t2.url
@@ -54,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and t1.audit_status = #{bo.auditStatus} and t1.audit_status = #{bo.auditStatus}
</if> </if>
</where> </where>
order by t1.create_time desc order by t1.sort desc, t1.create_time desc
</select> </select>

View File

@@ -22,6 +22,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
order by t1.create_time order by t1.create_time
</select> </select>
<select id="countByUnionIds" resultType="com.ruoyi.cai.dto.admin.UnionCountDTO">
select
t1.union_id,
count(t1.id) all_num,
sum(if(t2.id,1,0)) anchor_num
from cai_union_user t1
left join cai_user t2 on t1.user_id = t2.id and t2.is_anchor = 1
where t1.union_id in
<foreach collection="unionIds" item="value" open="(" close=")" separator=",">
#{value}
</foreach>
group by t1.union_id;
</select>
</mapper> </mapper>