aidaV1.2
update the code until 25 May 2023
This commit is contained in:
@@ -97,6 +97,7 @@ public interface CollectionElementService extends IService<CollectionElement> {
|
||||
*/
|
||||
List<CollectionElementVO> saveColorBoard(List<CollectionColorDTO> colorBoards, Long collectionId, String timeZone);
|
||||
|
||||
|
||||
/**
|
||||
* 根据collection查询
|
||||
*
|
||||
@@ -105,6 +106,13 @@ public interface CollectionElementService extends IService<CollectionElement> {
|
||||
*/
|
||||
List<CollectionElement> getByCollectionId(Long collectionId);
|
||||
|
||||
List<CollectionElement> getByOnlyCollectionId(Long collectionId);
|
||||
|
||||
DesignLibraryModelPointVO calculateTemplatePoint(LibraryModelPoint modelPoint, Integer high, Integer width, String templateUrl);
|
||||
|
||||
/**
|
||||
* 刷新历史数据
|
||||
*/
|
||||
void refreshHistoryData() ;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.ai.da.service;
|
||||
|
||||
import com.ai.da.mapper.entity.TCollectionElementRelation;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* collection和element的关联表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author yanglei
|
||||
* @since 2023-05-07
|
||||
*/
|
||||
public interface TCollectionElementRelationService extends IService<TCollectionElementRelation> {
|
||||
void deleteByCollectionId(Long collectionId);
|
||||
List<Long> getByCollectionId(Long collectionId);
|
||||
}
|
||||
@@ -18,6 +18,7 @@ import com.ai.da.model.vo.AccountPreLoginVO;
|
||||
import com.ai.da.model.vo.AuthPrincipalVo;
|
||||
import com.ai.da.service.AccountLoginLogService;
|
||||
import com.ai.da.service.AccountService;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -61,6 +62,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
|
||||
@Override
|
||||
public AccountPreLoginVO preLogin(AccountPreLoginDTO accountDTO) {
|
||||
log.info("aida预先登入accountDTO###{}", JSON.toJSONString(accountDTO));
|
||||
Account account = getOneByUserName(accountDTO.getUserName());
|
||||
Assert.isTrue(Objects.nonNull(account),"User does not exist!");
|
||||
//用户有效期校验
|
||||
@@ -77,9 +79,9 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
@Transactional
|
||||
@Override
|
||||
public AccountLoginVO login(AccountLoginDTO accountLoginDTO, HttpServletRequest request) {
|
||||
Account accountExist = getOneByUserId(accountLoginDTO.getUserId());
|
||||
log.info("aida确认登入###accountLoginDTO###{}", JSON.toJSONString(accountLoginDTO));
|
||||
Account accountExist = getOneByEmail(accountLoginDTO.getEmail().trim());
|
||||
Assert.notNull(accountExist,"User does not exist!");
|
||||
Assert.isTrue(accountLoginDTO.getEmail().equals(accountExist.getUserEmail()),"Email not registered!");
|
||||
|
||||
LoginTypeEnum accountType = LoginTypeEnum.of(accountLoginDTO.getLoginType());
|
||||
if (Objects.isNull(accountType)|| accountType.equals(LoginTypeEnum.PASSWORD)) {
|
||||
@@ -101,7 +103,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
||||
case EMAIL:
|
||||
Assert.isTrue(StringUtils.isNotBlank(accountLoginDTO.getEmail()), "Please input a email !");
|
||||
Assert.isTrue(StringUtils.isNotBlank(accountLoginDTO.getEmailVerifyCode()), "Please input the email verification code !");
|
||||
account = getOneByEmail(accountLoginDTO.getEmail());
|
||||
account = getOneByEmail(accountLoginDTO.getEmail().trim());
|
||||
if (Objects.isNull(account)) {
|
||||
throw new BusinessException("Email not registered!");
|
||||
}
|
||||
|
||||
@@ -5,25 +5,23 @@ import com.ai.da.common.config.FileProperties;
|
||||
import com.ai.da.common.config.exception.BusinessException;
|
||||
import com.ai.da.common.context.UserContext;
|
||||
import com.ai.da.common.enums.*;
|
||||
import com.ai.da.common.response.PageBaseResponse;
|
||||
import com.ai.da.common.utils.CopyUtil;
|
||||
import com.ai.da.common.utils.DateUtil;
|
||||
import com.ai.da.common.utils.FileUtil;
|
||||
import com.ai.da.common.utils.MD5Utils;
|
||||
import com.ai.da.mapper.CollectionElementMapper;
|
||||
import com.ai.da.mapper.entity.*;
|
||||
import com.ai.da.mapper.entity.Collection;
|
||||
import com.ai.da.mapper.entity.CollectionElement;
|
||||
import com.ai.da.mapper.entity.Library;
|
||||
import com.ai.da.mapper.entity.LibraryModelPoint;
|
||||
import com.ai.da.model.dto.*;
|
||||
import com.ai.da.model.vo.*;
|
||||
import com.ai.da.python.PythonService;
|
||||
import com.ai.da.python.vo.DesignPythonItem;
|
||||
import com.ai.da.service.CollectionElementService;
|
||||
import com.ai.da.service.LibraryModelPointService;
|
||||
import com.ai.da.service.LibraryService;
|
||||
import com.ai.da.service.PanToneService;
|
||||
import com.ai.da.service.*;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Lists;
|
||||
import javafx.scene.chart.ValueAxis;
|
||||
@@ -32,6 +30,7 @@ import org.bouncycastle.LICENSE;
|
||||
import org.bouncycastle.cms.CMSAuthenticatedGenerator;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.reactive.AbstractReactiveTransactionManager;
|
||||
import org.springframework.util.Assert;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.util.StringUtils;
|
||||
@@ -65,6 +64,8 @@ public class CollectionElementServiceImpl extends ServiceImpl<CollectionElementM
|
||||
private LibraryService libraryService;
|
||||
@Resource
|
||||
private LibraryModelPointService libraryModelPointService;
|
||||
@Resource
|
||||
private TCollectionElementRelationService tCollectionElementRelationService;
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
@@ -477,6 +478,36 @@ public class CollectionElementServiceImpl extends ServiceImpl<CollectionElementM
|
||||
}
|
||||
return CopyUtil.copyList(colorElements, CollectionElementVO.class);
|
||||
}
|
||||
@Override
|
||||
public void refreshHistoryData() {
|
||||
//幂等
|
||||
if(!CollectionUtils.isEmpty(tCollectionElementRelationService.getByCollectionId(1083L))){
|
||||
return;
|
||||
}
|
||||
// 分页数据
|
||||
QueryWrapper<CollectionElement> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.orderByAsc("id");
|
||||
PageQueryBaseVo pageQuery = new PageQueryBaseVo();
|
||||
pageQuery.setPage(1);
|
||||
pageQuery.setSize(200);
|
||||
while(true){
|
||||
IPage<CollectionElement> page = getBaseMapper().selectPage(
|
||||
new Page<>(pageQuery.getPage(), pageQuery.getSize()), queryWrapper);
|
||||
List<CollectionElement> list = page.getRecords();
|
||||
if(CollectionUtils.isEmpty(list)){
|
||||
break;
|
||||
}
|
||||
|
||||
//保存
|
||||
List<TCollectionElementRelation> relations = list.stream().map(element->
|
||||
TCollectionElementRelation.builder().elementId(element.getId())
|
||||
.collectionId(element.getCollectionId()).createDate(new Date()).build())
|
||||
.collect(Collectors.toList());
|
||||
tCollectionElementRelationService.saveBatch(relations);
|
||||
pageQuery.setPage(pageQuery.getPage()+1);
|
||||
log.info("refreshHistoryData###process###page###"+pageQuery.getPage());
|
||||
}
|
||||
}
|
||||
|
||||
private List<CollectionElement> resolveColorData(List<CollectionColorDTO> colorBoards, AuthPrincipalVo userInfo, Long collectionId, String timeZone) {
|
||||
List<CollectionElement> elements = Lists.newArrayList();
|
||||
@@ -505,6 +536,16 @@ public class CollectionElementServiceImpl extends ServiceImpl<CollectionElementM
|
||||
|
||||
@Override
|
||||
public List<CollectionElement> getByCollectionId(Long collectionId) {
|
||||
List<Long> elementIds = tCollectionElementRelationService.getByCollectionId(collectionId);
|
||||
if (CollectionUtils.isEmpty(elementIds)){
|
||||
return null;
|
||||
}
|
||||
QueryWrapper<CollectionElement> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("id", elementIds);
|
||||
return collectionElementMapper.selectList(queryWrapper);
|
||||
}
|
||||
@Override
|
||||
public List<CollectionElement> getByOnlyCollectionId(Long collectionId) {
|
||||
QueryWrapper<CollectionElement> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("collection_id", collectionId);
|
||||
return collectionElementMapper.selectList(queryWrapper);
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.google.common.collect.Maps;
|
||||
import io.netty.util.internal.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -118,7 +119,7 @@ public class CollectionServiceImpl extends ServiceImpl<CollectionMapper, Collect
|
||||
}else {
|
||||
String[] idName = name.split("_");
|
||||
if (idName.length >1){
|
||||
d.setId(Integer.valueOf(idName[0]));
|
||||
d.setId(StringUtil.isNullOrEmpty(idName[0]) ? null : Integer.valueOf(idName[0]));
|
||||
d.setName(idName[1]);
|
||||
d.setTcx(idName[2]);
|
||||
}
|
||||
|
||||
@@ -72,6 +72,8 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
private UserLikeService userLikeService;
|
||||
@Resource
|
||||
private SysFileService sysFileService;
|
||||
@Resource
|
||||
private TCollectionElementRelationService tCollectionElementRelationService;
|
||||
|
||||
// @Transactional
|
||||
@Override
|
||||
@@ -167,7 +169,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
//library转化为collection(生成)
|
||||
saveCollectionElemntsByLibrarys(elementVO,collectionId);
|
||||
//保存颜色版
|
||||
collectionElementService.saveColorBoard(designDTO.getColorBoards(),collectionId,designDTO.getTimeZone());
|
||||
List<CollectionElementVO> colorElementList = collectionElementService.saveColorBoard(designDTO.getColorBoards(),collectionId,designDTO.getTimeZone());
|
||||
//保存design
|
||||
Long designId = saveOne(designDTO,collectionId,userInfo.getId());
|
||||
//计算library
|
||||
@@ -181,9 +183,30 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
pythonService.design(pythonObjects);
|
||||
//生成library
|
||||
generateLibrary(elementVO,designDTO.getTimeZone());
|
||||
//处理关联关系,修复element覆盖得情况
|
||||
List<CollectionElement> reLationelements =collectionElementService.getByOnlyCollectionId(collectionId);
|
||||
List<Long> reLationelementIds = reLationelements.stream().map(CollectionElement::getId).collect(Collectors.toList());
|
||||
handleCollectionElementRelation(collectionId,(null == collectionIdParam) ? false :true,reLationelementIds);
|
||||
//保存designItem 和detail
|
||||
return saveDesignItemAndDetail(pythonObjects,designId,collectionId,userInfo,designDTO.getTimeZone());
|
||||
}
|
||||
private void handleCollectionElementRelation(Long collectionId ,Boolean isEdit,List<Long> elementIds ){
|
||||
if (CollectionUtils.isEmpty(elementIds) || collectionId == null){
|
||||
return;
|
||||
}
|
||||
if(isEdit){
|
||||
//删除
|
||||
tCollectionElementRelationService.deleteByCollectionId(collectionId);
|
||||
}
|
||||
//新增
|
||||
tCollectionElementRelationService.saveBatch(elementIds.stream().map(elementId ->
|
||||
TCollectionElementRelation.builder()
|
||||
.collectionId(collectionId)
|
||||
.elementId(elementId)
|
||||
.createDate(new Date())
|
||||
.build()
|
||||
).collect(Collectors.toList()));
|
||||
}
|
||||
private void generateLibrary(ValidateElementVO elementVO,String timeZone){
|
||||
List<CollectionElement> elements = Lists.newArrayList();
|
||||
if(!CollectionUtils.isEmpty(elementVO.getMoodBoardElements())){
|
||||
@@ -382,6 +405,8 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
List<Long> newElementIds = validateMergeElement(oldElements,designItemDetails);
|
||||
//合并,关联新的element到collection
|
||||
collectionElementService.relationCollection(newElementIds,userLikeGroup.getCollectionId());
|
||||
//处理关联关系,修复element覆盖得情况
|
||||
handleCollectionElementRelation(userLikeGroup.getCollectionId(),false,newElementIds);
|
||||
UserLike userLike = resolveUserLike(designLikeDTO.getUserGroupId(), designItem.getDesignId(),
|
||||
designLikeDTO.getDesignItemId(),designItem.getDesignUrl(),designLikeDTO.getTimeZone());
|
||||
userLikeService.save(userLike);
|
||||
@@ -398,6 +423,7 @@ public class DesignServiceImpl extends ServiceImpl<DesignMapper, Design> impleme
|
||||
designItemService.updateLikeStatus(designLikeDTO.getDesignItemId(),(byte)1);
|
||||
return new DesignLikeVO(userGroupId,groupDetailId);
|
||||
}
|
||||
|
||||
private List<Long> validateMergeElement(List<CollectionElement> oldElements,List<DesignItemDetail> designItemDetails){
|
||||
List<DesignItemDetail> hasCollections = designItemDetails.stream()
|
||||
.filter(f->Objects.nonNull(f.getCollectionElementId()))
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.ai.da.service.impl;
|
||||
|
||||
import com.ai.da.mapper.TCollectionElementRelationMapper;
|
||||
import com.ai.da.mapper.UserLikeMapper;
|
||||
import com.ai.da.mapper.entity.TCollectionElementRelation;
|
||||
import com.ai.da.mapper.entity.UserLike;
|
||||
import com.ai.da.service.TCollectionElementRelationService;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* collection和element的关联表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author yanglei
|
||||
* @since 2023-05-07
|
||||
*/
|
||||
@Service
|
||||
public class TCollectionElementRelationServiceImpl extends ServiceImpl<TCollectionElementRelationMapper, TCollectionElementRelation> implements TCollectionElementRelationService {
|
||||
@Resource
|
||||
private TCollectionElementRelationMapper tCollectionElementRelationMapper;
|
||||
|
||||
public void deleteByCollectionId(Long collectionId) {
|
||||
QueryWrapper<TCollectionElementRelation> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("collection_id", collectionId);
|
||||
tCollectionElementRelationMapper.delete(queryWrapper);
|
||||
}
|
||||
|
||||
public List<Long> getByCollectionId(Long collectionId) {
|
||||
QueryWrapper<TCollectionElementRelation> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("collection_id", collectionId);
|
||||
List<TCollectionElementRelation> tCollectionElementRelations = tCollectionElementRelationMapper.selectList(queryWrapper);
|
||||
return CollectionUtils.isEmpty(tCollectionElementRelations) ? null :
|
||||
tCollectionElementRelations.stream().map(TCollectionElementRelation::getElementId).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user