公会-运营负责人-调整业务模型
This commit is contained in:
@@ -22,8 +22,6 @@ public class GuildOperatorAdminVo {
|
|||||||
private List<Integer> regionIds;
|
private List<Integer> regionIds;
|
||||||
@ApiModelProperty("地区映射字典")
|
@ApiModelProperty("地区映射字典")
|
||||||
private Map<Integer, String> regionMap;
|
private Map<Integer, String> regionMap;
|
||||||
@ApiModelProperty("是否启用")
|
|
||||||
private Boolean enable;
|
|
||||||
@ApiModelProperty("更新时间")
|
@ApiModelProperty("更新时间")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
@ApiModelProperty("后台操作人id")
|
@ApiModelProperty("后台操作人id")
|
||||||
|
@@ -0,0 +1,38 @@
|
|||||||
|
package com.accompany.admin.vo.guild;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class GuildOperatorHistoryAdminVo {
|
||||||
|
|
||||||
|
@ApiModelProperty("id")
|
||||||
|
private Integer id;
|
||||||
|
@ApiModelProperty("分区id")
|
||||||
|
private Integer partitionId;
|
||||||
|
@ApiModelProperty("分区描述")
|
||||||
|
private String partitionDesc;
|
||||||
|
@ApiModelProperty("公会id")
|
||||||
|
private Integer guildId;
|
||||||
|
@ApiModelProperty("公会昵称")
|
||||||
|
private String guildName;
|
||||||
|
@ApiModelProperty("原负责人id")
|
||||||
|
private Integer oldOperatorId;
|
||||||
|
@ApiModelProperty("原负责人名称")
|
||||||
|
private String oldOperatorName;
|
||||||
|
@ApiModelProperty("新负责人id")
|
||||||
|
private Integer newOperatorId;
|
||||||
|
@ApiModelProperty("新负责人名称")
|
||||||
|
private String newOperatorName;
|
||||||
|
@ApiModelProperty("更新时间")
|
||||||
|
private String updateTime;
|
||||||
|
@ApiModelProperty("后台操作人id")
|
||||||
|
private Integer adminId;
|
||||||
|
@ApiModelProperty("后台操作人名称")
|
||||||
|
private String adminName;
|
||||||
|
|
||||||
|
}
|
@@ -1,10 +0,0 @@
|
|||||||
package com.accompany.admin.mapper.guild;
|
|
||||||
|
|
||||||
import com.accompany.admin.model.guild.GuildOperatorRef;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
@Mapper
|
|
||||||
public interface GuildOperatorRefMapper extends BaseMapper<GuildOperatorRef> {
|
|
||||||
// You can add custom SQL methods here if needed
|
|
||||||
}
|
|
@@ -231,7 +231,7 @@ public class GuildApplyAdminService {
|
|||||||
applyServiceById.setAdminId(admindId);
|
applyServiceById.setAdminId(admindId);
|
||||||
boolean b = guildApplyService.updateById(applyServiceById);
|
boolean b = guildApplyService.updateById(applyServiceById);
|
||||||
if (b) {
|
if (b) {
|
||||||
Integer guildId = guildManageAdminService.addGuildInfo(users, applyServiceById.getApplyTime(), admindId, null, null, applyServiceById.getInviteUid(), applyServiceById);
|
Integer guildId = guildManageAdminService.addGuildInfo(users, applyServiceById.getApplyTime(), admindId, null, null, applyServiceById.getInviteUid(), applyServiceById, null);
|
||||||
applyServiceById.setGuildId(guildId);
|
applyServiceById.setGuildId(guildId);
|
||||||
guildApplyService.updateById(applyServiceById);
|
guildApplyService.updateById(applyServiceById);
|
||||||
String rejectSys = I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_APPLY_PASS, users.getPartitionId());
|
String rejectSys = I18NMessageSourceUtil.getMessage(I18nAlertEnum.GUILD_APPLY_PASS, users.getPartitionId());
|
||||||
|
@@ -2,8 +2,8 @@ package com.accompany.admin.service.guild;
|
|||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.accompany.admin.model.AdminUser;
|
import com.accompany.admin.model.AdminUser;
|
||||||
import com.accompany.admin.model.guild.GuildOperator;
|
import com.accompany.business.model.guild.GuildOperator;
|
||||||
import com.accompany.admin.model.guild.GuildOperatorRef;
|
import com.accompany.business.model.guild.GuildOperatorHistory;
|
||||||
import com.accompany.admin.service.system.AdminUserService;
|
import com.accompany.admin.service.system.AdminUserService;
|
||||||
import com.accompany.admin.vo.guild.GuildAdminVo;
|
import com.accompany.admin.vo.guild.GuildAdminVo;
|
||||||
import com.accompany.admin.vo.guild.GuildMemberAdminVo;
|
import com.accompany.admin.vo.guild.GuildMemberAdminVo;
|
||||||
@@ -82,7 +82,7 @@ public class GuildManageAdminService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private GuildManagerService guildManagerService;
|
private GuildManagerService guildManagerService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private GuildOperatorRefAdminService guildOperatorRefAdminService;
|
private GuildOperatorHistoryAdminService guildOperatorHistoryAdminService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private GuildOperatorAdminService guildOperatorAdminService;
|
private GuildOperatorAdminService guildOperatorAdminService;
|
||||||
|
|
||||||
@@ -112,15 +112,15 @@ public class GuildManageAdminService {
|
|||||||
inviteUid = inviteUser.getUid();
|
inviteUid = inviteUser.getUid();
|
||||||
}
|
}
|
||||||
if (null != operatorId){
|
if (null != operatorId){
|
||||||
guildOperatorRefAdminService.validGuildRef(u, operatorId);
|
guildOperatorAdminService.validGuildRef(u, operatorId);
|
||||||
}
|
}
|
||||||
if (null != guildMemberService.getVaildGuildMemberByUid(u.getUid())){
|
if (null != guildMemberService.getVaildGuildMemberByUid(u.getUid())){
|
||||||
throw new AdminServiceException(BusiStatus.FAMILY_MEMBER_ALREADY_IN_OTHER_FAMILY);
|
throw new AdminServiceException(BusiStatus.FAMILY_MEMBER_ALREADY_IN_OTHER_FAMILY);
|
||||||
}
|
}
|
||||||
|
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
int guildId = addGuildInfo(u, now, adminId, guildContactType, guildContact, inviteUid,null);
|
int guildId = addGuildInfo(u, now, adminId, guildContactType, guildContact, inviteUid,null, operatorId);
|
||||||
guildOperatorRefAdminService.addGuildRef(guildId, operatorId, adminId);
|
guildOperatorHistoryAdminService.addGuildRef(guildId, u.getPartitionId(), operatorId, adminId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -132,11 +132,12 @@ public class GuildManageAdminService {
|
|||||||
* @param guildContactType
|
* @param guildContactType
|
||||||
* @param guildContact
|
* @param guildContact
|
||||||
* @param guildApply
|
* @param guildApply
|
||||||
|
* @param operatorId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Integer addGuildInfo(Users u, Date now, Integer adminId,
|
public Integer addGuildInfo(Users u, Date now, Integer adminId,
|
||||||
String guildContactType, String guildContact,
|
String guildContactType, String guildContact,
|
||||||
Long inviteUid, GuildApply guildApply) {
|
Long inviteUid, GuildApply guildApply, Integer operatorId) {
|
||||||
Guild guild = new Guild();
|
Guild guild = new Guild();
|
||||||
guild.setPartitionId(u.getPartitionId());
|
guild.setPartitionId(u.getPartitionId());
|
||||||
guild.setOwnerUid(u.getUid());
|
guild.setOwnerUid(u.getUid());
|
||||||
@@ -162,6 +163,7 @@ public class GuildManageAdminService {
|
|||||||
GuildConstant.DefaultInfo.DEFAULT_NAME_SUFFIX, u.getPartitionId()));
|
GuildConstant.DefaultInfo.DEFAULT_NAME_SUFFIX, u.getPartitionId()));
|
||||||
guild.setAvatar(u.getAvatar());
|
guild.setAvatar(u.getAvatar());
|
||||||
}
|
}
|
||||||
|
guild.setOperatorId(operatorId);
|
||||||
|
|
||||||
guildService.save(guild);
|
guildService.save(guild);
|
||||||
|
|
||||||
@@ -219,6 +221,7 @@ public class GuildManageAdminService {
|
|||||||
.set(StringUtils.isNotBlank(guildContact), Guild::getGuildContact, guildContact)
|
.set(StringUtils.isNotBlank(guildContact), Guild::getGuildContact, guildContact)
|
||||||
.set(inviteUid != null, Guild::getInviteUid, inviteUid)
|
.set(inviteUid != null, Guild::getInviteUid, inviteUid)
|
||||||
.set(null != memberNumLimit, Guild::getMemberNumLimit, memberNumLimit)
|
.set(null != memberNumLimit, Guild::getMemberNumLimit, memberNumLimit)
|
||||||
|
.set(Guild::getOperatorId, operatorId)
|
||||||
.update();
|
.update();
|
||||||
|
|
||||||
boolean avatarUpdate = !guild.getAvatar().equals(avatar);
|
boolean avatarUpdate = !guild.getAvatar().equals(avatar);
|
||||||
@@ -228,7 +231,10 @@ public class GuildManageAdminService {
|
|||||||
|
|
||||||
uploadAvatarService.delReviewAvatar(RedisKey.guild_avatar_under_review.getKey(), guild.getOwnerUid().toString());
|
uploadAvatarService.delReviewAvatar(RedisKey.guild_avatar_under_review.getKey(), guild.getOwnerUid().toString());
|
||||||
|
|
||||||
guildOperatorRefAdminService.updateOperatorRef(guild.getId(), operatorId, adminId);
|
if (null != guild.getOperatorId() && guild.getOperatorId().equals(operatorId)){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
guildOperatorHistoryAdminService.addGuildRef(guild.getId(), guild.getOperatorId(), operatorId, adminId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Long bdBound(Guild guild, Long inviteErbanNo) {
|
private Long bdBound(Guild guild, Long inviteErbanNo) {
|
||||||
@@ -342,10 +348,10 @@ public class GuildManageAdminService {
|
|||||||
|
|
||||||
Map<Integer, String> partitionNameMap = partitionInfoService.listAll().stream().collect(Collectors.toMap(PartitionInfo::getId, PartitionInfo::getDesc));
|
Map<Integer, String> partitionNameMap = partitionInfoService.listAll().stream().collect(Collectors.toMap(PartitionInfo::getId, PartitionInfo::getDesc));
|
||||||
Map<Integer, String> regionNameMap = regionInfoService.getRegionName();
|
Map<Integer, String> regionNameMap = regionInfoService.getRegionName();
|
||||||
Map<Integer, Integer> guildOperatorIdMap = guildOperatorRefAdminService.listByGuildId(guildIdList).stream()
|
|
||||||
.collect(Collectors.toMap(GuildOperatorRef::getGuildId, GuildOperatorRef::getOperatorId));
|
List<Integer> operatorIdList = poList.stream().map(Guild::getOperatorId).distinct().toList();
|
||||||
Map<Integer, String> guildOperatorNameMap = guildOperatorAdminService.list().stream()
|
Map<Integer, String> guildOperatorNameMap = !CollectionUtils.isEmpty(operatorIdList)? guildOperatorAdminService.listByOperatorId(operatorIdList).stream()
|
||||||
.collect(Collectors.toMap(GuildOperator::getId, GuildOperator::getName));
|
.collect(Collectors.toMap(GuildOperator::getId, GuildOperator::getName)) : Collections.emptyMap();
|
||||||
|
|
||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
for (Guild guild: poList){
|
for (Guild guild: poList){
|
||||||
@@ -387,10 +393,9 @@ public class GuildManageAdminService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer operatorId = guildOperatorIdMap.get(guild.getId());
|
vo.setGuildOperatorId(guild.getOperatorId());
|
||||||
if (null != operatorId){
|
if (null != guild.getOperatorId()){
|
||||||
vo.setGuildOperatorId(operatorId);
|
vo.setGuildOperatorName(guildOperatorNameMap.get(guild.getOperatorId()));
|
||||||
vo.setGuildOperatorName(guildOperatorNameMap.get(operatorId));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
voList.add(vo);
|
voList.add(vo);
|
||||||
|
@@ -1,15 +1,19 @@
|
|||||||
package com.accompany.admin.service.guild;
|
package com.accompany.admin.service.guild;
|
||||||
|
|
||||||
import com.accompany.admin.mapper.guild.GuildOperatorMapper;
|
import com.accompany.business.model.guild.GuildOperator;
|
||||||
import com.accompany.admin.model.guild.GuildOperator;
|
|
||||||
import com.accompany.admin.service.RegionInfoAdminService;
|
import com.accompany.admin.service.RegionInfoAdminService;
|
||||||
import com.accompany.admin.service.system.AdminUserService;
|
import com.accompany.admin.service.system.AdminUserService;
|
||||||
import com.accompany.admin.vo.guild.GuildOperatorAdminVo;
|
import com.accompany.admin.vo.guild.GuildOperatorAdminVo;
|
||||||
|
import com.accompany.business.param.BasePageParams;
|
||||||
|
import com.accompany.business.service.guild.GuildOperatorService;
|
||||||
|
import com.accompany.core.exception.AdminServiceException;
|
||||||
import com.accompany.core.model.PartitionInfo;
|
import com.accompany.core.model.PartitionInfo;
|
||||||
|
import com.accompany.core.model.Users;
|
||||||
import com.accompany.core.service.partition.PartitionInfoService;
|
import com.accompany.core.service.partition.PartitionInfoService;
|
||||||
import com.accompany.core.service.region.RegionInfoService;
|
|
||||||
import com.accompany.core.vo.RegionInfoVo;
|
import com.accompany.core.vo.RegionInfoVo;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
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 org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
@@ -20,8 +24,10 @@ import java.util.Map;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class GuildOperatorAdminService extends ServiceImpl<GuildOperatorMapper, GuildOperator> {
|
public class GuildOperatorAdminService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private GuildOperatorService guildOperatorService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private PartitionInfoService partitionInfoService;
|
private PartitionInfoService partitionInfoService;
|
||||||
@Autowired
|
@Autowired
|
||||||
@@ -29,8 +35,31 @@ public class GuildOperatorAdminService extends ServiceImpl<GuildOperatorMapper,
|
|||||||
@Autowired
|
@Autowired
|
||||||
private AdminUserService adminUserService;
|
private AdminUserService adminUserService;
|
||||||
|
|
||||||
|
public GuildOperator getById(Integer id){
|
||||||
|
return guildOperatorService.getById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void validGuildRef(Users owner, Integer operatorId) {
|
||||||
|
GuildOperator guildOperator = guildOperatorService.getById(operatorId);
|
||||||
|
if (null == guildOperator){
|
||||||
|
String tip = String.format("找不到id为%d的公会运营负责人", operatorId);
|
||||||
|
throw new AdminServiceException(tip);
|
||||||
|
} else if (!guildOperator.getPartitionId().equals(owner.getPartitionId())) {
|
||||||
|
String tip = String.format("id为%d的公会运营负责人与公会长不在同一个分区", operatorId);
|
||||||
|
throw new AdminServiceException(tip);
|
||||||
|
} else if (CollectionUtils.isEmpty(guildOperator.getRegionIds()) || null == owner.getRegionId()
|
||||||
|
|| !guildOperator.getRegionIds().contains(owner.getRegionId())) {
|
||||||
|
String tip = String.format("id为%d的公会运营负责人与公会长不在同一个国家/地区", operatorId);
|
||||||
|
throw new AdminServiceException(tip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GuildOperator> listByOperatorId(List<Integer> operatorIdList){
|
||||||
|
return guildOperatorService.lambdaQuery().in(GuildOperator::getId, operatorIdList).list();
|
||||||
|
}
|
||||||
|
|
||||||
public List<GuildOperatorAdminVo> listAll(){
|
public List<GuildOperatorAdminVo> listAll(){
|
||||||
List<GuildOperator> list = lambdaQuery().eq(GuildOperator::getEnable, true).list();
|
List<GuildOperator> list = guildOperatorService.listAll();
|
||||||
if (CollectionUtils.isEmpty(list)){
|
if (CollectionUtils.isEmpty(list)){
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
@@ -49,7 +78,6 @@ public class GuildOperatorAdminService extends ServiceImpl<GuildOperatorMapper,
|
|||||||
vo.setPartitionDesc(partitionDescMap.get(item.getPartitionId()));
|
vo.setPartitionDesc(partitionDescMap.get(item.getPartitionId()));
|
||||||
vo.setRegionIds(item.getRegionIds());
|
vo.setRegionIds(item.getRegionIds());
|
||||||
vo.setRegionMap(item.getRegionIds().stream().collect(Collectors.toMap(v -> v, regionDescMap::get)));
|
vo.setRegionMap(item.getRegionIds().stream().collect(Collectors.toMap(v -> v, regionDescMap::get)));
|
||||||
vo.setEnable(item.getEnable());
|
|
||||||
vo.setPartitionId(item.getPartitionId());
|
vo.setPartitionId(item.getPartitionId());
|
||||||
vo.setAdminName(adminUserMap.get(item.getAdminId()));
|
vo.setAdminName(adminUserMap.get(item.getAdminId()));
|
||||||
return vo;
|
return vo;
|
||||||
@@ -57,4 +85,14 @@ public class GuildOperatorAdminService extends ServiceImpl<GuildOperatorMapper,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Page<GuildOperator> page(BasePageParams pageParams) {
|
||||||
|
Page<GuildOperator> page = new Page<>(pageParams.getPageNo(), pageParams.getPageSize());
|
||||||
|
Wrapper<GuildOperator> wrapper = Wrappers.<GuildOperator>lambdaQuery().orderByDesc(GuildOperator::getId);
|
||||||
|
guildOperatorService.page(page, wrapper);
|
||||||
|
return page;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void saveOrUpdate(GuildOperator guildOperator) {
|
||||||
|
guildOperatorService.saveOrUpdate(guildOperator);
|
||||||
|
}
|
||||||
}
|
}
|
@@ -0,0 +1,108 @@
|
|||||||
|
package com.accompany.admin.service.guild;
|
||||||
|
|
||||||
|
import com.accompany.admin.service.system.AdminUserService;
|
||||||
|
import com.accompany.admin.vo.guild.GuildOperatorHistoryAdminVo;
|
||||||
|
import com.accompany.business.model.guild.Guild;
|
||||||
|
import com.accompany.business.model.guild.GuildOperator;
|
||||||
|
import com.accompany.business.mybatismapper.guild.GuildOperatorHistoryMapper;
|
||||||
|
import com.accompany.business.model.guild.GuildOperatorHistory;
|
||||||
|
import com.accompany.business.param.BasePageParams;
|
||||||
|
import com.accompany.business.service.guild.GuildOperatorService;
|
||||||
|
import com.accompany.business.service.guild.GuildService;
|
||||||
|
import com.accompany.common.utils.DateTimeUtil;
|
||||||
|
import com.accompany.core.enumeration.PartitionEnum;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
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 org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class GuildOperatorHistoryAdminService extends ServiceImpl<GuildOperatorHistoryMapper, GuildOperatorHistory> {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private GuildService guildService;
|
||||||
|
@Autowired
|
||||||
|
private GuildOperatorService guildOperatorService;
|
||||||
|
@Autowired
|
||||||
|
private AdminUserService adminUserService;
|
||||||
|
|
||||||
|
public void addGuildRef(int guildId, int partitionId, Integer newOperatorId, int adminId) {
|
||||||
|
addGuildRef(guildId, partitionId, null, newOperatorId, adminId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void addGuildRef(int guildId, int partitionId, Integer oldOperatorId, Integer newOperatorId, int adminId) {
|
||||||
|
GuildOperatorHistory ref = new GuildOperatorHistory();
|
||||||
|
ref.setGuildId(guildId);
|
||||||
|
ref.setPartitionId(partitionId);
|
||||||
|
ref.setOldOperatorId(oldOperatorId);
|
||||||
|
ref.setNewOperatorId(newOperatorId);
|
||||||
|
ref.setUpdateTime(new Date());
|
||||||
|
ref.setAdminId(adminId);
|
||||||
|
save(ref);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Page<GuildOperatorHistoryAdminVo> page(Integer partitionId, Integer guildId, BasePageParams pageParam) {
|
||||||
|
Page<GuildOperatorHistoryAdminVo> voPage = new Page<>(pageParam.getPageNo(), pageParam.getPageSize());
|
||||||
|
Page<GuildOperatorHistory> poPage = new Page<>(pageParam.getPageNo(), pageParam.getPageSize());
|
||||||
|
LambdaQueryWrapper<GuildOperatorHistory> queryWrapper = Wrappers.<GuildOperatorHistory>lambdaQuery()
|
||||||
|
.eq(null != guildId, GuildOperatorHistory::getGuildId, guildId)
|
||||||
|
.eq(null != partitionId, GuildOperatorHistory::getPartitionId, partitionId)
|
||||||
|
.orderByDesc(GuildOperatorHistory::getId);
|
||||||
|
page(poPage, queryWrapper);
|
||||||
|
if (CollectionUtils.isEmpty(poPage.getRecords())){
|
||||||
|
return voPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Integer> guildIdList = poPage.getRecords().stream().map(GuildOperatorHistory::getGuildId).distinct().toList();
|
||||||
|
Map<Integer, String> guildNameMap = guildService.listByIds(guildIdList).stream().collect(Collectors.toMap(Guild::getId, Guild::getName));
|
||||||
|
|
||||||
|
Map<Integer, String> operatorNameMap = guildOperatorService.listAll().stream().collect(Collectors.toMap(GuildOperator::getId, GuildOperator::getName));
|
||||||
|
|
||||||
|
Map<Integer, String> adminNameMap = adminUserService.adminUserMap();
|
||||||
|
|
||||||
|
List<GuildOperatorHistoryAdminVo> voList = poPage.getRecords().stream()
|
||||||
|
.map(po -> {
|
||||||
|
GuildOperatorHistoryAdminVo vo = new GuildOperatorHistoryAdminVo();
|
||||||
|
vo.setId(po.getId());
|
||||||
|
|
||||||
|
vo.setPartitionId(po.getPartitionId());
|
||||||
|
vo.setPartitionDesc(PartitionEnum.getByPartitionId(po.getPartitionId()).getDesc());
|
||||||
|
|
||||||
|
vo.setGuildId(po.getGuildId());
|
||||||
|
vo.setGuildName(guildNameMap.get(po.getGuildId()));
|
||||||
|
|
||||||
|
if (null != po.getOldOperatorId()){
|
||||||
|
vo.setOldOperatorId(po.getOldOperatorId());
|
||||||
|
vo.setOldOperatorName(operatorNameMap.get(po.getOldOperatorId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null != po.getNewOperatorId()){
|
||||||
|
vo.setNewOperatorId(po.getNewOperatorId());
|
||||||
|
vo.setNewOperatorName(operatorNameMap.get(po.getNewOperatorId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
vo.setUpdateTime(DateTimeUtil.convertDateTime(po.getUpdateTime()));
|
||||||
|
|
||||||
|
if (null != po.getAdminId()){
|
||||||
|
vo.setAdminId(po.getAdminId());
|
||||||
|
vo.setAdminName(adminNameMap.get(po.getAdminId()));
|
||||||
|
}
|
||||||
|
|
||||||
|
return vo;
|
||||||
|
|
||||||
|
}).toList();
|
||||||
|
voPage.setRecords(voList);
|
||||||
|
voPage.setTotal(poPage.getTotal());
|
||||||
|
return voPage;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,82 +0,0 @@
|
|||||||
package com.accompany.admin.service.guild;
|
|
||||||
|
|
||||||
import com.accompany.admin.mapper.guild.GuildOperatorRefMapper;
|
|
||||||
import com.accompany.admin.model.guild.GuildOperator;
|
|
||||||
import com.accompany.admin.model.guild.GuildOperatorRef;
|
|
||||||
import com.accompany.core.exception.AdminServiceException;
|
|
||||||
import com.accompany.core.model.Users;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.util.CollectionUtils;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Date;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Service
|
|
||||||
public class GuildOperatorRefAdminService extends ServiceImpl<GuildOperatorRefMapper, GuildOperatorRef> {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private GuildOperatorAdminService guildOperatorAdminService;
|
|
||||||
|
|
||||||
public void validGuildRef(Users owner, Integer operatorId) {
|
|
||||||
GuildOperator guildOperator = guildOperatorAdminService.getById(operatorId);
|
|
||||||
if (null == guildOperator){
|
|
||||||
String tip = String.format("找不到id为%d的公会运营负责人", operatorId);
|
|
||||||
throw new AdminServiceException(tip);
|
|
||||||
} else if (!guildOperator.getEnable()){
|
|
||||||
String tip = String.format("id为%d的公会运营负责人已失效", operatorId);
|
|
||||||
throw new AdminServiceException(tip);
|
|
||||||
} else if (!guildOperator.getPartitionId().equals(owner.getPartitionId())) {
|
|
||||||
String tip = String.format("id为%d的公会运营负责人与公会长不在同一个分区", operatorId);
|
|
||||||
throw new AdminServiceException(tip);
|
|
||||||
} else if (CollectionUtils.isEmpty(guildOperator.getRegionIds()) || null == owner.getRegionId()
|
|
||||||
|| !guildOperator.getRegionIds().contains(owner.getRegionId())) {
|
|
||||||
String tip = String.format("id为%d的公会运营负责人与公会长不在同一个国家/地区", operatorId);
|
|
||||||
throw new AdminServiceException(tip);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void addGuildRef(int guildId, Integer operatorId, int adminId) {
|
|
||||||
GuildOperatorRef ref = new GuildOperatorRef();
|
|
||||||
ref.setGuildId(guildId);
|
|
||||||
ref.setOperatorId(operatorId);
|
|
||||||
ref.setEnable(Boolean.TRUE);
|
|
||||||
ref.setUpdateTime(new Date());
|
|
||||||
ref.setAdminId(adminId);
|
|
||||||
save(ref);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void updateOperatorRef(Integer guildId, Integer operatorId, int adminId) {
|
|
||||||
Date updateTime = new Date();
|
|
||||||
List<GuildOperatorRef> guildRefList = lambdaQuery().eq(GuildOperatorRef::getGuildId, guildId)
|
|
||||||
.eq(GuildOperatorRef::getEnable, Boolean.TRUE).list();
|
|
||||||
if (!CollectionUtils.isEmpty(guildRefList)){
|
|
||||||
Optional<GuildOperatorRef> operatorRefOptional = guildRefList.stream().filter(v -> v.getOperatorId().equals(operatorId))
|
|
||||||
.findAny();
|
|
||||||
operatorRefOptional.ifPresent(guildRefList::remove);
|
|
||||||
guildRefList.forEach(r->{
|
|
||||||
r.setEnable(Boolean.FALSE);
|
|
||||||
r.setUpdateTime(updateTime);
|
|
||||||
r.setAdminId(adminId);
|
|
||||||
});
|
|
||||||
updateBatchById(guildRefList);
|
|
||||||
|
|
||||||
if (operatorRefOptional.isPresent()){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (null == operatorId){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
addGuildRef(guildId, operatorId, adminId);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<GuildOperatorRef> listByGuildId(List<Integer> guildIdList) {
|
|
||||||
return lambdaQuery().in(GuildOperatorRef::getGuildId, guildIdList).eq(GuildOperatorRef::getEnable, Boolean.TRUE).list();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@@ -1,7 +1,7 @@
|
|||||||
package com.accompany.admin.controller.guild;
|
package com.accompany.admin.controller.guild;
|
||||||
|
|
||||||
import com.accompany.admin.controller.BaseController;
|
import com.accompany.admin.controller.BaseController;
|
||||||
import com.accompany.admin.model.guild.GuildOperator;
|
import com.accompany.business.model.guild.GuildOperator;
|
||||||
import com.accompany.admin.service.guild.GuildOperatorAdminService;
|
import com.accompany.admin.service.guild.GuildOperatorAdminService;
|
||||||
import com.accompany.admin.vo.guild.GuildOperatorAdminVo;
|
import com.accompany.admin.vo.guild.GuildOperatorAdminVo;
|
||||||
import com.accompany.business.param.BasePageParams;
|
import com.accompany.business.param.BasePageParams;
|
||||||
@@ -39,8 +39,7 @@ public class GuildOperatorAdminController extends BaseController {
|
|||||||
})
|
})
|
||||||
@GetMapping("/page")
|
@GetMapping("/page")
|
||||||
public BusiResult<Page<GuildOperator>> page(BasePageParams pageParam) {
|
public BusiResult<Page<GuildOperator>> page(BasePageParams pageParam) {
|
||||||
Page<GuildOperator> page = new Page<>(pageParam.getPageNo(), pageParam.getPageSize());
|
Page<GuildOperator> page = service.page(pageParam);
|
||||||
service.page(page, null);
|
|
||||||
return BusiResult.success(page);
|
return BusiResult.success(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -0,0 +1,37 @@
|
|||||||
|
package com.accompany.admin.controller.guild;
|
||||||
|
|
||||||
|
import com.accompany.admin.controller.BaseController;
|
||||||
|
import com.accompany.admin.service.guild.GuildOperatorHistoryAdminService;
|
||||||
|
import com.accompany.admin.vo.guild.GuildOperatorHistoryAdminVo;
|
||||||
|
import com.accompany.business.param.BasePageParams;
|
||||||
|
import com.accompany.common.result.BusiResult;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiImplicitParam;
|
||||||
|
import io.swagger.annotations.ApiImplicitParams;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@Api(tags = "公会运营负责人变更记录")
|
||||||
|
@RequestMapping("/admin/guildOperatorHistory")
|
||||||
|
@RestController
|
||||||
|
public class GuildOperatorHistoryAdminController extends BaseController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private GuildOperatorHistoryAdminService service;
|
||||||
|
|
||||||
|
@ApiOperation("分页查询")
|
||||||
|
@ApiImplicitParams({
|
||||||
|
@ApiImplicitParam(name = "partitionId", value = "分区Id"),
|
||||||
|
@ApiImplicitParam(name = "guildId", value = "公会Id"),
|
||||||
|
@ApiImplicitParam(name = "pageNo", value = "页码", required = true),
|
||||||
|
@ApiImplicitParam(name = "pageSize", value = "页长", required = true),
|
||||||
|
})
|
||||||
|
@GetMapping("/page")
|
||||||
|
public BusiResult<Page<GuildOperatorHistoryAdminVo>> page(Integer partitionId, Integer guildId, BasePageParams pageParam) {
|
||||||
|
Page<GuildOperatorHistoryAdminVo> page = service.page(partitionId, guildId, pageParam);
|
||||||
|
return BusiResult.success(page);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -39,4 +39,6 @@ public class Guild {
|
|||||||
* 邀请人证明
|
* 邀请人证明
|
||||||
*/
|
*/
|
||||||
private String inviteCheck;
|
private String inviteCheck;
|
||||||
|
|
||||||
|
private Integer operatorId;
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
package com.accompany.admin.model.guild;
|
package com.accompany.business.model.guild;
|
||||||
|
|
||||||
import com.accompany.core.mybatis.typehandler.IntegerListTypeHandler;
|
import com.accompany.core.mybatis.typehandler.IntegerListTypeHandler;
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
@@ -19,7 +19,6 @@ public class GuildOperator {
|
|||||||
private Integer partitionId;
|
private Integer partitionId;
|
||||||
@TableField(typeHandler = IntegerListTypeHandler.class)
|
@TableField(typeHandler = IntegerListTypeHandler.class)
|
||||||
private List<Integer> regionIds;
|
private List<Integer> regionIds;
|
||||||
private Boolean enable;
|
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
private Integer adminId;
|
private Integer adminId;
|
||||||
|
|
@@ -1,4 +1,4 @@
|
|||||||
package com.accompany.admin.model.guild;
|
package com.accompany.business.model.guild;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
@@ -7,13 +7,14 @@ import lombok.Data;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class GuildOperatorRef {
|
public class GuildOperatorHistory {
|
||||||
|
|
||||||
@TableId(type = IdType.AUTO)
|
@TableId(type = IdType.AUTO)
|
||||||
private Integer id;
|
private Integer id;
|
||||||
private Integer guildId;
|
private Integer guildId;
|
||||||
private Integer operatorId;
|
private Integer partitionId;
|
||||||
private Boolean enable;
|
private Integer oldOperatorId;
|
||||||
|
private Integer newOperatorId;
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
private Integer adminId;
|
private Integer adminId;
|
||||||
|
|
@@ -0,0 +1,10 @@
|
|||||||
|
package com.accompany.business.mybatismapper.guild;
|
||||||
|
|
||||||
|
import com.accompany.business.model.guild.GuildOperatorHistory;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface GuildOperatorHistoryMapper extends BaseMapper<GuildOperatorHistory> {
|
||||||
|
// You can add custom SQL methods here if needed
|
||||||
|
}
|
@@ -1,6 +1,6 @@
|
|||||||
package com.accompany.admin.mapper.guild;
|
package com.accompany.business.mybatismapper.guild;
|
||||||
|
|
||||||
import com.accompany.admin.model.guild.GuildOperator;
|
import com.accompany.business.model.guild.GuildOperator;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
@@ -0,0 +1,24 @@
|
|||||||
|
package com.accompany.business.service.guild;
|
||||||
|
|
||||||
|
import com.accompany.business.model.guild.GuildOperator;
|
||||||
|
import com.accompany.business.mybatismapper.guild.GuildOperatorMapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class GuildOperatorService extends ServiceImpl<GuildOperatorMapper, GuildOperator> {
|
||||||
|
|
||||||
|
public List<GuildOperator> listAll(){
|
||||||
|
return lambdaQuery()
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<GuildOperator> listByPartitionId(Integer partitionId){
|
||||||
|
return lambdaQuery()
|
||||||
|
.eq(GuildOperator::getPartitionId, partitionId)
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@@ -61,6 +61,12 @@ public class GuildService extends ServiceImpl<GuildMapper, Guild> {
|
|||||||
.collect(Collectors.toMap(Guild::getId, family -> family));
|
.collect(Collectors.toMap(Guild::getId, family -> family));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Guild> listGuildByPartitionId(Integer partitionId) {
|
||||||
|
return this.lambdaQuery()
|
||||||
|
.eq(Guild::getPartitionId, partitionId)
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
|
||||||
public List<Guild> listVaildGuildByPartitionId(Integer partitionId) {
|
public List<Guild> listVaildGuildByPartitionId(Integer partitionId) {
|
||||||
return this.baseMapper.listVaildGuildByPartitionId(partitionId);
|
return this.baseMapper.listVaildGuildByPartitionId(partitionId);
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.accompany.admin.mapper.guild.GuildOperatorRefMapper">
|
<mapper namespace="com.accompany.business.mybatismapper.guild.GuildOperatorHistoryMapper">
|
||||||
<!-- You can add custom SQL statements here -->
|
<!-- You can add custom SQL statements here -->
|
||||||
</mapper>
|
</mapper>
|
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.accompany.admin.mapper.guild.GuildOperatorMapper">
|
<mapper namespace="com.accompany.business.mybatismapper.guild.GuildOperatorMapper">
|
||||||
<!-- You can add custom SQL statements here -->
|
<!-- You can add custom SQL statements here -->
|
||||||
</mapper>
|
</mapper>
|
Reference in New Issue
Block a user