Compare commits
12 Commits
f9f0ef73a3
...
eparty_dev
Author | SHA1 | Date | |
---|---|---|---|
934f91221a | |||
a2bc44371a | |||
057e675ac8 | |||
13944c5fc3 | |||
3e4bb0e532 | |||
98643022da | |||
33c3042044 | |||
4995ce5a99 | |||
e3f656e730 | |||
7c01f75b7d | |||
a54fce3ab6 | |||
fbdb47091a |
@@ -0,0 +1,28 @@
|
||||
package com.accompany.admin.model.guild;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 后台超管【赠送座驾】权限表实体类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Data
|
||||
public class GuildAdminCarRef implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id" , type = IdType.AUTO)
|
||||
private Long id;
|
||||
private Integer roleId;
|
||||
private Integer carId;
|
||||
private Date createTime;
|
||||
|
||||
|
||||
}
|
@@ -65,5 +65,8 @@ public class FamilyAdminVo {
|
||||
private String inviteCheck;
|
||||
@ExcelIgnore
|
||||
private Boolean enableEditInvite;
|
||||
@ApiModelProperty("操作人")
|
||||
@ExcelProperty("操作人")
|
||||
private String operator;
|
||||
|
||||
}
|
||||
|
@@ -0,0 +1,14 @@
|
||||
package com.accompany.admin.mapper.guild;
|
||||
|
||||
import com.accompany.admin.model.guild.GuildAdminCarRef;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
/**
|
||||
* 后台超管【赠送座驾】权限表 Mapper 接口
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
public interface GuildAdminCarRefMapper extends BaseMapper<GuildAdminCarRef> {
|
||||
|
||||
}
|
@@ -5,7 +5,6 @@ import com.accompany.admin.vo.UsersAdminVo;
|
||||
import com.accompany.business.constant.SymbolConstants;
|
||||
import com.accompany.business.event.UsersChangePartitionEvent;
|
||||
import com.accompany.business.model.PrivatePhoto;
|
||||
import com.accompany.business.model.UserInviteCode;
|
||||
import com.accompany.business.model.UserPurse;
|
||||
import com.accompany.business.mybatismapper.PrivatePhotoMapper;
|
||||
import com.accompany.business.mybatismapper.UserInviteCodeMapper;
|
||||
@@ -134,7 +133,7 @@ public class UserCheckAdminService {
|
||||
return list;
|
||||
}
|
||||
|
||||
private List<UsersAdminVo> getUserListByErbanNoList(List<String> erbanNoList){
|
||||
public List<UsersAdminVo> getUserListByErbanNoList(List<String> erbanNoList){
|
||||
List<Long> newList = new ArrayList<>(erbanNoList.size());
|
||||
for(String myErbanNo: erbanNoList){
|
||||
Long erbanNo = Long.valueOf(myErbanNo);
|
||||
|
@@ -11,7 +11,10 @@ import com.accompany.business.constant.family.FamilyConstant;
|
||||
import com.accompany.business.event.FamilyMemberStatusChangeEvent;
|
||||
import com.accompany.business.event.NewGuildEvent;
|
||||
import com.accompany.business.message.NewGuildMessage;
|
||||
import com.accompany.business.model.family.*;
|
||||
import com.accompany.business.model.family.Family;
|
||||
import com.accompany.business.model.family.FamilyMember;
|
||||
import com.accompany.business.model.family.FamilyOperateRecord;
|
||||
import com.accompany.business.model.family.FamilyPayAccount;
|
||||
import com.accompany.business.mybatismapper.family.FamilyMemberDiamondSettlementRecordMapper;
|
||||
import com.accompany.business.service.UploadAvatarService;
|
||||
import com.accompany.business.service.family.*;
|
||||
@@ -87,7 +90,7 @@ public class FamilyManageAdminService {
|
||||
private FamilyMemberDiamondSettlementRecordMapper familyMemberDiamondSettlementRecordMapper;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Family createFamily(Long erbanNo, String referrer, Long inviteErbanNo) {
|
||||
public Family createFamily(Long erbanNo, String referrer, Long inviteErbanNo, Integer adminId) {
|
||||
Users u = usersService.getUserByErbanNo(erbanNo);
|
||||
if (null == u){
|
||||
throw new AdminServiceException(BusiStatus.USERNOTEXISTS);
|
||||
@@ -126,6 +129,7 @@ public class FamilyManageAdminService {
|
||||
Date now = new Date();
|
||||
|
||||
Family family = new Family();
|
||||
family.setAdminId(adminId);
|
||||
family.setPartitionId(u.getPartitionId());
|
||||
family.setOwnerUid(u.getUid());
|
||||
family.setName(u.getNick() + I18NMessageSourceUtil.getMessage(FamilyConstant.DefaultInfo.DEFAULT_NAME_SUFFIX_I18N_ID,
|
||||
@@ -300,6 +304,7 @@ public class FamilyManageAdminService {
|
||||
.list().stream().collect(Collectors.toMap(FamilyPayAccount::getFamilyId, a->a));
|
||||
|
||||
Date now = new Date();
|
||||
Map<Integer, String> adminUserMap = adminUserService.adminUserMap();
|
||||
for (Family family: poList){
|
||||
FamilyAdminVo vo = new FamilyAdminVo();
|
||||
vo.setId(family.getId());
|
||||
@@ -314,6 +319,9 @@ public class FamilyManageAdminService {
|
||||
vo.setCreateTime(DateTimeUtil.convertDate(family.getCreateTime()));
|
||||
vo.setEnable(family.getEnable());
|
||||
vo.setIdCard(family.getIdCard());
|
||||
if (family.getAdminId() != null) {
|
||||
vo.setOperator(adminUserMap.get(family.getAdminId()));
|
||||
}
|
||||
vo.setInviteCheck(family.getInviteCheck());
|
||||
if (family.getInviteUid() != null) {
|
||||
Users users = usersMap.get(family.getInviteUid());
|
||||
|
@@ -0,0 +1,44 @@
|
||||
package com.accompany.admin.service.guild;
|
||||
|
||||
import com.accompany.admin.mapper.guild.GuildAdminCarRefMapper;
|
||||
import com.accompany.admin.model.guild.GuildAdminCarRef;
|
||||
import com.accompany.admin.service.system.AdminUserService;
|
||||
import com.accompany.admin.vo.AdminUserVo;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 后台超管【赠送座驾】权限表 服务实现类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-14
|
||||
*/
|
||||
@Service
|
||||
public class GuildAdminCarRefService extends ServiceImpl<GuildAdminCarRefMapper, GuildAdminCarRef> {
|
||||
|
||||
@Autowired
|
||||
private AdminUserService adminUserService;
|
||||
|
||||
public List<Integer> carIds(Integer adminId) {
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
|
||||
if (adminUserVo == null || CollectionUtils.isEmpty(adminUserVo.getRoleIds())) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
LambdaQueryWrapper<GuildAdminCarRef> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.in(GuildAdminCarRef::getRoleId, adminUserVo.getRoleIds());
|
||||
List<GuildAdminCarRef> guildAdminHeadwearRefs = baseMapper.selectList(wrapper);
|
||||
if (CollectionUtils.isEmpty(guildAdminHeadwearRefs)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return guildAdminHeadwearRefs.stream().map(GuildAdminCarRef::getCarId).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,61 @@
|
||||
package com.accompany.admin.service.guild;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.accompany.business.model.guild.Guild;
|
||||
import com.accompany.business.service.guild.GuildDiamondStatisticsHourService;
|
||||
import com.accompany.business.service.guild.GuildService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.util.StringUtils;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Service
|
||||
public class GuildDiamondStatisticsHourAdminService {
|
||||
@Autowired
|
||||
private GuildService guildService;
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsHourService guildDiamondStatisticsHourService;
|
||||
|
||||
public Page<GuildDiamondStatisticsHourVo> list(String startDate, String endDate,
|
||||
Integer partitionId, Integer regionId,
|
||||
Integer guildId, Long ownerErbanNo,
|
||||
Integer pageNo, Integer pageSize, Long inviteUid) {
|
||||
if (StringUtils.isEmpty(startDate) || StringUtils.isEmpty(endDate)) {
|
||||
Date date = new Date();
|
||||
startDate = DateUtil.formatDate(DateUtil.offsetDay(date, -30));
|
||||
endDate = DateUtil.formatDate(date);
|
||||
}
|
||||
if (guildId == null && ownerErbanNo != null) {
|
||||
Users users = usersService.getUserByErbanNo(ownerErbanNo);
|
||||
if (users == null) {
|
||||
throw new ServiceException(BusiStatus.SERVERERROR,"公会长信息不存在");
|
||||
}
|
||||
Long ownerUid = users.getUid();
|
||||
Guild guild = guildService.getVaildGuildByOwnerUid(ownerUid);
|
||||
if (guild == null) {
|
||||
throw new ServiceException(BusiStatus.SERVERERROR,"公会不存在");
|
||||
}
|
||||
guildId = guild.getId();
|
||||
}
|
||||
Page<GuildDiamondStatisticsHourVo> guildDiamondStatisticsHourVoPage =
|
||||
guildDiamondStatisticsHourService.listGuildByStatDate(startDate, endDate, partitionId, regionId, guildId, pageNo, pageSize, inviteUid);
|
||||
if (!CollectionUtils.isEmpty(guildDiamondStatisticsHourVoPage.getRecords())) {
|
||||
for (GuildDiamondStatisticsHourVo vo: guildDiamondStatisticsHourVoPage.getRecords()) {
|
||||
vo.setPartitionDesc(PartitionEnum.getByPartitionId(vo.getPartitionId()).getDesc());
|
||||
}
|
||||
}
|
||||
return guildDiamondStatisticsHourVoPage;
|
||||
}
|
||||
|
||||
}
|
@@ -1,5 +1,6 @@
|
||||
package com.accompany.admin.service.guild;
|
||||
|
||||
import com.accompany.admin.base.Pagination;
|
||||
import com.accompany.admin.dto.NameplateDto;
|
||||
import com.accompany.admin.service.family.FamilyIncomeAdminService;
|
||||
import com.accompany.admin.service.family.FamilyManageAdminService;
|
||||
@@ -11,8 +12,11 @@ import com.accompany.admin.vo.AdminUserVo;
|
||||
import com.accompany.admin.vo.family.FamilyAdminVo;
|
||||
import com.accompany.admin.vo.guild.GuildApplyAuditVo;
|
||||
import com.accompany.admin.vo.vip.VipSendRecordVo;
|
||||
import com.accompany.business.model.CarGoods;
|
||||
import com.accompany.business.model.family.Family;
|
||||
import com.accompany.business.model.guild.GuildSuperAdminInfo;
|
||||
import com.accompany.business.service.car.CarGoodsService;
|
||||
import com.accompany.business.service.car.CarPayService;
|
||||
import com.accompany.business.service.guild.GuildSuperAdminInfoService;
|
||||
import com.accompany.business.service.headwear.HeadwearService;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
@@ -21,7 +25,7 @@ import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.result.PageResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.common.utils.BlankUtil;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -31,10 +35,10 @@ import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
import static java.util.Collections.EMPTY_LIST;
|
||||
|
||||
@@ -70,6 +74,12 @@ public class GuildSuperAdminService {
|
||||
private GuildSuperAdminInfoService guildSuperAdminInfoService;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsDayAdminService guildDiamondStatisticsDayAdminService;
|
||||
@Autowired
|
||||
private GuildAdminCarRefService guildAdminCarRefService;
|
||||
@Autowired
|
||||
private CarGoodsService carGoodsService;
|
||||
@Autowired
|
||||
private CarPayService carPayService;
|
||||
|
||||
public void createFamily(Long erbanNo, Long inviteErbanNo, Integer adminId) {
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
|
||||
@@ -95,11 +105,13 @@ public class GuildSuperAdminService {
|
||||
}
|
||||
}
|
||||
|
||||
Family family = familyManageAdminService.createFamily(erbanNo, adminUserVo.getUsername(), inviteErbanNo);
|
||||
Family family = familyManageAdminService.createFamily(erbanNo, adminUserVo.getUsername(), inviteErbanNo, adminUserVo.getAdminId());
|
||||
guildAdminRefService.bindAdminGuild(adminId, family.getId(), user.getPartitionId());
|
||||
}
|
||||
|
||||
public Page<FamilyAdminVo> pageFamily(Integer partitionId, Integer familyId, Long erbanNo,long pageNum, long pageSize, Integer adminId) {
|
||||
public Page<FamilyAdminVo> pageFamily(Integer familyId, Long erbanNo,long pageNum, long pageSize, Integer adminId) {
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
|
||||
Integer partitionId = adminUserVo.getPartitionIds().get(0);
|
||||
List<Integer> guildIdsByAdminId = guildAdminRefService.getGuildIdsByAdminId(adminId, partitionId);
|
||||
if (CollectionUtils.isEmpty(guildIdsByAdminId)) {
|
||||
return new Page<>(pageNum, pageSize);
|
||||
@@ -117,12 +129,12 @@ public class GuildSuperAdminService {
|
||||
if (null == u){
|
||||
throw new AdminServiceException(BusiStatus.USERNOTEXISTS);
|
||||
}
|
||||
if (vipLevel > 3) {
|
||||
if (vipLevel > 4) {
|
||||
throw new AdminServiceException("vipLevel error");
|
||||
}
|
||||
boolean partitionCheck = adminUserVo.getPartitionIds().contains(u.getPartitionId());
|
||||
if (!partitionCheck) {
|
||||
throw new AdminServiceException("会长ID Part Error");
|
||||
throw new AdminServiceException("ID Part Error");
|
||||
}
|
||||
vipSendAdminService.send(uid, vipLevel, adminId, days, Boolean.FALSE);
|
||||
}
|
||||
@@ -155,6 +167,9 @@ public class GuildSuperAdminService {
|
||||
throw new AdminServiceException("ID:"+ s +" Part Error");
|
||||
}
|
||||
}
|
||||
if (days > 30) {
|
||||
throw new AdminServiceException("The Gift days does not exceed 30 days.");
|
||||
}
|
||||
|
||||
log.info("send(),headwearId={},erbanNoList={},sendDesc={}", headwearId, erbanNoList, sendDesc);
|
||||
Map<String, Object> retMap = new HashMap<String, Object>();
|
||||
@@ -206,7 +221,9 @@ public class GuildSuperAdminService {
|
||||
throw new AdminServiceException("ID:"+ s +" Part Error");
|
||||
}
|
||||
}
|
||||
|
||||
if (days > 30) {
|
||||
throw new AdminServiceException("The Gift days does not exceed 30 days.");
|
||||
}
|
||||
log.info("send(),nameplateId={},erbanNoList={},sendDesc={}", nameplateId, erbanNoList, sendDesc);
|
||||
Map<String, Object> retMap = new HashMap<String, Object>();
|
||||
try {
|
||||
@@ -229,6 +246,92 @@ public class GuildSuperAdminService {
|
||||
return retMap;
|
||||
}
|
||||
|
||||
public Pagination<CarGoods> getCarGoodsList(Integer page, Integer pageSize, Integer adminId) {
|
||||
|
||||
List<Integer> carGoodsIds = guildAdminCarRefService.carIds(adminId);
|
||||
if (CollectionUtils.isEmpty(carGoodsIds)) {
|
||||
throw new AdminServiceException("CONFIG ERROR:");
|
||||
}
|
||||
Pagination<CarGoods> pagination = new Pagination<>();
|
||||
pagination.setTotal(carGoodsService.countCarGoods((byte)2, null, null, null, null, carGoodsIds));
|
||||
pagination.setRows(carGoodsService.getCarGoodsList(page, pageSize, (byte)2, null, null, null, null, null, carGoodsIds));
|
||||
return pagination;
|
||||
}
|
||||
|
||||
public Map carSend(String erbanNo, Integer carId, Integer days, String desc, Integer otherDay, Integer adminId) {
|
||||
if (days > 30) {
|
||||
throw new AdminServiceException("The Gift days does not exceed 30 days.");
|
||||
}
|
||||
List<Integer> carGoodsIds = guildAdminCarRefService.carIds(adminId);
|
||||
if (carGoodsIds == null || carGoodsIds.isEmpty() || !carGoodsIds.contains(carId)) {
|
||||
throw new AdminServiceException("config ERROR:");
|
||||
}
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
|
||||
|
||||
//赠送失败的平台号
|
||||
List<String> failErban = new ArrayList<String>();
|
||||
//赠送失败原因
|
||||
List<String> failReason = new ArrayList<String>();
|
||||
Map retMap = new HashMap();
|
||||
//前台js换行符为'\n'
|
||||
String[] erbanList = erbanNo.split("\n");
|
||||
try {
|
||||
if (erbanList == null || carId == null || days == null || BlankUtil.isBlank(desc)) {
|
||||
throw new AdminServiceException(BusiStatus.PARAMETERILLEGAL);
|
||||
}
|
||||
if (days <= 0 || carId <= 0 || erbanList.length <= 0) {
|
||||
throw new AdminServiceException(BusiStatus.PARAMETERILLEGAL);
|
||||
}
|
||||
if(otherDay != null && (otherDay <= 0 || otherDay >= 365)){
|
||||
throw new AdminServiceException(BusiStatus.PARAMETERILLEGAL);
|
||||
}
|
||||
if(otherDay != null ){
|
||||
log.info("超管赠送座驾 erbanNo:{},carId:{}, days:{} 更换为 otherDay:{}",erbanNo,carId,days,otherDay);
|
||||
days = otherDay;
|
||||
}
|
||||
final CountDownLatch latch = new CountDownLatch(erbanList.length);
|
||||
ExecutorService executors = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * 4 - 1);
|
||||
for (String erban : erbanList) {
|
||||
Integer sendDays = days;
|
||||
executors.execute(()->{
|
||||
try {
|
||||
Users users = usersService.getUserByErbanNo(Long.valueOf(erban));
|
||||
if (users == null) {
|
||||
throw new AdminServiceException(BusiStatus.USERNOTEXISTS);
|
||||
}
|
||||
Long uid = users.getUid();
|
||||
CarGoods carGoods = carGoodsService.getCarGoods(carId);
|
||||
if (carGoods == null) {
|
||||
throw new AdminServiceException(BusiStatus.CARPORTNOTEXIST);
|
||||
}
|
||||
if (!adminUserVo.getPartitionIds().contains(users.getPartitionId())) {
|
||||
throw new AdminServiceException("ID:"+ erban +" Part Error");
|
||||
}
|
||||
carPayService.experCarByOfficial(uid, carId, sendDays, desc, true);
|
||||
} catch (AdminServiceException e) {
|
||||
log.error("exper error:{}", e);
|
||||
failErban.add(erban);
|
||||
failReason.add(e.getMessage());
|
||||
}finally {
|
||||
latch.countDown();
|
||||
}
|
||||
});
|
||||
}
|
||||
latch.await();
|
||||
if (failErban.size() > 0) {
|
||||
retMap.put("code", "200");
|
||||
retMap.put("erban", failErban.toString());
|
||||
retMap.put("message", failReason.toString());
|
||||
} else {
|
||||
retMap.put("code", "100");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("exper function error:{}", e);
|
||||
retMap.put("code", "300");
|
||||
retMap.put("message", e.getMessage());
|
||||
}
|
||||
return retMap;
|
||||
}
|
||||
|
||||
public Page<FamilyIncomeAdminVo> pageFamilyIncome(Long erbanNo, Integer regionId, String familyName, String startDate, String endDate,
|
||||
long pageNum, long pageSize, Integer partitionId, Integer adminId) {
|
||||
@@ -266,7 +369,8 @@ public class GuildSuperAdminService {
|
||||
if (inviteUid == null) {
|
||||
return new Page<>();
|
||||
}
|
||||
return guildDiamondStatisticsDayAdminService.list(startDate, endDate, null, null, guildId, ownerErbanNo, pageNo, pageSize, inviteUid);
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
|
||||
return guildDiamondStatisticsDayAdminService.list(startDate, endDate, adminUserVo.getPartitionIds().get(0), null, guildId, ownerErbanNo, pageNo, pageSize, inviteUid);
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -334,6 +334,15 @@ public class MyApiController {
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@RequestMapping("/createPublicRoom")
|
||||
@ResponseBody
|
||||
public BusiResult<Void> createPublicRoom(Long roomId, Integer partitionId) {
|
||||
if (null == roomId || !roomId.equals(603L) || null == partitionId) {
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
myApiService.createPublicRoom(partitionId);
|
||||
return BusiResult.success();
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private GoogleTokenVerifier googleTokenVerifier;
|
||||
|
@@ -51,8 +51,8 @@ public class CarGoodsAdminController extends BaseController {
|
||||
enable = null;
|
||||
}
|
||||
Pagination<CarGoods> pagination = new Pagination<>();
|
||||
pagination.setTotal(carGoodsService.countCarGoods(enable, carGoodsId, carGoodsName, carGoodsType, partitionId));
|
||||
pagination.setRows(carGoodsService.getCarGoodsList(page, pageSize, enable, null, carGoodsId, carGoodsName, carGoodsType, partitionId));
|
||||
pagination.setTotal(carGoodsService.countCarGoods(enable, carGoodsId, carGoodsName, carGoodsType, partitionId, null));
|
||||
pagination.setRows(carGoodsService.getCarGoodsList(page, pageSize, enable, null, carGoodsId, carGoodsName, carGoodsType, partitionId, null));
|
||||
return pagination;
|
||||
}
|
||||
|
||||
|
@@ -4,8 +4,8 @@ import com.accompany.admin.controller.BaseController;
|
||||
import com.accompany.admin.service.family.FamilyManageAdminService;
|
||||
import com.accompany.admin.service.system.AdminLogService;
|
||||
import com.accompany.admin.vo.family.FamilyAdminVo;
|
||||
import com.accompany.business.vo.family.FamilyMemberAdminVo;
|
||||
import com.accompany.admin.vo.family.FamilyOperateRecordAdminVo;
|
||||
import com.accompany.business.vo.family.FamilyMemberAdminVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.result.PageResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
@@ -51,7 +51,7 @@ public class FamilyManageAdminController extends BaseController {
|
||||
throw new AdminServiceException(BusiStatus.PARAMERROR);
|
||||
}
|
||||
Integer adminId = getAdminId();
|
||||
service.createFamily(erbanNo, referrer, inviteErbanNo);
|
||||
service.createFamily(erbanNo, referrer, inviteErbanNo, adminId);
|
||||
adminLogService.insertLog(adminId,getClass().getCanonicalName(),
|
||||
"create family","params===>>erbanNo:"+erbanNo + ",referrer:" + referrer + ",inviteErbanNo:"+ inviteErbanNo);
|
||||
return BusiResult.success();
|
||||
|
@@ -0,0 +1,74 @@
|
||||
package com.accompany.admin.controller.guild;
|
||||
|
||||
import com.accompany.admin.service.guild.GuildDiamondStatisticsHourAdminService;
|
||||
import com.accompany.business.param.BasePageParams;
|
||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
|
||||
import com.accompany.core.vo.BaseResponseVO;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.excel.support.ExcelTypeEnum;
|
||||
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.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.net.URLEncoder;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
@Api(tags = "公会小时钻石流水")
|
||||
@RestController
|
||||
@RequestMapping("/admin/guild/diamondStatistics")
|
||||
public class GuildDiamondStatisticsHourAdminController {
|
||||
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsHourAdminService guildDiamondStatisticsHourAdminService;
|
||||
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true),
|
||||
@ApiImplicitParam(name = "ownerErbanNo", value = "公会长id"),
|
||||
@ApiImplicitParam(name = "guildId", value = "公会id"),
|
||||
@ApiImplicitParam(name = "startTime", value = "开始时间 yyyy-mm-dd", dataType = "string"),
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间 yyyy-mm-dd", dataType = "string"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "页码", required = true),
|
||||
@ApiImplicitParam(name = "pageSize", value = "页长", required = true)
|
||||
})
|
||||
@ApiOperation(value = "公会小时钻石流水列表", httpMethod = "GET")
|
||||
@GetMapping("")
|
||||
public BaseResponseVO<Page<GuildDiamondStatisticsHourVo>> list(BasePageParams basePageParams,
|
||||
int partitionId, Integer regionId,
|
||||
Integer guildId, Long ownerErbanNo) {
|
||||
return new BaseResponseVO<>(guildDiamondStatisticsHourAdminService.list(basePageParams.getStartTime(), basePageParams.getEndTime(),
|
||||
partitionId, regionId, guildId, ownerErbanNo, basePageParams.getPageNo(), basePageParams.getPageSize(), null));
|
||||
}
|
||||
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id", required = true),
|
||||
@ApiImplicitParam(name = "ownerErbanNo", value = "公会长id"),
|
||||
@ApiImplicitParam(name = "guildId", value = "公会id"),
|
||||
@ApiImplicitParam(name = "startTime", value = "开始时间 yyyy-mm-dd", dataType = "string"),
|
||||
@ApiImplicitParam(name = "endTime", value = "结束时间 yyyy-mm-dd", dataType = "string"),
|
||||
@ApiImplicitParam(name = "pageNo", value = "页码", required = true),
|
||||
@ApiImplicitParam(name = "pageSize", value = "页长", required = true)
|
||||
})
|
||||
@ApiOperation(value = "公会小时钻石流水列表-导出", httpMethod = "GET")
|
||||
@GetMapping("/export")
|
||||
public void export(HttpServletResponse response, BasePageParams basePageParams,
|
||||
Integer regionId,
|
||||
Integer guildId, Long ownerErbanNo) throws IOException {
|
||||
response.setContentType("application/vnd.ms-excel");
|
||||
response.setCharacterEncoding("utf-8");
|
||||
// 这里URLEncoder.encode可以防止中文乱码
|
||||
String excelName = URLEncoder.encode("公会小时钻石流水列表", StandardCharsets.UTF_8);
|
||||
Page<GuildDiamondStatisticsHourVo> list = guildDiamondStatisticsHourAdminService.list(basePageParams.getStartTime(), basePageParams.getEndTime(),
|
||||
basePageParams.getPartitionId(), regionId, guildId, ownerErbanNo, 1, -1, null);
|
||||
response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
|
||||
EasyExcel.write(response.getOutputStream(), GuildDiamondStatisticsHourVo.class).sheet("公会小时钻石流水列表").doWrite(list.getRecords());
|
||||
}
|
||||
|
||||
}
|
@@ -1,13 +1,22 @@
|
||||
package com.accompany.admin.controller.guild;
|
||||
package com.accompany.admin.controller.guildsuper;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.accompany.admin.base.Pagination;
|
||||
import com.accompany.admin.controller.BaseController;
|
||||
import com.accompany.admin.dto.NameplateDto;
|
||||
import com.accompany.admin.service.UserCheckAdminService;
|
||||
import com.accompany.admin.service.firstpage.SecondPageBannerAdminService;
|
||||
import com.accompany.admin.service.guild.GuildSuperAdminService;
|
||||
import com.accompany.admin.service.system.AdminLogService;
|
||||
import com.accompany.admin.service.system.AdminUserService;
|
||||
import com.accompany.admin.vo.AdminUserVo;
|
||||
import com.accompany.admin.vo.UsersAdminVo;
|
||||
import com.accompany.admin.vo.family.FamilyAdminVo;
|
||||
import com.accompany.admin.vo.guild.GuildApplyAuditVo;
|
||||
import com.accompany.admin.vo.vip.VipSendRecordVo;
|
||||
import com.accompany.business.model.CarGoods;
|
||||
import com.accompany.business.param.BasePageParams;
|
||||
import com.accompany.business.service.room.RoomService;
|
||||
import com.accompany.business.vo.family.FamilyIncomeAdminVo;
|
||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsDayVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
@@ -15,18 +24,24 @@ import com.accompany.common.result.PageResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.enumeration.PartitionEnum;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.service.region.RegionInfoService;
|
||||
import com.accompany.core.vo.BaseResponseVO;
|
||||
import com.accompany.core.vo.UserVo;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
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.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Api(tags = "超管中心")
|
||||
@RestController
|
||||
@@ -36,6 +51,16 @@ public class GuildSuperAdminController extends BaseController {
|
||||
private AdminLogService adminLogService;
|
||||
@Autowired
|
||||
private GuildSuperAdminService guildSuperAdminService;
|
||||
@Autowired
|
||||
private UserCheckAdminService userCheckAdminService;
|
||||
@Autowired
|
||||
private RegionInfoService regionInfoService;
|
||||
@Autowired
|
||||
private AdminUserService adminUserService;
|
||||
@Autowired
|
||||
private SecondPageBannerAdminService secondPageBannerAdminService;
|
||||
@Autowired
|
||||
private RoomService roomService;
|
||||
|
||||
@ApiOperation(value = "创建公会,对应前端页面GuildInfo,修改家族用已有接口:/admin/family/manage/update", httpMethod = "POST")
|
||||
@ApiImplicitParams({
|
||||
@@ -56,16 +81,16 @@ public class GuildSuperAdminController extends BaseController {
|
||||
|
||||
@ApiOperation(value = "查询公会信息",httpMethod = "GET")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "partitionId", value = "分区id"),
|
||||
// @ApiImplicitParam(name = "partitionId", value = "分区id"),
|
||||
@ApiImplicitParam(name = "familyId", value = "家族id"),
|
||||
@ApiImplicitParam(name = "erbanNo", value = "家族长erbanNo"),
|
||||
@ApiImplicitParam(name = "pageNum", value = "页码", required = true),
|
||||
@ApiImplicitParam(name = "pageSize", value = "页长", required = true)
|
||||
})
|
||||
@GetMapping("/pageFamily")
|
||||
public BusiResult<PageResult<FamilyAdminVo>> pageFamily(Integer partitionId, Integer familyId, Long erbanNo,
|
||||
public BusiResult<PageResult<FamilyAdminVo>> pageFamily(Integer familyId, Long erbanNo,
|
||||
long pageNum, long pageSize){
|
||||
Page<FamilyAdminVo> page = guildSuperAdminService.pageFamily(partitionId, familyId, erbanNo, pageNum, pageSize, getAdminId());
|
||||
Page<FamilyAdminVo> page = guildSuperAdminService.pageFamily(familyId, erbanNo, pageNum, pageSize, getAdminId());
|
||||
return BusiResult.success(new PageResult<>(page));
|
||||
}
|
||||
|
||||
@@ -136,6 +161,19 @@ public class GuildSuperAdminController extends BaseController {
|
||||
writeJson(JSON.toJSONString(objectMap));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "座驾列表(同原有接口页面", httpMethod = "GET")
|
||||
@GetMapping(value = "/cars")
|
||||
public Pagination<CarGoods> getCarGoodsList(Integer page, Integer pageSize) {
|
||||
return guildSuperAdminService.getCarGoodsList(page, pageSize, getAdminId());
|
||||
}
|
||||
|
||||
@ApiOperation(value = "赠送座驾列表(同原有接口页面", httpMethod = "POST")
|
||||
@RequestMapping(value = "/carSend", method = RequestMethod.POST)
|
||||
public void experByOfficial(String erbanNo, Integer carId, Integer days, String desc, Integer otherDay) {
|
||||
Map map = guildSuperAdminService.carSend(erbanNo, carId, days, desc, otherDay, getAdminId());
|
||||
writeJson(JSON.toJSONString(map));
|
||||
}
|
||||
|
||||
@ApiOperation("查询家族流水")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "erbanNo", value = "家族长erbanNo"),
|
||||
@@ -184,4 +222,25 @@ public class GuildSuperAdminController extends BaseController {
|
||||
getAdminId(), guildId, ownerErbanNo, basePageParams.getPageNo(), basePageParams.getPageSize()));
|
||||
}
|
||||
|
||||
@GetMapping("/userList")
|
||||
public BusiResult<List<UsersAdminVo>> getList(String erbanNoList) {
|
||||
if (StrUtil.isEmpty(erbanNoList)) {
|
||||
return BusiResult.success();
|
||||
}
|
||||
List<String> oldList = Arrays.asList(erbanNoList.split(","));
|
||||
List<UsersAdminVo> list = userCheckAdminService.getUserListByErbanNoList(oldList);
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(getAdminId());
|
||||
list = list.stream().filter(usersAdminVo -> adminUserVo.getPartitionIds().contains(usersAdminVo.getUsers().getPartitionId())).collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isNotEmpty(list)) {
|
||||
Map<Integer, String> regionName = regionInfoService.getRegionName();
|
||||
for (UsersAdminVo usersAdminVo : list) {
|
||||
UserVo users = usersAdminVo.getUsers();
|
||||
if (users != null && users.getRegionId() != null) {
|
||||
usersAdminVo.setRegionName(regionName.get(users.getRegionId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return BusiResult.success(list);
|
||||
}
|
||||
}
|
@@ -0,0 +1,63 @@
|
||||
package com.accompany.admin.controller.guildsuper;
|
||||
|
||||
import com.accompany.admin.controller.BaseController;
|
||||
import com.accompany.admin.dto.community.DynamicVerifyDto;
|
||||
import com.accompany.admin.service.system.AdminUserService;
|
||||
import com.accompany.admin.service.world.community.DynamicVerifyAdminService;
|
||||
import com.accompany.admin.vo.AdminUserVo;
|
||||
import com.accompany.admin.vo.community.DynamicVerifyVo;
|
||||
import com.accompany.community.constant.DynamicStatusEnum;
|
||||
import com.accompany.core.util.StringUtils;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Api(tags = "超管中心")
|
||||
@RestController
|
||||
@RequestMapping("/admin/superCenter")
|
||||
public class GuildSuperDynamicAdminController extends BaseController {
|
||||
@Autowired
|
||||
private AdminUserService adminUserService;
|
||||
@Autowired
|
||||
private DynamicVerifyAdminService dynamicVerifyAdminService;
|
||||
|
||||
@RequestMapping("/dynamicList")
|
||||
public void list(DynamicVerifyDto dto){
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(getAdminId());
|
||||
dto.setPartitionId(adminUserVo.getPartitionIds().get(0));
|
||||
dto.setStatus(0);
|
||||
PageInfo<DynamicVerifyVo> voPageInfo = dynamicVerifyAdminService.getPageList(dto);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("total", voPageInfo.getTotal());
|
||||
jsonObject.put("rows", voPageInfo.getList());
|
||||
writeJson(jsonObject.toJSONString());
|
||||
}
|
||||
|
||||
@RequestMapping("/dynamicChangeStatus")
|
||||
public void changeStatus(Long dynamicId, Integer status, String reason){
|
||||
if(dynamicId == null || dynamicId == 0 || status == null) {
|
||||
writeJson(false, "参数有误");
|
||||
return;
|
||||
}
|
||||
if (status.equals(DynamicStatusEnum.NOT_PASS.getValue()) || status.equals(DynamicStatusEnum.UNSHELVE.getValue())){
|
||||
if (StringUtils.isEmpty(reason)){
|
||||
writeJson(false, "参数有误");
|
||||
return;
|
||||
}
|
||||
}
|
||||
try {
|
||||
int result = dynamicVerifyAdminService.changeStatus(dynamicId, status, reason, getAdminId());
|
||||
if(result>0) {
|
||||
writeJson(true,String.valueOf(result));
|
||||
return;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.error("Failed to change dynamic status, Cause by {}", e.getCause().getMessage());
|
||||
writeJson(false, e.getMessage());
|
||||
}
|
||||
writeJson(false, "操作失败");
|
||||
}
|
||||
}
|
@@ -0,0 +1,78 @@
|
||||
package com.accompany.admin.controller.guildsuper;
|
||||
|
||||
import com.accompany.admin.base.Pagination;
|
||||
import com.accompany.admin.controller.BaseController;
|
||||
import com.accompany.admin.service.firstpage.SecondPageBannerAdminService;
|
||||
import com.accompany.admin.service.system.AdminLogService;
|
||||
import com.accompany.admin.service.system.AdminUserService;
|
||||
import com.accompany.admin.vo.AdminUserVo;
|
||||
import com.accompany.admin.vo.SecondPageBannerAdminVo;
|
||||
import com.accompany.business.model.firstpage.SecondPageBanner;
|
||||
import com.accompany.business.service.fillstrategy.strategy.FillConstant;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.exception.AdminServiceException;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
@Api(tags = "超管中心-banner")
|
||||
@RestController
|
||||
@RequestMapping("/admin/superCenter")
|
||||
public class GuildSuperSecondBannerAdminController extends BaseController {
|
||||
@Autowired
|
||||
private AdminLogService adminLogService;
|
||||
@Autowired
|
||||
private AdminUserService adminUserService;
|
||||
@Autowired
|
||||
private SecondPageBannerAdminService secondPageBannerAdminService;
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
|
||||
@ApiOperation(value = "新增/修改banner", httpMethod = "POST")
|
||||
@PostMapping(value = "/secondBannerSave")
|
||||
public BusiResult<Void> saveOrUpdateSecondPageBanner(SecondPageBanner firstPageBanner) {
|
||||
int adminId = getAdminId();
|
||||
AdminUserVo adminUserVo = adminUserService.getByAdminId(adminId);
|
||||
firstPageBanner.setOperator(adminUserVo.getUsername());
|
||||
firstPageBanner.setPartitionIds(adminUserVo.getPartitionIds());
|
||||
firstPageBanner.setPlatform("all");
|
||||
firstPageBanner.setBannerType(1);
|
||||
firstPageBanner.setBannerStatus(1);
|
||||
if (firstPageBanner.getSkipType() == FillConstant.SkipType.room) {
|
||||
if (com.accompany.common.utils.StringUtils.isEmpty(firstPageBanner.getSkipUri())) {
|
||||
throw new AdminServiceException("请输入RoomID");
|
||||
}
|
||||
firstPageBanner.setSkipUri(firstPageBanner.getSkipUri().trim());
|
||||
Users users = usersService.getUserByErbanNo(Long.valueOf(firstPageBanner.getSkipUri()));
|
||||
if (users == null || !adminUserVo.getPartitionIds().contains(users.getPartitionId())) {
|
||||
throw new AdminServiceException("请输入正确的RoomID");
|
||||
}
|
||||
} else if (firstPageBanner.getSkipType() != 100) {
|
||||
throw new AdminServiceException("config error");
|
||||
}
|
||||
|
||||
Boolean result = secondPageBannerAdminService.saveOrUpdateSecondPageBanner(firstPageBanner);
|
||||
if(result) {
|
||||
adminLogService.insertLog(adminId, getClass().getCanonicalName(), "superGuild.saveOrUpdateSecondPageBanner", "params===>>" + firstPageBanner.toString());
|
||||
}
|
||||
return new BusiResult<>(BusiStatus.SUCCESS);
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("获取banner列表")
|
||||
@GetMapping(value = "/bannelList")
|
||||
public Pagination<SecondPageBannerAdminVo> getSecondPageBannerList(@RequestParam(defaultValue = "0") Byte bannerStatus,
|
||||
@RequestParam(defaultValue = "0") Integer timeStatus,
|
||||
@RequestParam(defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(defaultValue = "20") Integer pageSize) {
|
||||
AdminUserVo adminUserById = adminUserService.getByAdminId(getAdminId());
|
||||
IPage<SecondPageBannerAdminVo> pageInfo = secondPageBannerAdminService.getSecondPageBannerList(pageNo, pageSize,
|
||||
(byte)0, bannerStatus, (byte)1, timeStatus,null, adminUserById.getPartitionIds().get(0), null, null);
|
||||
return new Pagination<>(pageInfo);
|
||||
}
|
||||
}
|
@@ -3,9 +3,9 @@ spring:
|
||||
dynamic-datasource:
|
||||
master:
|
||||
poolName: master
|
||||
jdbcUrl: jdbc:mysql://124.156.164.187:3306/peko?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
jdbcUrl: jdbc:mysql://129.226.62.202:3306/eparty?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
username: root
|
||||
password: anan@dev##
|
||||
password: eparty@dev##
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
hikari:
|
||||
@@ -15,9 +15,9 @@ spring:
|
||||
max-lifetime: 7000
|
||||
slave:
|
||||
poolName: slave
|
||||
jdbcUrl: jdbc:mysql://124.156.164.187:3306/peko?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
jdbcUrl: jdbc:mysql://129.226.62.202:3306/eparty?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
username: root
|
||||
password: anan@dev##
|
||||
password: eparty@dev##
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
hikari:
|
||||
@@ -26,20 +26,20 @@ spring:
|
||||
connection-test-query: select 1
|
||||
max-lifetime: 7000
|
||||
redis:
|
||||
host: 124.156.164.187
|
||||
host: 129.226.62.202
|
||||
port: 6200
|
||||
maxTotal: 100
|
||||
maxIdle: 50
|
||||
maxWait: 2500
|
||||
testOnBorrow: true
|
||||
testOnReturn: true
|
||||
password: anan@dev@redis@#!
|
||||
password: pc8DphhaXwTe2jyv
|
||||
redisson:
|
||||
# file: classpath:redisson.yaml
|
||||
config: |
|
||||
singleServerConfig:
|
||||
address: redis://124.156.164.187:6200
|
||||
password: anan@dev@redis@#!
|
||||
address: redis://129.226.62.202:6200
|
||||
password: pc8DphhaXwTe2jyv
|
||||
connectionMinimumIdleSize: 4
|
||||
timeout: 10000
|
||||
threads: 8
|
||||
@@ -47,17 +47,9 @@ spring:
|
||||
codec: !<org.redisson.codec.JsonJacksonCodec> {}
|
||||
transportMode: "NIO"
|
||||
|
||||
##activemq 配置
|
||||
activemq:
|
||||
brokerUrl: tcp://124.156.164.187:61619
|
||||
user: system
|
||||
password: manager
|
||||
maxConnections: 50
|
||||
idleTimeout: 30000
|
||||
|
||||
## rocketmq 配置
|
||||
rocketmq:
|
||||
name-server: 124.156.164.187:9876
|
||||
name-server: 129.226.62.202:9876
|
||||
producer:
|
||||
group: peko-group
|
||||
group: eparty-group
|
||||
sendMessageTimeout: 300000
|
||||
|
@@ -19,7 +19,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
@@ -42,7 +42,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
|
@@ -15,9 +15,20 @@ public class Attach {
|
||||
private String message;
|
||||
private Object data;
|
||||
|
||||
//用于携带给客户端,用于区分同一组first和second的消息,是单房间消息,还是轮询全服房间遍历发送的单房间消息
|
||||
//已使用公聊房机制,解决轮询全服房间发送消息的云信im限频问题
|
||||
private Integer allRoomMsg;
|
||||
|
||||
public Attach(int first, int second, Object data) {
|
||||
this.first = first;
|
||||
this.second = second;
|
||||
this.data = data;
|
||||
}
|
||||
|
||||
public Attach(int first, int second, Object data, int allRoomMsg) {
|
||||
this.first = first;
|
||||
this.second = second;
|
||||
this.data = data;
|
||||
this.allRoomMsg = allRoomMsg;
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,5 @@
|
||||
package com.accompany.common.utils;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.accompany.common.status.BusiStatus;
|
||||
import com.accompany.core.exception.ServiceException;
|
||||
@@ -39,6 +38,7 @@ public class DateTimeUtil {
|
||||
public static final String DEFAULT_DATE_PATTERN__ = "yyyyMMddHHmmss";
|
||||
public static final String DEFAULT_TIME_PATTERN = "HH:mm:ss";
|
||||
public static final String DEFAULT_DATE_MINUTE_PATTERN = "yyyy-MM-dd HH:mm";
|
||||
public static final String DEFAULT_DATE_HOUR_PATTERN = "yyyy-MM-dd HH";
|
||||
public static final String SIMPLE_MONTH_DATE_PATTERN = "M月d日";
|
||||
public static final String DATE_HOUR_PATTERN = "yyyyMMddHH";
|
||||
public static final String DATE_FORMAT_YEAR_MONTH = "yyyyMM";
|
||||
@@ -61,9 +61,10 @@ public class DateTimeUtil {
|
||||
|
||||
public static final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_PATTERN);
|
||||
public static final DateTimeFormatter datetimeFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATETIME_PATTERN);
|
||||
public static final DateTimeFormatter dateHourFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_MINUTE_PATTERN);
|
||||
public static final DateTimeFormatter dateHourMinutesFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_MINUTE_PATTERN);
|
||||
public static final DateTimeFormatter hoursFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DATE_HOUR_PATTERN);
|
||||
public static final DateTimeFormatter monthWithoutZeroDateFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.MONTH_WITHOUT_ZERO_DATE_PATTERN);
|
||||
public static final DateTimeFormatter dateHourFormatter = DateTimeFormatter.ofPattern(DateTimeUtil.DEFAULT_DATE_HOUR_PATTERN);
|
||||
|
||||
public static final DateTimeFormatter yyyyMMdd = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
|
||||
@@ -1147,4 +1148,9 @@ public class DateTimeUtil {
|
||||
return Date.from(eastEightZonedDateTime.toInstant());
|
||||
}
|
||||
|
||||
|
||||
public static String getDayHourDate(Date time, String zoneId) {
|
||||
ZonedDateTime zdt = DateTimeUtil.convertWithZoneId(time, zoneId);
|
||||
return zdt.format(dateHourFormatter);
|
||||
}
|
||||
}
|
||||
|
@@ -39,4 +39,6 @@ public class Family {
|
||||
* 邀请人证明
|
||||
*/
|
||||
private String inviteCheck;
|
||||
|
||||
private Integer adminId;
|
||||
}
|
@@ -0,0 +1,44 @@
|
||||
package com.accompany.business.model.guild;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公会钻石流水统计按小时实体类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-17
|
||||
*/
|
||||
@Data
|
||||
public class GuildDiamondStatisticsHour implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value = "id" , type = IdType.AUTO)
|
||||
private Long id;
|
||||
private String statDate;
|
||||
private Integer partitionId;
|
||||
/**
|
||||
* 统计日期yyyy--MM-dd HH
|
||||
*/
|
||||
private String statHour;
|
||||
private Long guildMemberId;
|
||||
private Long uid;
|
||||
/**
|
||||
* 所属厅id
|
||||
*/
|
||||
private Integer guildId;
|
||||
private BigDecimal diamondNum;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
package com.accompany.business.vo.guild;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnore;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class GuildDiamondStatisticsHourVo {
|
||||
@ExcelProperty("分区")
|
||||
private String partitionDesc;
|
||||
@ExcelProperty("公会id")
|
||||
private Integer guildId;
|
||||
@ExcelProperty("公会昵称")
|
||||
private String guildName;
|
||||
@ExcelProperty("公会长id")
|
||||
private Long ownerErbanNo;
|
||||
@ExcelProperty("公会长地区")
|
||||
private String ownerRegionDesc;
|
||||
@ExcelProperty("公会操作人")
|
||||
private String adminUsername;
|
||||
@ExcelProperty("主播人数")
|
||||
private Integer memberNum;
|
||||
@ExcelIgnore
|
||||
private Integer partitionId;
|
||||
@ExcelProperty("钻石流水")
|
||||
private Double diamondNum;
|
||||
}
|
@@ -3,14 +3,12 @@ package com.accompany.business.event.listener;
|
||||
import com.accompany.business.event.SuperLuckyGiftDiamondIncomeMessageEvent;
|
||||
import com.accompany.business.message.SuperLuckyGiftDiamondIncomeMessage;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.service.guild.GuildDiamondStatisticsDayService;
|
||||
import com.accompany.business.service.guild.GuildMemberDiamondStatisticsService;
|
||||
import com.accompany.business.service.guild.GuildMemberService;
|
||||
import com.accompany.business.service.guild.GuildRankService;
|
||||
import com.accompany.business.service.guild.*;
|
||||
import com.accompany.business.service.guildpolicy2.GuildDiamondStatisticsPolicy2Service;
|
||||
import com.accompany.business.service.user.UsersService;
|
||||
import com.accompany.business.util.FullMonthCycleTimeUtil;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.utils.DateTimeUtil;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
@@ -38,6 +36,8 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
|
||||
private GuildDiamondStatisticsDayService guildDiamondStatisticsDayService;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsPolicy2Service guildDiamondStatisticsPolicy2Service;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsHourService guildDiamondStatisticsHourService;
|
||||
|
||||
@Async
|
||||
@Override
|
||||
@@ -59,16 +59,20 @@ public class SuperLuckyGiftDiamondIncomeListener implements ApplicationListener<
|
||||
}
|
||||
Date time = message.getCreateTime();
|
||||
Double totalDiamondNum = message.getTotalDiamondNum();
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId());
|
||||
if (Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())) {
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId());
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId());
|
||||
statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId());
|
||||
guildMemberDiamondStatisticsService.update(cycleDate, guildMember, totalDiamondNum);
|
||||
guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum);
|
||||
} else if (Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode())) {
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(time, partitionInfo.getZoneId());
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId());
|
||||
statDate = FullMonthCycleTimeUtil.getCycleDay(time, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum);
|
||||
}
|
||||
String dayHourDate = DateTimeUtil.getDayHourDate(time, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsHourService.updateHourDiamondStatistics(statDate, dayHourDate, guildMember, totalDiamondNum);
|
||||
|
||||
//todo 时区 zoneId
|
||||
guildRankService.updateRank(guildMember.getGuildId(), guildMember.getUid(), totalDiamondNum, receiver.getPartitionId());
|
||||
}
|
||||
|
@@ -0,0 +1,29 @@
|
||||
package com.accompany.business.mybatismapper.guild;
|
||||
|
||||
import com.accompany.business.model.guild.GuildDiamondStatisticsHour;
|
||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公会钻石流水统计按小时 Mapper 接口
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-17
|
||||
*/
|
||||
public interface GuildDiamondStatisticsHourMapper extends BaseMapper<GuildDiamondStatisticsHour> {
|
||||
|
||||
int updateHourDiamondStatistics(@Param("statDate")String statDate, @Param("hourDate")String hourDate,
|
||||
@Param("guildMemberId")Long guildMemberId, @Param("partitionId") Integer partitionId, @Param("guildId")Integer guildId, @Param("uid")Long uid,
|
||||
@Param("diamond")Double diamond, @Param("time") Date time);
|
||||
|
||||
Page<GuildDiamondStatisticsHourVo> listGuildByStatDate(@Param("ipage") Page<GuildDiamondStatisticsHourVo> ipage,
|
||||
@Param("startDate")String startDate, @Param("endDate")String endDate,
|
||||
@Param("guildId") Integer guildId,
|
||||
@Param("partitionId") Integer partitionId,
|
||||
@Param("regionId") Integer regionId,
|
||||
@Param("inviteUid") Long inviteUid);
|
||||
}
|
@@ -18,10 +18,12 @@ import com.accompany.common.utils.ReplaceAppDomainUtils;
|
||||
import com.accompany.common.utils.UUIDUtil;
|
||||
import com.accompany.core.base.SpringContextHolder;
|
||||
import com.accompany.core.enumeration.I18nAlertEnum;
|
||||
import com.accompany.core.model.PartitionInfo;
|
||||
import com.accompany.core.model.Room;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.mybatismapper.RoomMapperExpand;
|
||||
import com.accompany.core.service.base.BaseService;
|
||||
import com.accompany.core.service.partition.PartitionInfoService;
|
||||
import com.accompany.core.util.I18NMessageSourceUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
@@ -61,6 +63,8 @@ public class SendSysMsgService extends BaseService {
|
||||
|
||||
@Autowired
|
||||
private RoomMapperExpand roomMapperExpand;
|
||||
@Autowired
|
||||
private PartitionInfoService partitionInfoService;
|
||||
|
||||
/**
|
||||
* 发送系统通知,捕获异常不抛出。
|
||||
@@ -546,13 +550,33 @@ public class SendSysMsgService extends BaseService {
|
||||
});
|
||||
}
|
||||
|
||||
public void sendMessageToPartition(Integer partitionId, int first, int second, Object data) {
|
||||
public void sendSingleRoomMessage(long roomId, String fromAccId, BaseChatRoomMsg msg) {
|
||||
try {
|
||||
String msgId = UUIDUtil.get();
|
||||
this.erBanNetEaseService.sendChatRoomMsg(roomId, msgId, fromAccId,
|
||||
msg.getMsgType(), msg.getAttach(), msg.getExt());
|
||||
} catch (Exception e) {
|
||||
log.error("发送房间消息失败[roomId : {}, fromAccId : {}, message : {}]",
|
||||
roomId, fromAccId, msg, e);
|
||||
}
|
||||
}
|
||||
|
||||
public void sendMessageToPartition(int partitionId, int first, int second, Object data) {
|
||||
Attach attach = new Attach(first, second, data);
|
||||
sendMessageToPartition(partitionId, attach);
|
||||
}
|
||||
|
||||
public void sendMessageToPartition(Integer partitionId, Attach attach) {
|
||||
public void sendMessageToPartition(int partitionId, Attach attach) {
|
||||
attach.setAllRoomMsg(Constant.Yes1No0.YES);
|
||||
BaseChatRoomMsg msg = BaseChatRoomMsg.buildBaseChatRoomMsg(attach);
|
||||
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
|
||||
if (partitionInfo == null){
|
||||
return;
|
||||
}
|
||||
|
||||
sendSingleRoomMessage(partitionInfo.getPublicChatRoomId(), SystemConfig.secretaryUid, attach);
|
||||
|
||||
sendMessageToPartition(partitionId, msg);
|
||||
}
|
||||
|
||||
@@ -562,7 +586,16 @@ public class SendSysMsgService extends BaseService {
|
||||
}
|
||||
|
||||
public void sendMessageToPartition(Room curRoom, Attach attach) {
|
||||
attach.setAllRoomMsg(Constant.Yes1No0.YES);
|
||||
BaseChatRoomMsg msg = BaseChatRoomMsg.buildBaseChatRoomMsg(attach);
|
||||
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(curRoom.getPartitionId());
|
||||
if (partitionInfo == null){
|
||||
return;
|
||||
}
|
||||
|
||||
sendSingleRoomMessage(partitionInfo.getPublicChatRoomId(), SystemConfig.secretaryUid, attach);
|
||||
|
||||
sendMessageToPartition(curRoom, msg);
|
||||
}
|
||||
|
||||
@@ -608,6 +641,15 @@ public class SendSysMsgService extends BaseService {
|
||||
}
|
||||
|
||||
public void sendFloatingMessageForRoom(FloatingMessageTemplate message) {
|
||||
int partitionId = message.getPartitionId();
|
||||
|
||||
PartitionInfo partitionInfo = partitionInfoService.getById(partitionId);
|
||||
if (partitionInfo == null){
|
||||
return;
|
||||
}
|
||||
|
||||
sendFloatingMessageForRoom(partitionInfo.getPublicChatRoomId(), Long.parseLong(SystemConfig.secretaryUid), message);
|
||||
|
||||
List<Room> validRooms = this.roomMapperExpand.listValidRoomsByPartitionId(null, message.getPartitionId());
|
||||
if (CollectionUtils.isEmpty(validRooms)){
|
||||
return;
|
||||
|
@@ -141,7 +141,7 @@ public class LuckyNumberActService {
|
||||
vo.setLuckyNumber(round.getLuckyNumber());
|
||||
|
||||
ZonedDateTime zdt = ZonedDateTime.parse(round.getEndTime(), DateTimeFormatter.ISO_ZONED_DATE_TIME);
|
||||
vo.setEndTime(zdt.format(DateTimeUtil.dateHourFormatter));
|
||||
vo.setEndTime(zdt.format(DateTimeUtil.dateHourMinutesFormatter));
|
||||
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
@@ -205,7 +205,7 @@ public class LuckyNumberActService {
|
||||
vo.setDate(record.getDate());
|
||||
|
||||
ZonedDateTime zdt = ZonedDateTime.parse(round.getEndTime(), DateTimeFormatter.ISO_ZONED_DATE_TIME);
|
||||
vo.setEndTime(zdt.format(DateTimeUtil.dateHourFormatter));
|
||||
vo.setEndTime(zdt.format(DateTimeUtil.dateHourMinutesFormatter));
|
||||
|
||||
vo.setLuckyNumber(round.getLuckyNumber());
|
||||
vo.setNumberList(record.getNumberList());
|
||||
|
@@ -56,7 +56,7 @@ public class CarGoodsService extends BaseService {
|
||||
* @return
|
||||
*/
|
||||
public List<CarGoods> getCarGoodsList(Integer page, Integer pageSize, Byte status, Boolean goldSale,
|
||||
Integer carGoodsId, String carGoodsName, Byte carGoodsType, Integer partitionId) {
|
||||
Integer carGoodsId, String carGoodsName, Byte carGoodsType, Integer partitionId, List<Integer> carGoodsIds) {
|
||||
page = (page == null || page <= 0) ? DEFAULT_PAGE : page;
|
||||
pageSize = (pageSize == null || pageSize <= 0) ? DEFAULT_PAGE_SIZE : pageSize;
|
||||
int offSet = (page - 1) * pageSize;
|
||||
@@ -65,6 +65,9 @@ public class CarGoodsService extends BaseService {
|
||||
if (null != carGoodsId){
|
||||
criteria.andIdEqualTo(carGoodsId);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(carGoodsIds)) {
|
||||
criteria.andIdIn(carGoodsIds);
|
||||
}
|
||||
if (status != null) {
|
||||
criteria.andEnableEqualTo(status);
|
||||
}
|
||||
@@ -89,7 +92,7 @@ public class CarGoodsService extends BaseService {
|
||||
public List<UserCarGoodsVo> getUserCarGoodsList(Integer page, Integer pageSize, Long uid, Boolean goldSale) {
|
||||
List<UserCarGoodsVo> userCarGoodsVoList = Lists.newArrayList();
|
||||
List<CarGoods> carGoodsList = this.getCarGoodsList(page, pageSize, Constant.CarGoodsEnable.ENABLE, goldSale,
|
||||
null, null, null, null);
|
||||
null, null, null, null, null);
|
||||
if (carGoodsList == null || carGoodsList.isEmpty()) {
|
||||
return userCarGoodsVoList;
|
||||
}
|
||||
@@ -150,12 +153,15 @@ public class CarGoodsService extends BaseService {
|
||||
* @param carGoodsType
|
||||
* @return
|
||||
*/
|
||||
public Integer countCarGoods(Byte status, Integer carGoodsId, String carGoodsName, Byte carGoodsType, Integer partitionId) {
|
||||
public Integer countCarGoods(Byte status, Integer carGoodsId, String carGoodsName, Byte carGoodsType, Integer partitionId, List<Integer> carGoodsIds) {
|
||||
CarGoodsExample example = new CarGoodsExample();
|
||||
CarGoodsExample.Criteria criteria = example.createCriteria();
|
||||
if (null != carGoodsId){
|
||||
criteria.andIdEqualTo(carGoodsId);
|
||||
}
|
||||
if (!CollectionUtils.isEmpty(carGoodsIds)) {
|
||||
criteria.andIdIn(carGoodsIds);
|
||||
}
|
||||
if (status != null) {
|
||||
criteria.andEnableEqualTo(status);
|
||||
}
|
||||
|
@@ -0,0 +1,33 @@
|
||||
package com.accompany.business.service.guild;
|
||||
|
||||
import com.accompany.business.model.guild.GuildDiamondStatisticsHour;
|
||||
import com.accompany.business.model.guild.GuildMember;
|
||||
import com.accompany.business.mybatismapper.guild.GuildDiamondStatisticsHourMapper;
|
||||
import com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 公会钻石流水统计按小时 服务实现类
|
||||
*
|
||||
* @author
|
||||
* @since 2025-10-17
|
||||
*/
|
||||
@Service
|
||||
public class GuildDiamondStatisticsHourService extends ServiceImpl<GuildDiamondStatisticsHourMapper, GuildDiamondStatisticsHour> {
|
||||
|
||||
public int updateHourDiamondStatistics(String statDate, String hourDate, GuildMember guildMember, double diamond) {
|
||||
Date time = new Date();
|
||||
int updated = baseMapper.updateHourDiamondStatistics(statDate, hourDate, guildMember.getId(), guildMember.getPartitionId(), guildMember.getGuildId(), guildMember.getUid(), diamond, time);
|
||||
return updated;
|
||||
}
|
||||
|
||||
public Page<GuildDiamondStatisticsHourVo> listGuildByStatDate(String statDate, String endDate, Integer partitionId, Integer regionId,
|
||||
Integer guildId, Integer pageNo, Integer pageSize, Long inviteUid) {
|
||||
Page<GuildDiamondStatisticsHourVo> page = new Page<>(pageNo, pageSize);
|
||||
return baseMapper.listGuildByStatDate(page, statDate, endDate, guildId, partitionId, regionId, inviteUid);
|
||||
}
|
||||
}
|
@@ -46,6 +46,9 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
|
||||
private ApplicationContext applicationContext;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsPolicy2Service guildDiamondStatisticsPolicy2Service;
|
||||
@Autowired
|
||||
private GuildDiamondStatisticsHourService guildDiamondStatisticsHourService;
|
||||
|
||||
|
||||
@Async
|
||||
public void insertGuildGiftRecord(GiftSendRecord giftSendRecord) {
|
||||
@@ -76,16 +79,20 @@ public class GuildGiftRecordService extends ServiceImpl<GuildGiftRecordMapper, G
|
||||
}
|
||||
|
||||
Date createTime = giftSendRecord.getCreateTime();
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
Double totalDiamondNum = giftSendRecord.getTotalDiamondNum();
|
||||
if (Constant.ClanMode.GUILD.equals(partitionInfo.getClanMode())) {
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(createTime, partitionInfo.getZoneId());
|
||||
guildMemberDiamondStatisticsService.update(cycleDate, guildMember, giftSendRecord.getTotalDiamondNum());
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, giftSendRecord.getTotalDiamondNum());
|
||||
guildMemberDiamondStatisticsService.update(cycleDate, guildMember, totalDiamondNum);
|
||||
statDate = FullMonthCycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsDayService.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum);
|
||||
} else if (Constant.ClanMode.GUILD_POLICY2.equals(partitionInfo.getClanMode())) {
|
||||
String cycleDate = FullMonthCycleTimeUtil.getCycleDateByZoneId(createTime, partitionInfo.getZoneId());
|
||||
String statDate = FullMonthCycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, giftSendRecord.getTotalDiamondNum());
|
||||
statDate = FullMonthCycleTimeUtil.getCycleDay(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsPolicy2Service.updateDayDiamondStatistics(cycleDate, statDate, guildMember, totalDiamondNum);
|
||||
}
|
||||
String dayHourDate = DateTimeUtil.getDayHourDate(createTime, partitionInfo.getZoneId());
|
||||
guildDiamondStatisticsHourService.updateHourDiamondStatistics(statDate, dayHourDate, guildMember, totalDiamondNum);
|
||||
|
||||
guildRankService.updateRank(guildGiftRecord);
|
||||
|
||||
|
@@ -28,8 +28,7 @@
|
||||
<if test="familyId != null">
|
||||
and fm.family_id = #{familyId}
|
||||
</if>
|
||||
and fm.family_id = 11
|
||||
and (fm.enable = 1 or (fm.update_time between '2025-10-01 00:00:00' and '2025-10-15 23:59:59'))
|
||||
and (fm.enable = 1 or (fm.update_time between #{startTime} and #{endTime}))
|
||||
group by family_id, uid
|
||||
) fmm on fm.id = fmm.id
|
||||
order by role_type asc , enable desc, create_time asc
|
||||
|
@@ -0,0 +1,48 @@
|
||||
<?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">
|
||||
<mapper namespace="com.accompany.business.mybatismapper.guild.GuildDiamondStatisticsHourMapper">
|
||||
|
||||
<update id="updateHourDiamondStatistics">
|
||||
INSERT INTO `guild_diamond_statistics_hour` (`stat_date`, `stat_hour`, `guild_member_id`, `partition_id`, `uid`,
|
||||
`guild_id`, `diamond_num`, `create_time`, `update_time`)
|
||||
VALUES (#{statDate}, #{hourDate}, #{guildMemberId}, #{partitionId}, #{uid}, #{guildId}, #{diamond}, #{time},
|
||||
#{time}) ON DUPLICATE KEY
|
||||
UPDATE
|
||||
diamond_num = diamond_num +
|
||||
values (diamond_num), update_time =
|
||||
values (update_time)
|
||||
</update>
|
||||
|
||||
<select id="listGuildByStatDate" resultType="com.accompany.business.vo.guild.GuildDiamondStatisticsHourVo">
|
||||
select gd.guild_id guildId,
|
||||
ANY_VALUE(g.name) guildName,
|
||||
sum(gd.diamond_num) diamondNum,
|
||||
ANY_VALUE(u.erban_no) ownerErbanNo,
|
||||
ANY_VALUE(ri.name) ownerRegionDesc,
|
||||
ANY_VALUE(au.username) adminUsername,
|
||||
ifnull(a.memberNum, 0) memberNum,
|
||||
gd.partition_id partitionId
|
||||
from guild_diamond_statistics_hour gd
|
||||
inner join guild g on g.id = gd.guild_id
|
||||
inner join users u on u.uid = g.owner_uid
|
||||
left join region_info ri on ri.id = u.region_id
|
||||
left join admin_user au on au.id = g.admin_id
|
||||
left join (select guild_id, count(distinct uid) memberNum from guild_member where `enable` = 1 and role_type != 1 GROUP BY guild_id) a on a.guild_id = g.id
|
||||
where gd.stat_hour >= #{startDate}
|
||||
and gd.stat_hour <= #{endDate}
|
||||
<if test="partitionId != null and partitionId != 0">
|
||||
and gd.partition_id = #{partitionId}
|
||||
</if>
|
||||
<if test="regionId != null and regionId != 0">
|
||||
and u.region_id = #{regionId}
|
||||
</if>
|
||||
<if test="guildId != null">
|
||||
and gd.guild_id = #{guildId}
|
||||
</if>
|
||||
<if test="inviteUid != null">
|
||||
and g.invite_uid = #{inviteUid}
|
||||
</if>
|
||||
group by gd.guild_id
|
||||
ORDER BY diamondNum desc,memberNum desc, gd.guild_id desc
|
||||
</select>
|
||||
</mapper>
|
@@ -3,59 +3,55 @@ spring:
|
||||
dynamic-datasource:
|
||||
master:
|
||||
poolName: master
|
||||
jdbcUrl: jdbc:mysql://124.156.164.187:3306/peko?useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
jdbcUrl: jdbc:mysql://129.226.62.202:3306/eparty?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
username: root
|
||||
password: anan@dev##
|
||||
password: eparty@dev##
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
hikari:
|
||||
minimum-idle: 4
|
||||
maximum-pool-size: 16
|
||||
minimum-idle: 10
|
||||
maximum-pool-size: 20
|
||||
connection-test-query: select 1
|
||||
max-lifetime: 1800000 # 30分钟
|
||||
validation-timeout: 6000 # 验证连接的最大等待时间
|
||||
idle-timeout: 600000 # 空闲连接超时时间(10分钟)
|
||||
max-lifetime: 7000
|
||||
slave:
|
||||
poolName: slave
|
||||
jdbcUrl: jdbc:mysql://124.156.164.187:3306/peko?useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
jdbcUrl: jdbc:mysql://129.226.62.202:3306/eparty?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
username: root
|
||||
password: anan@dev##
|
||||
password: eparty@dev##
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
hikari:
|
||||
minimum-idle: 4
|
||||
maximum-pool-size: 32
|
||||
minimum-idle: 10
|
||||
maximum-pool-size: 20
|
||||
connection-test-query: select 1
|
||||
max-lifetime: 1800000 # 30分钟
|
||||
validation-timeout: 6000 # 验证连接的最大等待时间
|
||||
idle-timeout: 600000 # 空闲连接超时时间(10分钟)
|
||||
max-lifetime: 7000
|
||||
redis:
|
||||
host: 124.156.164.187
|
||||
host: 129.226.62.202
|
||||
port: 6200
|
||||
maxTotal: 24
|
||||
maxIdle: 12
|
||||
maxTotal: 100
|
||||
maxIdle: 50
|
||||
maxWait: 2500
|
||||
testOnBorrow: true
|
||||
testOnReturn: true
|
||||
password: anan@dev@redis@#!
|
||||
password: pc8DphhaXwTe2jyv
|
||||
redisson:
|
||||
# file: classpath:redisson.yaml
|
||||
config: |
|
||||
singleServerConfig:
|
||||
address: redis://124.156.164.187:6200
|
||||
password: anan@dev@redis@#!
|
||||
address: redis://129.226.62.202:6200
|
||||
password: pc8DphhaXwTe2jyv
|
||||
connectionMinimumIdleSize: 4
|
||||
timeout: 10000
|
||||
threads: 2
|
||||
nettyThreads: 4
|
||||
threads: 8
|
||||
nettyThreads: 16
|
||||
codec: !<org.redisson.codec.JsonJacksonCodec> {}
|
||||
transportMode: "NIO"
|
||||
|
||||
## rocketmq 配置
|
||||
rocketmq:
|
||||
name-server: 124.156.164.187:9876
|
||||
name-server: 129.226.62.202:9876
|
||||
producer:
|
||||
group: peko-group
|
||||
group: eparty-group
|
||||
sendMessageTimeout: 300000
|
||||
|
||||
server:
|
||||
|
@@ -19,7 +19,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
@@ -42,7 +42,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
|
@@ -3,9 +3,9 @@ spring:
|
||||
dynamic-datasource:
|
||||
master:
|
||||
poolName: master
|
||||
jdbcUrl: jdbc:mysql://124.156.164.187:3306/peko?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
jdbcUrl: jdbc:mysql://129.226.62.202:3306/eparty?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
username: root
|
||||
password: anan@dev##
|
||||
password: eparty@dev##
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
hikari:
|
||||
@@ -15,9 +15,9 @@ spring:
|
||||
max-lifetime: 7000
|
||||
slave:
|
||||
poolName: slave
|
||||
jdbcUrl: jdbc:mysql://124.156.164.187:3306/peko?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
jdbcUrl: jdbc:mysql://129.226.62.202:3306/eparty?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&tinyInt1isBit=false&useSSL=false&useCursorFetch=true
|
||||
username: root
|
||||
password: anan@dev##
|
||||
password: eparty@dev##
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
type: com.zaxxer.hikari.HikariDataSource
|
||||
hikari:
|
||||
@@ -26,20 +26,20 @@ spring:
|
||||
connection-test-query: select 1
|
||||
max-lifetime: 7000
|
||||
redis:
|
||||
host: 124.156.164.187
|
||||
host: 129.226.62.202
|
||||
port: 6200
|
||||
maxTotal: 100
|
||||
maxIdle: 50
|
||||
maxWait: 2500
|
||||
testOnBorrow: true
|
||||
testOnReturn: true
|
||||
password: anan@dev@redis@#!
|
||||
password: pc8DphhaXwTe2jyv
|
||||
redisson:
|
||||
# file: classpath:redisson.yaml
|
||||
config: |
|
||||
singleServerConfig:
|
||||
address: redis://124.156.164.187:6200
|
||||
password: anan@dev@redis@#!
|
||||
address: redis://129.226.62.202:6200
|
||||
password: pc8DphhaXwTe2jyv
|
||||
connectionMinimumIdleSize: 4
|
||||
timeout: 10000
|
||||
threads: 8
|
||||
@@ -49,9 +49,9 @@ spring:
|
||||
|
||||
## rocketmq 配置
|
||||
rocketmq:
|
||||
name-server: 124.156.164.187:9876
|
||||
name-server: 129.226.62.202:9876
|
||||
producer:
|
||||
group: peko-group
|
||||
group: eparty-group
|
||||
sendMessageTimeout: 300000
|
||||
|
||||
server:
|
||||
|
@@ -19,7 +19,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
@@ -42,7 +42,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
|
@@ -16,7 +16,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
@@ -39,7 +39,7 @@ spring:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: 124.156.164.187:8848
|
||||
namespace: 8c62facb-be55-4bd3-9120-0c0c2ff564e9
|
||||
namespace: a08ed001-51c0-4dbf-a1df-6e13e0edf1a8
|
||||
file-extension: yml
|
||||
shared-configs:
|
||||
- data-id: application.yml
|
||||
|
Reference in New Issue
Block a user