@@ -19,9 +19,16 @@ public class GuildAdminVo {
|
||||
@ApiModelProperty("公会长昵称")
|
||||
@ExcelProperty("公会长昵称")
|
||||
private String ownerNick;
|
||||
@ExcelIgnore
|
||||
private Integer partitionId;
|
||||
@ApiModelProperty("公会长分区")
|
||||
@ExcelProperty("公会长分区")
|
||||
private String ownerPartitionName;
|
||||
@ExcelIgnore
|
||||
private Integer regionId;
|
||||
@ApiModelProperty("公会地区")
|
||||
@ExcelProperty("公会地区")
|
||||
private String regionName;
|
||||
@ApiModelProperty("公会长地区")
|
||||
@ExcelProperty("公会长地区")
|
||||
private String ownerRegionName;
|
||||
|
@@ -169,7 +169,7 @@ public class GuildManageAdminService {
|
||||
guild.setAvatar(u.getAvatar());
|
||||
}
|
||||
guild.setOperatorId(operatorId);
|
||||
|
||||
guild.setRegionId(u.getRegionId());
|
||||
guildService.save(guild);
|
||||
|
||||
applicationContext.publishEvent(new NewGuildEvent(new NewGuildMessage(u.getPartitionId(), guild.getId(), u.getUid(), now)));
|
||||
@@ -197,7 +197,7 @@ public class GuildManageAdminService {
|
||||
public void updateGuild(Integer id, String name,
|
||||
String avatar, String backgroundUrl, Integer memberNumLimit,
|
||||
String guildContactType, String guildContact, Long inviteErbanNo,
|
||||
int adminId, Integer operatorId){
|
||||
int adminId, Integer operatorId, Integer regionId){
|
||||
if (null != memberNumLimit && 1 >= memberNumLimit){
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
@@ -225,6 +225,7 @@ public class GuildManageAdminService {
|
||||
.set(StringUtils.isNotBlank(guildContactType), Guild::getGuildContactType, guildContactType)
|
||||
.set(StringUtils.isNotBlank(guildContact), Guild::getGuildContact, guildContact)
|
||||
.set(inviteUid != null, Guild::getInviteUid, inviteUid)
|
||||
.set(regionId != null, Guild::getRegionId, regionId)
|
||||
.set(null != memberNumLimit, Guild::getMemberNumLimit, memberNumLimit)
|
||||
.set(Guild::getOperatorId, operatorId)
|
||||
.update();
|
||||
@@ -301,11 +302,6 @@ public class GuildManageAdminService {
|
||||
regionGuildIdSet.add(guildId);
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<Guild> queryWrapper = Wrappers.<Guild>lambdaQuery()
|
||||
.in(!CollectionUtils.isEmpty(regionGuildIdSet), Guild::getId, regionGuildIdSet)
|
||||
.eq(Guild::getPartitionId, partitionId)
|
||||
.orderByDesc(Guild::getEnable, Guild::getId);
|
||||
|
||||
Long ownerUid = null;
|
||||
if (null != erbanNo){
|
||||
Users u = usersService.getUserByErbanNo(erbanNo);
|
||||
@@ -394,7 +390,12 @@ public class GuildManageAdminService {
|
||||
vo.setOwnerErbanNo(u.getErbanNo());
|
||||
vo.setOwnerNick(u.getNick());
|
||||
vo.setOwnerPartitionName(partitionNameMap.get(u.getPartitionId()));
|
||||
vo.setOwnerRegionName(regionNameMap.get(u.getRegionId()));
|
||||
vo.setOwnerRegionName(regionNameMap.get(guild.getRegionId()));
|
||||
}
|
||||
vo.setPartitionId(guild.getPartitionId());
|
||||
vo.setRegionId(guild.getRegionId());
|
||||
if (guild.getRegionId() != null) {
|
||||
vo.setRegionName(regionNameMap.get(guild.getRegionId()));
|
||||
}
|
||||
|
||||
vo.setMemberNum(memberNumMap.getOrDefault(guild.getId(), 0L));
|
||||
|
@@ -75,12 +75,12 @@ public class GuildManageAdminController extends BaseController {
|
||||
public BusiResult<Void> updateGuild(Integer id, String name,
|
||||
String avatar, String backgroundUrl, Integer memberNumLimit,
|
||||
String guildContactType, String guildContact, Long inviteErbanNo,
|
||||
Integer operatorId){
|
||||
Integer operatorId, Integer regionId){
|
||||
if (null == id || null == memberNumLimit){
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
Integer adminId = getAdminId();
|
||||
service.updateGuild(id, name, avatar, backgroundUrl, memberNumLimit, guildContactType, guildContact, inviteErbanNo, adminId, operatorId);
|
||||
service.updateGuild(id, name, avatar, backgroundUrl, memberNumLimit, guildContactType, guildContact, inviteErbanNo, adminId, operatorId, regionId);
|
||||
adminLogService.insertLog(adminId,getClass().getCanonicalName(),
|
||||
"update guild","params===>>id:"+id+",name:"+name+",backgroundUrl:"+backgroundUrl+",memberNumLimit:"+memberNumLimit);
|
||||
return BusiResult.success();
|
||||
|
@@ -1392,6 +1392,8 @@ public class Constant {
|
||||
public static final String GAME_USD_TO_RECHARGE_USER_LIMIT = "game_usd_to_recharge_user_limit";
|
||||
|
||||
public static final String MINI_GAME_SUD_LUDO_CONFIG = "mini_game_sud_ludo_config";
|
||||
|
||||
public static final String GUILD_USD_PROD_TAB_SHOW_CONFIG = "guild_usd_prod_tab_show_config";
|
||||
}
|
||||
|
||||
public static class WithDrawStatus {
|
||||
|
@@ -41,4 +41,6 @@ public class Guild {
|
||||
private String inviteCheck;
|
||||
|
||||
private Integer operatorId;
|
||||
|
||||
private Integer regionId;
|
||||
}
|
||||
|
@@ -0,0 +1,22 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
public class GuildUsdProdTabShowConfigVo {
|
||||
private String tabKey;
|
||||
private Integer type;
|
||||
private List<Integer> limitRegionIds;
|
||||
|
||||
private Map<Integer, List<GuildUsdProdTabShowConfigVo>> partitionMap = new HashMap<>();
|
||||
|
||||
|
||||
public List<GuildUsdProdTabShowConfigVo> getByPartitionId(int partitionId) {
|
||||
return partitionMap.getOrDefault(partitionId, Collections.emptyList());
|
||||
}
|
||||
}
|
@@ -14,23 +14,26 @@ import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import com.accompany.payment.service.RechargeUserService;
|
||||
import com.accompany.payment.vo.RechargeUserVo;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.accompany.common.constant.Constant.SysConfId.GUILD_USD_PROD_TAB_SHOW_CONFIG;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class GuildUsdChannelService {
|
||||
@@ -57,6 +60,8 @@ public class GuildUsdChannelService {
|
||||
private GuildUsdWithdrawAccountService guildUsdWithdrawAccountService;
|
||||
@Autowired
|
||||
private GuildUsdToRechargeUserLimitService guildUsdToRechargeUserLimitService;
|
||||
@Autowired
|
||||
private SysConfService sysConfService;
|
||||
|
||||
public GuildMemberDiamondWithdrawVo getDiamondWithDrawVo(Long uid) {
|
||||
GuildMember guildMember = guildMemberService.getVaildGuildMemberByUid(uid);
|
||||
@@ -86,6 +91,9 @@ public class GuildUsdChannelService {
|
||||
vo.setGuildId(guild.getId());
|
||||
vo.setUid(uid);
|
||||
|
||||
UserPurse userPurse = userPurseService.queryUserPurse(uid);
|
||||
vo.setGuildUsdNum(userPurse.getGuildUsd());
|
||||
|
||||
CountDownLatch cdl = new CountDownLatch(3);
|
||||
|
||||
bizExecutor.execute(()->{
|
||||
@@ -93,9 +101,6 @@ public class GuildUsdChannelService {
|
||||
SimpleUserVo guildOwner = usersService.getSimpleUserByUid(guild.getOwnerUid());
|
||||
vo.setGuildOwner(guildOwner);
|
||||
|
||||
UserPurse userPurse = userPurseService.queryUserPurse(uid);
|
||||
vo.setGuildUsdNum(userPurse.getGuildUsd());
|
||||
|
||||
List<GuildMemberUsdWithdrawAccountVo> withdrawAccount = guildUsdWithdrawAccountService.listUserAccountVo(uid);
|
||||
vo.setWithdrawAccountList(withdrawAccount);
|
||||
} catch (Exception e){
|
||||
@@ -126,6 +131,8 @@ public class GuildUsdChannelService {
|
||||
bizExecutor.execute(()->{
|
||||
try {
|
||||
List<GuildUsdProdTabVo> tabVoList = buildTabByRoleType(uid, guildMember.getPartitionId(), guildMember.getRoleType());
|
||||
fitlerTabPro(vo.getGuildUsdNum(), guild, tabVoList);
|
||||
|
||||
vo.setTypeTab(tabVoList);
|
||||
} catch (Exception e){
|
||||
log.error("[getUsdOperateTabVo] tabVoList 获取异常", e);
|
||||
@@ -209,4 +216,61 @@ public class GuildUsdChannelService {
|
||||
return rechargeUserVoList.stream().sorted(Comparator.comparing(RechargeUserVo::getStarLevelSeq).reversed())
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private List<GuildUsdProdTabShowConfigVo> getTabShowConfig(Integer partitionId) {
|
||||
String sysConfValueById = sysConfService.getSysConfValueById(GUILD_USD_PROD_TAB_SHOW_CONFIG);
|
||||
if (StringUtils.isNotEmpty(sysConfValueById)) {
|
||||
GuildUsdProdTabShowConfigVo configVo = JSONObject.parseObject(sysConfValueById, GuildUsdProdTabShowConfigVo.class);
|
||||
return configVo.getByPartitionId(partitionId);
|
||||
}
|
||||
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
/**
|
||||
* 屏蔽对应类型对应国家下,钱包usd小于最低档位的转账方式,
|
||||
* @param guildUsdNum
|
||||
* @param guild
|
||||
* @param tabVoList
|
||||
*/
|
||||
private void fitlerTabPro(Double guildUsdNum, Guild guild, List<GuildUsdProdTabVo> tabVoList) {
|
||||
if (CollectionUtils.isEmpty(tabVoList) || guild.getRegionId() == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<GuildUsdProdTabShowConfigVo> tabShowConfig = getTabShowConfig(guild.getPartitionId());
|
||||
if (CollectionUtils.isEmpty(tabShowConfig)) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (GuildUsdProdTabVo tabVo : tabVoList) {
|
||||
List<GuildUsdProdChannelVo> channelList = tabVo.getChannelList();
|
||||
if (CollectionUtils.isEmpty(channelList)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (GuildUsdProdTabShowConfigVo configVo : tabShowConfig) {
|
||||
if (!tabVo.getTabKey().equals(configVo.getTabKey())) {
|
||||
continue;
|
||||
}
|
||||
List<Integer> limitRegionIds = configVo.getLimitRegionIds();
|
||||
if (CollectionUtils.isEmpty(limitRegionIds) || !limitRegionIds.contains(guild.getRegionId())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Iterator<GuildUsdProdChannelVo> iterator = channelList.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
GuildUsdProdChannelVo next = iterator.next();
|
||||
List<GuildUsdProd> prodList = next.getProdList();
|
||||
if (next.getType() != configVo.getType().intValue() || CollectionUtils.isEmpty(prodList)) {
|
||||
continue;
|
||||
}
|
||||
GuildUsdProd usdProd = prodList.get(0);
|
||||
if (guildUsdNum < usdProd.getGuildUsdNum().doubleValue()){
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -40,10 +40,10 @@
|
||||
</select>
|
||||
|
||||
<select id="listGuildOwnerByPartitionIdRegionId" resultType="com.accompany.business.model.guild.GuildMember">
|
||||
select guild_id, gm.uid, role_type, gm.create_time, gm.update_time, enable from guild_member gm
|
||||
inner join users u on gm.uid = u.uid
|
||||
select gm.guild_id, gm.uid, role_type, gm.create_time, gm.update_time, enable from guild_member gm
|
||||
inner join guild g on gm.guild_id = g.id
|
||||
where gm.role_type = 1 and gm.partition_id = #{partitionId}
|
||||
and u.region_id = #{regionId}
|
||||
and g.region_id = #{regionId}
|
||||
</select>
|
||||
|
||||
</mapper>
|
Reference in New Issue
Block a user