Merge branch 'dev/dev_xp' into dev/3.1_release_merge

This commit is contained in:
2025-09-22 14:17:05 +08:00
5 changed files with 32 additions and 19 deletions

View File

@@ -24,8 +24,8 @@ public class AccountTask {
* 替换为 * 替换为
* 每个月月初只刷新教育子账号的积分 * 每个月月初只刷新教育子账号的积分
*/ */
// @Scheduled(cron = "0 0 16 * * ?") @Scheduled(cron = "0 25 14 * * ?")
@Scheduled(cron = "0 0 0 1 * ?") // @Scheduled(cron = "0 0 0 1 * ?")
public void refreshCreditsMonthly() { public void refreshCreditsMonthly() {
log.info("每月1号0点 重置教育版子账号为默认积分"); log.info("每月1号0点 重置教育版子账号为默认积分");
accountService.refreshCreditsMonthly(); accountService.refreshCreditsMonthly();
@@ -80,4 +80,9 @@ public class AccountTask {
log.info("重置所有用户的用户名修改次数"); log.info("重置所有用户的用户名修改次数");
redisUtil.batchDeleteKeysWithSamePrefix(RedisUtil.NICKNAME_MODIFY_TIMES); redisUtil.batchDeleteKeysWithSamePrefix(RedisUtil.NICKNAME_MODIFY_TIMES);
} }
@Scheduled(cron = "0 35 14 * * ?")
public void checkEduAdminExpireStatus() {
accountService.checkEduAdminExpireStatus();
}
} }

View File

