init
This commit is contained in:
@@ -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<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);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除主播动态
|
||||
*
|
||||
|
||||
@@ -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<List<DynamicListVo>> page(PageQuery pageQuery, DynamicQuery query){
|
||||
query.setCurrentUserId(LoginHelper.getUserId());
|
||||
Page<DynamicListVo> resp = dynamicService.pageApp(pageQuery,query);
|
||||
return R.ok(resp.getRecords());
|
||||
}
|
||||
|
||||
@@ -40,11 +40,11 @@ public class DynamicImages implements Serializable {
|
||||
/**
|
||||
* 宽度
|
||||
*/
|
||||
private Long width;
|
||||
private Integer width;
|
||||
/**
|
||||
* 高度
|
||||
*/
|
||||
private Long height;
|
||||
private Integer height;
|
||||
/**
|
||||
* 图片大小
|
||||
*/
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -13,6 +13,9 @@ import java.time.LocalDateTime;
|
||||
@Data
|
||||
public class UnionAdminVo extends Union {
|
||||
|
||||
private Integer allNum = 0;
|
||||
private Integer anchorNum = 0;
|
||||
|
||||
/**
|
||||
* 用户号/ID号
|
||||
*/
|
||||
|
||||
@@ -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<DynamicImageVo> imageList;
|
||||
/**
|
||||
* 状态 0 审核中 1可用 2 不可用
|
||||
*/
|
||||
@Schema(hidden = true)
|
||||
private Integer status;
|
||||
/**
|
||||
* 排序字段
|
||||
*/
|
||||
@Schema(hidden = true)
|
||||
private Long sort;
|
||||
@Schema(hidden = true)
|
||||
private LocalDateTime createTime;
|
||||
private List<DynamicImageAddReq> imageList;
|
||||
|
||||
|
||||
@Data
|
||||
@Schema(description = "动态照片上传")
|
||||
public static class DynamicImageAddReq {
|
||||
@Schema(description = "照片")
|
||||
private String url;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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),
|
||||
;
|
||||
|
||||
|
||||
@@ -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<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);
|
||||
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)){ // 女神发消息不要钱
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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<UnionUser> {
|
||||
|
||||
Page<UnionUserAdminVo> pageAdmin(@Param("build") Page<Object> build, @Param("bo") UnionUserAdminVo bo);
|
||||
|
||||
List<UnionCountDTO> countByUnionIds(@Param("unionIds") List<Long> unionIds);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,10 @@ import java.util.List;
|
||||
*/
|
||||
public interface DynamicService extends IService<Dynamic> {
|
||||
|
||||
void unTop(Long id);
|
||||
|
||||
void top(Long id);
|
||||
|
||||
List<String> selectDynamicImageList(Long userId, Integer limit);
|
||||
|
||||
Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query);
|
||||
|
||||
@@ -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> {
|
||||
UnionUser getByUserId(Long userId);
|
||||
|
||||
Page<UnionUserAdminVo> pageAdmin(PageQuery pageQuery, UnionUserAdminVo bo);
|
||||
|
||||
List<UnionCountDTO> countByUnionIds(List<Long> unionIds);
|
||||
}
|
||||
|
||||
@@ -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<DynamicMapper, Dynamic> 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<String> selectDynamicImageList(Long userId, Integer limit) {
|
||||
@@ -61,6 +82,7 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> impl
|
||||
|
||||
@Override
|
||||
public Page<DynamicListVo> pageApp(PageQuery pageQuery, DynamicQuery query) {
|
||||
// 1=最新(默认) 2=关注 3=同城
|
||||
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());
|
||||
@@ -79,6 +101,9 @@ public class DynamicServiceImpl extends ServiceImpl<DynamicMapper, Dynamic> 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<DynamicMapper, Dynamic> 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<DynamicMapper, Dynamic> impl
|
||||
}else{
|
||||
dynamic.setIsAttach(0);
|
||||
}
|
||||
dynamic.setAuditStatus(inner ? AuditStatusEnum.SUCCESS.getCode() : AuditStatusEnum.AUDITING.getCode());
|
||||
this.save(dynamic);
|
||||
List<DynamicImageVo> imageList = res.getImageList();
|
||||
List<DynamicImages> dynamicImages = new ArrayList<>();
|
||||
List<DynamicAddReq.DynamicImageAddReq> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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<UnionMapper, Union> implements
|
||||
|
||||
@Override
|
||||
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
|
||||
|
||||
@@ -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<UnionUserMapper, UnionUser
|
||||
public Page<UnionUserAdminVo> pageAdmin(PageQuery pageQuery, UnionUserAdminVo 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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
<if test="query.type != null and query.type == 3">
|
||||
and t1.city_id = #{query.cityId}
|
||||
</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 id="selectDynamicImageList" resultType="java.lang.String">
|
||||
select t2.url
|
||||
@@ -54,7 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
and t1.audit_status = #{bo.auditStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by t1.create_time desc
|
||||
order by t1.sort desc, t1.create_time desc
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
@@ -22,6 +22,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</where>
|
||||
order by t1.create_time
|
||||
</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>
|
||||
|
||||
Reference in New Issue
Block a user