diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/DynamicController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/DynamicController.java index 4d1718fc..6cc6625c 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/DynamicController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/admin/DynamicController.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.cai.domain.Dynamic; import com.ruoyi.cai.dto.admin.query.BatchAuditReq; import com.ruoyi.cai.dto.admin.vo.DynamicAdminVo; +import com.ruoyi.cai.enums.AuditStatusEnum; import com.ruoyi.cai.service.DynamicService; import com.ruoyi.common.annotation.Log; 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.NotNull; import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; /** * 主播动态 @@ -93,6 +96,34 @@ public class DynamicController extends BaseController { return R.ok(); } + @SaCheckPermission("cai:dynamic:edit") + @RepeatSubmit() + @PostMapping("/top") + public R top(@RequestBody Dynamic bo) { + dynamicService.top(bo.getId()); + return R.ok(); + } + + + @SaCheckPermission("cai:dynamic:edit") + @RepeatSubmit() + @PostMapping("/unTop") + public R unTop(@RequestBody Dynamic bo) { + dynamicService.unTop(bo.getId()); + return R.ok(); + } + + @GetMapping("/selectTop") + public R> selectTop() { + boolean exists = dynamicService.exists(Wrappers.lambdaQuery(Dynamic.class) + .eq(Dynamic::getAuditStatus, AuditStatusEnum.SUCCESS.getCode()) + .eq(Dynamic::getSort, 1)); + Map map = new HashMap<>(); + map.put("exists",exists); + return R.ok(map); + } + + /** * 删除主播动态 * diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java index 44132d25..2a5d51cb 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/controller/app/UserDynamicAppController.java @@ -3,10 +3,8 @@ package com.ruoyi.cai.controller.app; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.cai.dto.app.query.DynamicAddReq; 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.service.DynamicService; -import com.ruoyi.cai.service.UserFollowDynamicService; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.R; @@ -31,6 +29,7 @@ public class UserDynamicAppController { @Operation(summary = "动态查询动态") @Log(title = "动态查询动态", businessType = BusinessType.OTHER, isSaveDb = false) public R> page(PageQuery pageQuery, DynamicQuery query){ + query.setCurrentUserId(LoginHelper.getUserId()); Page resp = dynamicService.pageApp(pageQuery,query); return R.ok(resp.getRecords()); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DynamicImages.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DynamicImages.java index 7c00e074..aa936fb7 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DynamicImages.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/DynamicImages.java @@ -40,11 +40,11 @@ public class DynamicImages implements Serializable { /** * 宽度 */ - private Long width; + private Integer width; /** * 高度 */ - private Long height; + private Integer height; /** * 图片大小 */ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/Union.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/Union.java index f3157c0e..4e702b15 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/Union.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/domain/Union.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; -import java.math.BigDecimal; import java.time.LocalDateTime; /** @@ -38,20 +37,6 @@ public class Union implements Serializable { * 是否开启提成 */ private Boolean enableRate; - /** - * 全部人数 - */ - private Long allNum; - /** - * 在分成的人数 - */ - @Deprecated - private Long inDivideNum; - /** - * 不分成人数 - */ - @Deprecated - private Long notDivideNum; private LocalDateTime createTime; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/UnionCountDTO.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/UnionCountDTO.java new file mode 100644 index 00000000..e19f234a --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/UnionCountDTO.java @@ -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; +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/UnionAdminVo.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/UnionAdminVo.java index 08775db1..87da9728 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/UnionAdminVo.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/admin/vo/UnionAdminVo.java @@ -13,6 +13,9 @@ import java.time.LocalDateTime; @Data public class UnionAdminVo extends Union { + private Integer allNum = 0; + private Integer anchorNum = 0; + /** * 用户号/ID号 */ diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/DynamicAddReq.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/DynamicAddReq.java index e0c3035d..3facaf93 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/DynamicAddReq.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/dto/app/query/DynamicAddReq.java @@ -1,10 +1,8 @@ package com.ruoyi.cai.dto.app.query; -import com.ruoyi.cai.dto.app.vo.DynamicImageVo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import java.time.LocalDateTime; import java.util.List; @Data @@ -13,36 +11,23 @@ public class DynamicAddReq { /** * 用户ID */ - @Schema(description = "用户ID") + @Schema(description = "用户ID",hidden = true) private Long userId; /** * 内容 */ @Schema(description = "内容") private String content; - /** - * 城市ID - */ - @Schema(description = "城市ID") - private Integer cityId; - /** - * 是否有附件 0 没有 1 有 - */ - @Schema(description = "是否有附件") - private Integer isAttach; + @Schema(description = "照片列表") - private List imageList; - /** - * 状态 0 审核中 1可用 2 不可用 - */ - @Schema(hidden = true) - private Integer status; - /** - * 排序字段 - */ - @Schema(hidden = true) - private Long sort; - @Schema(hidden = true) - private LocalDateTime createTime; + private List imageList; + + + @Data + @Schema(description = "动态照片上传") + public static class DynamicImageAddReq { + @Schema(description = "照片") + private String url; + } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java index 33fefbc4..a5ec06ce 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/enums/SystemConfigEnum.java @@ -33,7 +33,7 @@ public enum SystemConfigEnum { SENSITIVE_ENABLE("1", "是否开启手机号脱敏",SystemConfigGroupEnum.SYSTEM), SMS_CODE_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), ; diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ImService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ImService.java index 44ecc239..931ccd7a 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ImService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/ImService.java @@ -7,23 +7,18 @@ import com.ruoyi.cai.dto.app.dto.ImMessageDTO; import com.ruoyi.cai.dto.app.vo.ImResp; import com.ruoyi.cai.enums.GenderEnum; import com.ruoyi.cai.enums.ImTypeEnum; -import com.ruoyi.cai.enums.SystemConfigEnum; import com.ruoyi.cai.enums.UserMemberTypeEnum; import com.ruoyi.cai.service.*; import com.ruoyi.common.exception.ServiceException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.Set; - @Component public class ImService { @Autowired private UserService userService; @Autowired - private SystemConfigManager systemConfigManager; - @Autowired private AccountService accountService; @Autowired private UserFollowService userFollowService; @@ -31,6 +26,8 @@ public class ImService { private UserMemberService userMemberService; @Autowired private UserChatRecordService userChatRecordService; + @Autowired + private InnerUserFilter innerUserFilter; public ImResp sendMessage(Long fromUserId, ImMessageDTO message) { ImTypeEnum typeEnum = ImTypeEnum.getByType(message.getType()); @@ -61,9 +58,9 @@ public class ImService { resp.setContent(message.getContent()); return resp; } - Set 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); ImResp resp = new ImResp(); resp.setCoin(account.getCoin()+ account.getIncomeCoin()); @@ -72,11 +69,9 @@ public class ImService { } boolean fileType = typeEnum.isFileType(); if(fileType){ - if(!systemCustomerService.contains(fromUserId) && !systemCustomerService.contains(toUserId)){ - boolean star = userFollowService.checkStar(toUserId, fromUserId); - if(!star){ - throw new ServiceException("对方关注你才能发送图片|语音|视频"); - } + boolean star = userFollowService.checkStar(toUserId, fromUserId); + if(!star){ + throw new ServiceException("对方关注你才能发送图片|语音|视频"); } } if(fromUserId.equals(toUserId)){ @@ -111,7 +106,7 @@ public class ImService { throw new ServiceException("目前只能和女神私信!"); } // 正则判断违规数据替换 - if(typeEnum == ImTypeEnum.MESSAGE && !systemCustomerService.contains(fromUserId) && !systemCustomerService.contains(toUserId)){ + if(typeEnum == ImTypeEnum.MESSAGE){ } if(fromUser.getIsAnchor().equals(1)){ // 女神发消息不要钱 diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/InnerUserFilter.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/InnerUserFilter.java new file mode 100644 index 00000000..b804a896 --- /dev/null +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/manager/InnerUserFilter.java @@ -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 systemCustomerService = systemConfigManager.getSystemConfigOfLongSet(SystemConfigEnum.SYSTEM_CUSTOMER_SERVICE); + for (Long u : userId) { + if(systemCustomerService.contains(u)){ + return true; + } + } + return false; + } + + public boolean checkInner(List userId){ + Set systemCustomerService = systemConfigManager.getSystemConfigOfLongSet(SystemConfigEnum.SYSTEM_CUSTOMER_SERVICE); + for (Long u : userId) { + if(systemCustomerService.contains(u)){ + return true; + } + } + return false; + } +} diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UnionUserMapper.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UnionUserMapper.java index 614c83f8..0493d992 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UnionUserMapper.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/mapper/UnionUserMapper.java @@ -3,9 +3,12 @@ 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.UnionUser; +import com.ruoyi.cai.dto.admin.UnionCountDTO; import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 123Mapper接口 * @@ -15,4 +18,6 @@ import org.apache.ibatis.annotations.Param; public interface UnionUserMapper extends BaseMapper { Page pageAdmin(@Param("build") Page build, @Param("bo") UnionUserAdminVo bo); + + List countByUnionIds(@Param("unionIds") List unionIds); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java index f00b6486..08938959 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/DynamicService.java @@ -19,6 +19,10 @@ import java.util.List; */ public interface DynamicService extends IService { + void unTop(Long id); + + void top(Long id); + List selectDynamicImageList(Long userId, Integer limit); Page pageApp(PageQuery pageQuery, DynamicQuery query); diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UnionUserService.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UnionUserService.java index 0e2c6164..f925e5b3 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UnionUserService.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/UnionUserService.java @@ -3,9 +3,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.UnionUser; +import com.ruoyi.cai.dto.admin.UnionCountDTO; import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo; import com.ruoyi.common.core.domain.PageQuery; +import java.util.List; + /** * 123Service接口 * @@ -17,4 +20,6 @@ public interface UnionUserService extends IService { UnionUser getByUserId(Long userId); Page pageAdmin(PageQuery pageQuery, UnionUserAdminVo bo); + + List countByUnionIds(List unionIds); } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java index 6fb052e9..3d4871b6 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/DynamicServiceImpl.java @@ -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.DynamicListVo; import com.ruoyi.cai.dto.app.vo.DynamicVo; +import com.ruoyi.cai.enums.AuditStatusEnum; import com.ruoyi.cai.enums.SystemConfigEnum; +import com.ruoyi.cai.manager.InnerUserFilter; import com.ruoyi.cai.manager.SystemConfigManager; import com.ruoyi.cai.mapper.DynamicMapper; 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.exception.ServiceException; import com.ruoyi.common.utils.BeanConvertUtil; +import com.ruoyi.common.utils.StringUtils; import lombok.RequiredArgsConstructor; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -53,6 +58,22 @@ public class DynamicServiceImpl extends ServiceImpl impl private SystemConfigManager systemConfigManager; @Autowired 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 public List selectDynamicImageList(Long userId, Integer limit) { @@ -61,6 +82,7 @@ public class DynamicServiceImpl extends ServiceImpl impl @Override public Page pageApp(PageQuery pageQuery, DynamicQuery query) { + // 1=最新(默认) 2=关注 3=同城 Page page = baseMapper.pageApp(pageQuery.build(),query); List records = page.getRecords(); List dynamicIds = records.stream().filter(i -> i.getIsAttach() == 1).map(DynamicVo::getId).collect(Collectors.toList()); @@ -79,6 +101,9 @@ public class DynamicServiceImpl extends ServiceImpl impl @Override 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){ throw new ServiceException("最多只能发送9张照片哦"); } @@ -86,11 +111,17 @@ public class DynamicServiceImpl extends ServiceImpl impl if(user.getSendDynamic() == 0){ throw new ServiceException("您已被禁止发送动态"); } - Integer maxNum = systemConfigManager.getSystemConfigOfInt(SystemConfigEnum.DAY_MAX_DYNAMIC); - if(maxNum > 0){ - int alreadySendNum = dynamicTotalCache.get(res.getUserId()); - if(alreadySendNum > maxNum){ - throw new ServiceException("每天最大可发送"+maxNum+"条动态"); + if(user.getIsAnchor() == null || user.getIsAnchor() != 1){ + throw new ServiceException("只有主播可以发布动态哦"); + } + boolean inner = innerUserFilter.checkInner(res.getUserId()); + 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); @@ -105,19 +136,23 @@ public class DynamicServiceImpl extends ServiceImpl impl }else{ dynamic.setIsAttach(0); } + dynamic.setAuditStatus(inner ? AuditStatusEnum.SUCCESS.getCode() : AuditStatusEnum.AUDITING.getCode()); this.save(dynamic); - List imageList = res.getImageList(); + List dynamicImages = new ArrayList<>(); + List imageList = res.getImageList(); if(CollectionUtil.isNotEmpty(imageList)){ - for (DynamicImageVo imageVo : imageList) { + for (DynamicAddReq.DynamicImageAddReq imageVo : imageList) { CaiFileUtils.FileSize fileSize = CaiFileUtils.getFileSize(imageVo.getUrl()); - imageVo.setHeight(fileSize.getHeight()); - imageVo.setWidth(fileSize.getWidth()); - imageVo.setExts(fileSize.getSuffix()); - imageVo.setDynamicId(dynamic.getId()); - imageVo.setUserId(dynamic.getUserId()); - imageVo.setId(null); + DynamicImages po = new DynamicImages(); + po.setUserId(dynamic.getUserId()); + po.setDynamicId(dynamic.getId()); + po.setUrl(imageVo.getUrl()); + po.setWidth(fileSize.getWidth()); + po.setHeight(fileSize.getHeight()); + po.setExts(fileSize.getSuffix()); + dynamicImages.add(po); } - dynamicImagesService.saveBatch(BeanConvertUtil.convertListTo(imageList, DynamicImages::new)); + dynamicImagesService.saveBatch(dynamicImages); } } diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java index 1e91d52d..73196cfd 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionServiceImpl.java @@ -1,9 +1,11 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 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.*; +import com.ruoyi.cai.dto.admin.UnionCountDTO; import com.ruoyi.cai.dto.admin.vo.UnionAdminVo; import com.ruoyi.cai.enums.SystemConfigEnum; 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.transaction.annotation.Transactional; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + /** * 工会列表Service业务层处理 * @@ -35,7 +42,25 @@ public class UnionServiceImpl extends ServiceImpl implements @Override public Page pageAdmin(PageQuery pageQuery, UnionAdminVo bo) { - return baseMapper.pageAdmin(pageQuery.build(),bo); + Page page = baseMapper.pageAdmin(pageQuery.build(), bo); + List records = page.getRecords(); + if(CollectionUtils.isEmpty(records)){ + return page; + } + List unionIds = records.stream().map(Union::getId).collect(Collectors.toList()); + List dtos = unionUserService.countByUnionIds(unionIds); + if(dtos == null){ + return page; + } + Map 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 diff --git a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionUserServiceImpl.java b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionUserServiceImpl.java index d9bfc63b..860bb0c1 100644 --- a/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionUserServiceImpl.java +++ b/ruoyi-cai/src/main/java/com/ruoyi/cai/service/impl/UnionUserServiceImpl.java @@ -1,15 +1,19 @@ package com.ruoyi.cai.service.impl; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; 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.UnionUser; +import com.ruoyi.cai.dto.admin.UnionCountDTO; import com.ruoyi.cai.dto.admin.vo.UnionUserAdminVo; import com.ruoyi.cai.mapper.UnionUserMapper; import com.ruoyi.cai.service.UnionUserService; import com.ruoyi.common.core.domain.PageQuery; import org.springframework.stereotype.Service; +import java.util.List; + /** * 123Service业务层处理 * @@ -30,4 +34,12 @@ public class UnionUserServiceImpl extends ServiceImpl pageAdmin(PageQuery pageQuery, UnionUserAdminVo bo) { return baseMapper.pageAdmin(pageQuery.build(),bo); } + + @Override + public List countByUnionIds(List unionIds) { + if(CollectionUtils.isEmpty(unionIds)){ + return null; + } + return baseMapper.countByUnionIds(unionIds); + } } diff --git a/ruoyi-cai/src/main/resources/mapper/cai/DynamicMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/DynamicMapper.xml index 5cbc0a78..2e0af9c6 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/DynamicMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/DynamicMapper.xml @@ -30,7 +30,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and t1.city_id = #{query.cityId} - order by t1.create_time desc + + order by t1.sort desc, t1.create_time desc + + + order by t1.create_time desc + diff --git a/ruoyi-cai/src/main/resources/mapper/cai/UnionUserMapper.xml b/ruoyi-cai/src/main/resources/mapper/cai/UnionUserMapper.xml index ece55c6e..7b295565 100644 --- a/ruoyi-cai/src/main/resources/mapper/cai/UnionUserMapper.xml +++ b/ruoyi-cai/src/main/resources/mapper/cai/UnionUserMapper.xml @@ -22,6 +22,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by t1.create_time +