@@ -26,7 +26,7 @@ public class ToProductImageResult implements Serializable {
* ProductElement 上传的图片 * ProductElement 上传的图片
* ToProductImage 以to product image的结果作为图片来源(relight) * ToProductImage 以to product image的结果作为图片来源(relight)
*/ */
@ApiModelProperty(value = "elementType") @ApiModelProperty(value = "elementType 图片来源DesignOutfit(design的结果) | ProductElement(上传的图片) | ToProductImage(生成的结果)")
private String elementType; private String elementType;
@ApiModelProperty(value = "url") @ApiModelProperty(value = "url")

View File

@@ -1071,25 +1071,31 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
public void upgradeNotification() { public void upgradeNotification() {
QueryWrapper<Account> queryWrapper = new QueryWrapper<>(); QueryWrapper<Account> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().ne(Account::getSystemUser, 0); queryWrapper.lambda().ne(Account::getSystemUser, 0);
// queryWrapper.lambda().eq(Account::isDeleted, 0).isNotNull(Account::getUserEmail);
List<Account> accountList = accountMapper.selectList(queryWrapper); List<Account> accountList = accountMapper.selectList(queryWrapper);
System.out.println(accountList);
int i = 0; int i = 0;
int size = accountList.size(); int size = accountList.size();
for (Account account : accountList) { for (Account account : accountList) {
i ++; i ++;
try { if (account != null && !StringUtil.isNullOrEmpty(account.getUserEmail())){
if (account.getLanguage().equals(Language.CHINESE_SIMPLIFIED.name())) { try {
log.info("进度:{} / {} CN - {}", i, size, account.getUserEmail()); if (account.getLanguage().equals(Language.CHINESE_SIMPLIFIED.name())) {
SendEmailUtil.sendUpgradeNotification(account, null, 0); log.info("进度:{} / {} CN - {}", i, size, account.getUserEmail());
} else { SendEmailUtil.sendUpgradeNotification(account, null, 0);
log.info("进度:{} / {} EN - {}", i, size, account.getUserEmail()); } else {
// 英文 log.info("进度:{} / {} EN - {}", i, size, account.getUserEmail());
SendEmailUtil.sendUpgradeNotification(account, null, 1); // 英文
SendEmailUtil.sendUpgradeNotification(account, null, 1);
}
}catch (Exception e) {
log.error("向 {} 发送邮件失败", account.getUserEmail());
log.error(e.getMessage());
} }
}catch (Exception e) { } else if (account != null){
log.error("向 {} 发送邮件失败", account.getUserEmail()); log.warn("用户id 为 {},邮箱为空", account.getId());
log.error(e.getMessage()); } else {
log.warn("进度:{} / {} account 为空", i, size);
} }
} }
} }

View File

@@ -55,7 +55,7 @@ public class ProductImageServiceImpl implements ProductImageService {
@Async @Async
@Override @Override
public void asyncInitialize(Long brandId, AuthPrincipalVo userHolder) { public void asyncInitialize(Long brandId, AuthPrincipalVo userHolder) {
System.out.println(">>> [asyncInitialize] 当前线程:" + Thread.currentThread().getName()); log.info(">>> [asyncInitialize] 当前线程:{}", Thread.currentThread().getName());
String progressKey = String.valueOf(brandId); String progressKey = String.valueOf(brandId);
ProgressDTO progressDTO = redisUtil.getTaskProgressDTO(progressKey); ProgressDTO progressDTO = redisUtil.getTaskProgressDTO(progressKey);
@@ -77,7 +77,9 @@ public class ProductImageServiceImpl implements ProductImageService {
progressDTO.setTotal(libraryIds.size()); progressDTO.setTotal(libraryIds.size());
int current = 0; int current = 0;
int size = libraryIds.size();
for (Long libraryId : libraryIds) { for (Long libraryId : libraryIds) {
log.info("Brand DNA Compute进度{} / {}", current, size);
Library library = libraryMapper.selectById(libraryId); Library library = libraryMapper.selectById(libraryId);
if (Objects.isNull(library)){ if (Objects.isNull(library)){
continue; continue;

View File

@@ -2398,7 +2398,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
} }
} }
} }
if (!CollectionUtils.isEmpty(moduleSaveDTO.getPrintBoard())){ if (Objects.nonNull(moduleSaveDTO.getPrintBoard())){
List<DesignCollectionPrintElementDTO> printBoards = moduleSaveDTO.getPrintBoard(); List<DesignCollectionPrintElementDTO> printBoards = moduleSaveDTO.getPrintBoard();
QueryWrapper<CollectionElement> qw = new QueryWrapper<>(); QueryWrapper<CollectionElement> qw = new QueryWrapper<>();
qw.lambda().eq(CollectionElement::getProjectId, projectId); qw.lambda().eq(CollectionElement::getProjectId, projectId);
@@ -2455,7 +2455,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
collectionElementMapper.deleteBatchIds(old); collectionElementMapper.deleteBatchIds(old);
} }
} }
if (!CollectionUtils.isEmpty(moduleSaveDTO.getColorBoard())){ if (Objects.nonNull(moduleSaveDTO.getColorBoard())){
List<CollectionColorDTO> colorBoards = moduleSaveDTO.getColorBoard(); List<CollectionColorDTO> colorBoards = moduleSaveDTO.getColorBoard();
QueryWrapper<CollectionElement> qw = new QueryWrapper<>(); QueryWrapper<CollectionElement> qw = new QueryWrapper<>();
qw.lambda().eq(CollectionElement::getProjectId, projectId); qw.lambda().eq(CollectionElement::getProjectId, projectId);
@@ -2489,7 +2489,7 @@ public class UserLikeGroupServiceImpl extends ServiceImpl<UserLikeGroupMapper, U
collectionElementMapper.deleteBatchIds(old); collectionElementMapper.deleteBatchIds(old);
} }
} }
if (!CollectionUtils.isEmpty(moduleSaveDTO.getSketchBoard())){ if (Objects.nonNull(moduleSaveDTO.getSketchBoard())){
boundingBox = true; boundingBox = true;
QueryWrapper<CollectionElement> qw = new QueryWrapper<>(); QueryWrapper<CollectionElement> qw = new QueryWrapper<>();
qw.lambda().eq(CollectionElement::getProjectId, projectId); qw.lambda().eq(CollectionElement::getProjectId, projectId);