|
|
|
@ -16,9 +16,12 @@ import org.springframework.stereotype.Service; |
|
|
|
import org.dromara.im.domain.bo.ImChatPackageBo; |
|
|
|
import org.dromara.im.domain.vo.ImChatPackageVo; |
|
|
|
import org.dromara.im.domain.ImChatPackage; |
|
|
|
import org.dromara.im.domain.ImAgent; |
|
|
|
import org.dromara.im.mapper.ImChatPackageMapper; |
|
|
|
import org.dromara.im.mapper.ImAgentMapper; |
|
|
|
import org.dromara.im.service.IImChatPackageService; |
|
|
|
|
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Collection; |
|
|
|
@ -36,6 +39,8 @@ public class ImChatPackageServiceImpl implements IImChatPackageService { |
|
|
|
|
|
|
|
private final ImChatPackageMapper baseMapper; |
|
|
|
|
|
|
|
private final ImAgentMapper imAgentMapper; |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询套餐 |
|
|
|
* |
|
|
|
@ -141,4 +146,49 @@ public class ImChatPackageServiceImpl implements IImChatPackageService { |
|
|
|
} |
|
|
|
return baseMapper.deleteByIds(ids) > 0; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 分配套餐给代理 |
|
|
|
* |
|
|
|
* @param agentId 代理ID |
|
|
|
* @param packageId 套餐ID |
|
|
|
* @return 是否分配成功 |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public Boolean allocatePackages(Long agentId, Long packageId) { |
|
|
|
// 根据agentId查找ImAgent实体类
|
|
|
|
ImAgent agent = imAgentMapper.selectById(agentId); |
|
|
|
if (agent == null) { |
|
|
|
throw new RuntimeException("代理不存在"); |
|
|
|
} |
|
|
|
|
|
|
|
// 获取packageExpireTime,如果为null或空则赋值为当前时间
|
|
|
|
Date packageExpireTime = agent.getPackageExpireTime(); |
|
|
|
if (packageExpireTime == null) { |
|
|
|
packageExpireTime = DateUtil.date(); |
|
|
|
} |
|
|
|
|
|
|
|
// 根据packageId查找ImChatPackage实体类
|
|
|
|
ImChatPackage chatPackage = baseMapper.selectById(packageId); |
|
|
|
if (chatPackage == null) { |
|
|
|
throw new RuntimeException("套餐不存在"); |
|
|
|
} |
|
|
|
|
|
|
|
// 获取durationDays
|
|
|
|
Long durationDays = chatPackage.getDurationDays(); |
|
|
|
if (durationDays == null) { |
|
|
|
throw new RuntimeException("套餐天数不能为空"); |
|
|
|
} |
|
|
|
|
|
|
|
// 将durationDays加到packageExpireTime上
|
|
|
|
packageExpireTime = DateUtil.offsetDay(packageExpireTime, durationDays.intValue()); |
|
|
|
|
|
|
|
// 格式化为该日期的零点零分零秒
|
|
|
|
packageExpireTime = DateUtil.beginOfDay(packageExpireTime); |
|
|
|
|
|
|
|
// 更新ImAgent的packageExpireTime
|
|
|
|
agent.setPackageExpireTime(packageExpireTime); |
|
|
|
|
|
|
|
return imAgentMapper.updateById(agent) > 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|