修改提取的sketch
This commit is contained in:
@@ -31,6 +31,7 @@ public enum CreditsEventsEnum {
|
|||||||
TO_PRODUCT_IMAGE("ToProductImage","5"),
|
TO_PRODUCT_IMAGE("ToProductImage","5"),
|
||||||
RELIGHT("Relight","5"),
|
RELIGHT("Relight","5"),
|
||||||
QUESTIONNAIRE("Questionnaire","100"),
|
QUESTIONNAIRE("Questionnaire","100"),
|
||||||
|
IMAGE_TO_SKETCH("ImageToSketch","5"),
|
||||||
|
|
||||||
OTHER("Other","5");
|
OTHER("Other","5");
|
||||||
|
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ public class AccountController {
|
|||||||
return Response.success(accountService.getPersonalHomepage(id));
|
return Response.success(accountService.getPersonalHomepage(id));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ApiOperation(value = "getNicknameModifyTimes")
|
@ApiOperation(value = "getUsernameModifyTimes")
|
||||||
@GetMapping("/getNicknameModifyTimes")
|
@GetMapping("/getNicknameModifyTimes")
|
||||||
public Response<Map<String, Long>> getNicknameModifyTimes(){
|
public Response<Map<String, Long>> getNicknameModifyTimes(){
|
||||||
return Response.success(accountService.getNicknameModifyTimes());
|
return Response.success(accountService.getNicknameModifyTimes());
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ public class GenerateController {
|
|||||||
// modifySketch
|
// modifySketch
|
||||||
@ApiOperation(value = "modifySketch")
|
@ApiOperation(value = "modifySketch")
|
||||||
@PostMapping("/modifySketch")
|
@PostMapping("/modifySketch")
|
||||||
public Response<CollectionElementVO> modifySketch(@Valid @RequestBody GenerateModifyDTO generateModifyDTO) {
|
public Response<GenerateResultVO> modifySketch(@Valid @RequestBody GenerateModifyDTO generateModifyDTO) {
|
||||||
return Response.success(generateService.modifySketch(generateModifyDTO));
|
return Response.success(generateService.modifySketch(generateModifyDTO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,15 +4,27 @@ import io.swagger.annotations.ApiModel;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
@ApiModel("修改imageToSketch提取出的sketch")
|
@ApiModel("修改imageToSketch提取出的sketch")
|
||||||
@Data
|
@Data
|
||||||
public class GenerateModifyDTO {
|
public class GenerateModifyDTO {
|
||||||
@ApiModelProperty("需要保存的图片的base64格式")
|
@NotNull(message = "image cannot be empty")
|
||||||
|
@ApiModelProperty(value = "需要保存的图片的base64格式", required = true)
|
||||||
private String base64;
|
private String base64;
|
||||||
|
|
||||||
@ApiModelProperty("sketch所属性别")
|
@NotNull(message = "gender cannot be empty")
|
||||||
|
@ApiModelProperty(value = "sketch所属性别", required = true)
|
||||||
private String gender;
|
private String gender;
|
||||||
|
|
||||||
@ApiModelProperty("sketch所属分类")
|
@NotNull(message = "category cannot be empty")
|
||||||
|
@ApiModelProperty(value = "sketch所属分类", required = true)
|
||||||
private String category;
|
private String category;
|
||||||
|
|
||||||
|
@NotNull(message = "id cannot be empty")
|
||||||
|
@ApiModelProperty(value = "原图id", required = true)
|
||||||
|
private String originalId;
|
||||||
|
|
||||||
|
@ApiModelProperty("是否覆盖原图")
|
||||||
|
private Boolean isOverride;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ public interface AccountService extends IService<Account> {
|
|||||||
|
|
||||||
void moveLibraryDate();
|
void moveLibraryDate();
|
||||||
|
|
||||||
void updateCredits(Long accountId, String value);
|
void updateCreditsAndEndTime(Long accountId, String value);
|
||||||
void updateCreditsAndEndTime(Long accountId, String value, Long endTime);
|
void updateCreditsAndEndTime(Long accountId, String value, Long endTime);
|
||||||
|
|
||||||
Boolean designWorksRegister(AccountDesignWorksRegisterDTO accountDesignWorksRegisterDTO);
|
Boolean designWorksRegister(AccountDesignWorksRegisterDTO accountDesignWorksRegisterDTO);
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ public interface CreditsService extends IService<CreditsDetail> {
|
|||||||
|
|
||||||
CreditsDetail getByAccountIdAndChangeEvent(Long accountId, String changeEvent, String changedCredits);
|
CreditsDetail getByAccountIdAndChangeEvent(Long accountId, String changeEvent, String changedCredits);
|
||||||
|
|
||||||
void preInsert(Long accountId, String changeEventName, String taskId);
|
void preInsert(Long accountId, String changeEventName, String taskId, Boolean isPreInsert, String changedCredits);
|
||||||
|
|
||||||
void updateChangedCredits(String accountId, String taskId);
|
void updateChangedCredits(String accountId, String taskId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,5 +46,5 @@ public interface GenerateService extends IService<Generate> {
|
|||||||
|
|
||||||
GenerateResultVO imageToSketch(ImageToSketchDTO imageToSketchDTO);
|
GenerateResultVO imageToSketch(ImageToSketchDTO imageToSketchDTO);
|
||||||
|
|
||||||
CollectionElementVO modifySketch(GenerateModifyDTO generateModifyDTO);
|
GenerateResultVO modifySketch(GenerateModifyDTO generateModifyDTO);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -995,7 +995,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
|||||||
// 未迁移过的进行迁移,注意模特数据迁移打点信息以及转换模特格式
|
// 未迁移过的进行迁移,注意模特数据迁移打点信息以及转换模特格式
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateCredits(Long accountId, String value) {
|
public void updateCreditsAndEndTime(Long accountId, String value) {
|
||||||
Account account = new Account();
|
Account account = new Account();
|
||||||
account.setId(accountId);
|
account.setId(accountId);
|
||||||
account.setCredits(new BigDecimal(value));
|
account.setCredits(new BigDecimal(value));
|
||||||
@@ -1006,7 +1006,10 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
|
|||||||
Account account = new Account();
|
Account account = new Account();
|
||||||
account.setId(accountId);
|
account.setId(accountId);
|
||||||
account.setCredits(new BigDecimal(value));
|
account.setCredits(new BigDecimal(value));
|
||||||
|
if (!Objects.isNull(endTime)){
|
||||||
account.setValidEndTime(toDayEnd(endTime));
|
account.setValidEndTime(toDayEnd(endTime));
|
||||||
|
}
|
||||||
|
account.setUpdateDate(new Date());
|
||||||
accountMapper.updateById(account);
|
accountMapper.updateById(account);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
|
|||||||
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
||||||
BigDecimal newCredits = new BigDecimal(CreditsEventsEnum.BUY_CREDITS.getValue()).multiply(new BigDecimal(quantity));
|
BigDecimal newCredits = new BigDecimal(CreditsEventsEnum.BUY_CREDITS.getValue()).multiply(new BigDecimal(quantity));
|
||||||
BigDecimal added = existingCredits.add(newCredits);
|
BigDecimal added = existingCredits.add(newCredits);
|
||||||
accountService.updateCredits(accountId, added.toString());
|
accountService.updateCreditsAndEndTime(accountId, added.toString(), null);
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
|
|||||||
}
|
}
|
||||||
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
||||||
BigDecimal add = new BigDecimal(event.getValue()).add(existingCredits);
|
BigDecimal add = new BigDecimal(event.getValue()).add(existingCredits);
|
||||||
accountService.updateCredits(accountId, add.toString());
|
accountService.updateCreditsAndEndTime(accountId, add.toString(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -91,7 +91,7 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
|
|||||||
}
|
}
|
||||||
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
||||||
BigDecimal subtract = existingCredits.subtract(new BigDecimal(event.getValue()));
|
BigDecimal subtract = existingCredits.subtract(new BigDecimal(event.getValue()));
|
||||||
accountService.updateCredits(accountId, subtract.toString());
|
accountService.updateCreditsAndEndTime(accountId, subtract.toString(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -105,7 +105,7 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
|
|||||||
BigDecimal newCredits = new BigDecimal(CreditsEventsEnum.BUY_CREDITS.getValue()).multiply(new BigDecimal(quantity));
|
BigDecimal newCredits = new BigDecimal(CreditsEventsEnum.BUY_CREDITS.getValue()).multiply(new BigDecimal(quantity));
|
||||||
BigDecimal subtracted = existingCredits.subtract(newCredits);
|
BigDecimal subtracted = existingCredits.subtract(newCredits);
|
||||||
// 更新t_account表
|
// 更新t_account表
|
||||||
accountService.updateCredits(accountId, subtracted.toString());
|
accountService.updateCreditsAndEndTime(accountId, subtracted.toString(), null);
|
||||||
// 更新t_credits_details表
|
// 更新t_credits_details表
|
||||||
// 添加积分变更记录
|
// 添加积分变更记录
|
||||||
insertToCreditsDetail(accountId,
|
insertToCreditsDetail(accountId,
|
||||||
@@ -255,7 +255,7 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
|
|||||||
// 2、操作数据库,扣除积分
|
// 2、操作数据库,扣除积分
|
||||||
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
BigDecimal existingCredits = accountMapper.selectById(accountId).getCredits();
|
||||||
BigDecimal subtract = existingCredits.subtract(new BigDecimal(value));
|
BigDecimal subtract = existingCredits.subtract(new BigDecimal(value));
|
||||||
accountService.updateCredits(accountId, subtract.toString());
|
accountService.updateCreditsAndEndTime(accountId, subtract.toString(), null);
|
||||||
|
|
||||||
// 3、从redis中移除当前待扣积分
|
// 3、从redis中移除当前待扣积分
|
||||||
redisUtil.removeFromString(key);
|
redisUtil.removeFromString(key);
|
||||||
@@ -272,13 +272,13 @@ public class CreditsServiceImpl extends ServiceImpl<CreditsDetailMapper, Credits
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preInsert(Long accountId, String changeEventName, String taskId) {
|
public void preInsert(Long accountId, String changeEventName, String taskId, Boolean isPreInsert, String changedCredits) {
|
||||||
CreditsDetail creditsDetail = new CreditsDetail();
|
CreditsDetail creditsDetail = new CreditsDetail();
|
||||||
Account account = accountMapper.selectById(accountId);
|
Account account = accountMapper.selectById(accountId);
|
||||||
creditsDetail.setAccountId(accountId);
|
creditsDetail.setAccountId(accountId);
|
||||||
creditsDetail.setTaskId(taskId);
|
creditsDetail.setTaskId(taskId);
|
||||||
creditsDetail.setChangeEvent(changeEventName);
|
creditsDetail.setChangeEvent(changeEventName);
|
||||||
creditsDetail.setChangedCredits("-0");
|
creditsDetail.setChangedCredits(isPreInsert ? "-0" : "-" + changedCredits);
|
||||||
creditsDetail.setCredits(account.getCredits());
|
creditsDetail.setCredits(account.getCredits());
|
||||||
creditsDetail.setCreateTime(LocalDateTime.now());
|
creditsDetail.setCreateTime(LocalDateTime.now());
|
||||||
|
|
||||||
|
|||||||
@@ -22,16 +22,14 @@ import com.google.gson.Gson;
|
|||||||
import io.minio.errors.MinioException;
|
import io.minio.errors.MinioException;
|
||||||
import io.netty.util.internal.StringUtil;
|
import io.netty.util.internal.StringUtil;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.time.LocalDate;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static com.ai.da.common.enums.CollectionLevel1TypeEnum.*;
|
import static com.ai.da.common.enums.CollectionLevel1TypeEnum.*;
|
||||||
@@ -88,10 +86,11 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
@Value("${access.python.generate_sr_port}")
|
@Value("${access.python.generate_sr_port}")
|
||||||
private String generateServicePort;
|
private String generateServicePort;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private AccountService accountService;
|
||||||
|
|
||||||
// 创建 Random 对象
|
// 创建 Random 对象
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
@Autowired
|
|
||||||
private ProductServiceImpl productServiceImpl;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GenerateCaptionVO generateCaption(Long sketchElementId) {
|
public GenerateCaptionVO generateCaption(Long sketchElementId) {
|
||||||
@@ -591,7 +590,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
// 6、添加预扣除积分到redis
|
// 6、添加预扣除积分到redis
|
||||||
creditsService.addRecordToCreditsDeduction(generateThroughImageTextDTO.getUserId(), uuid, creditsEventsEnum);
|
creditsService.addRecordToCreditsDeduction(generateThroughImageTextDTO.getUserId(), uuid, creditsEventsEnum);
|
||||||
// 6.1 添加积分扣除记录到db
|
// 6.1 添加积分扣除记录到db
|
||||||
creditsService.preInsert(generateThroughImageTextDTO.getUserId(), creditsEventsEnum.getName(), uuid);
|
creditsService.preInsert(generateThroughImageTextDTO.getUserId(), creditsEventsEnum.getName(), uuid, Boolean.TRUE, null);
|
||||||
|
|
||||||
// 7、返回唯一id
|
// 7、返回唯一id
|
||||||
return new PrepareForGenerateVO(taskIdList, 2);
|
return new PrepareForGenerateVO(taskIdList, 2);
|
||||||
@@ -772,6 +771,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public GenerateResultVO imageToSketch(ImageToSketchDTO imageToSketchDTO) {
|
public GenerateResultVO imageToSketch(ImageToSketchDTO imageToSketchDTO) {
|
||||||
|
|
||||||
String bucket = userBucket;
|
String bucket = userBucket;
|
||||||
Long accountId = UserContext.getUserHolder().getId();
|
Long accountId = UserContext.getUserHolder().getId();
|
||||||
log.info("imageToSketch parameter : {}", imageToSketchDTO);
|
log.info("imageToSketch parameter : {}", imageToSketchDTO);
|
||||||
@@ -819,7 +819,12 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
generateDetailMapper.insert(generateDetail);
|
generateDetailMapper.insert(generateDetail);
|
||||||
|
|
||||||
String clothCategory = pythonService.getClothCategory(sketchPath, imageToSketchDTO.getGender());
|
String clothCategory = pythonService.getClothCategory(sketchPath, imageToSketchDTO.getGender());
|
||||||
clothCategory = BusinessException.getMessageFromResource(clothCategory.toUpperCase());
|
|
||||||
|
CreditsEventsEnum event = CreditsEventsEnum.IMAGE_TO_SKETCH;
|
||||||
|
BigDecimal existingCredits = accountService.getById(accountId).getCredits();
|
||||||
|
BigDecimal subtract = existingCredits.subtract(new BigDecimal(event.getValue()));
|
||||||
|
accountService.updateCreditsAndEndTime(accountId, subtract.toString(), null);
|
||||||
|
creditsService.preInsert(accountId, event.getName(), null, Boolean.FALSE, event.getValue());
|
||||||
|
|
||||||
return new GenerateResultVO(generateDetail.getId(), minioUtil.getPreSignedUrl(sketchPath, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), "Success", clothCategory);
|
return new GenerateResultVO(generateDetail.getId(), minioUtil.getPreSignedUrl(sketchPath, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), "Success", clothCategory);
|
||||||
}
|
}
|
||||||
@@ -828,7 +833,7 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
// 输入 base64,以及 性别 分类,将图片添加到library
|
// 输入 base64,以及 性别 分类,将图片添加到library
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public CollectionElementVO modifySketch(GenerateModifyDTO generateModifyDTO) {
|
public GenerateResultVO modifySketch(GenerateModifyDTO generateModifyDTO) {
|
||||||
log.info("修改提取出的sketch,并加入到library");
|
log.info("修改提取出的sketch,并加入到library");
|
||||||
Long accountId = UserContext.getUserHolder().getId();
|
Long accountId = UserContext.getUserHolder().getId();
|
||||||
String base64 = generateModifyDTO.getBase64();
|
String base64 = generateModifyDTO.getBase64();
|
||||||
@@ -836,28 +841,32 @@ public class GenerateServiceImpl extends ServiceImpl<GenerateMapper, Generate> i
|
|||||||
String category = generateModifyDTO.getCategory();
|
String category = generateModifyDTO.getCategory();
|
||||||
|
|
||||||
// 将base64上传到minio
|
// 将base64上传到minio
|
||||||
String path = accountId + "/sketchboard/" + gender.toLowerCase() + "/" + category + "/" + UUID.randomUUID();
|
String path;
|
||||||
|
GenerateDetail originalDetail = generateDetailMapper.selectById(generateModifyDTO.getOriginalId());
|
||||||
|
Long generateDetailId = originalDetail.getId();
|
||||||
|
if (generateModifyDTO.getIsOverride()){
|
||||||
|
path = originalDetail.getUrl();
|
||||||
|
}else {
|
||||||
|
path = accountId + "/sketchboard/" + gender.toLowerCase() + "/" + category + "/" + UUID.randomUUID();
|
||||||
|
}
|
||||||
|
|
||||||
String minioPath = minioUtil.base64UploadToPath(base64, userBucket, path);
|
String minioPath = minioUtil.base64UploadToPath(base64, userBucket, path);
|
||||||
|
|
||||||
log.info("修改后的图片 : {}", minioPath);
|
log.info("修改后的图片 : {}", minioPath);
|
||||||
|
|
||||||
// 存入db 保存到t_collection_element
|
// 存入db 保存到t_generate_detail
|
||||||
CollectionElement collectionElement = new CollectionElement();
|
if (!generateModifyDTO.getIsOverride()){
|
||||||
collectionElement.setAccountId(accountId);
|
GenerateDetail generateDetail = new GenerateDetail();
|
||||||
collectionElement.setCollectionId(0L);
|
generateDetail.setGenerateId(originalDetail.getGenerateId());
|
||||||
collectionElement.setLevel1Type(SKETCH_BOARD.getRealName());
|
generateDetail.setUrl(path);
|
||||||
collectionElement.setLevel2Type(generateModifyDTO.getCategory());
|
generateDetail.setIsLike((byte)0);
|
||||||
collectionElement.setName(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")));
|
generateDetail.setMd5(MD5Utils.encryptFile(minioUtil.getPreSignedUrl(minioPath, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), Boolean.FALSE));
|
||||||
collectionElement.setUrl(minioPath);
|
generateDetail.setCreateDate(LocalDateTime.now());
|
||||||
collectionElement.setHasPin((byte)0);
|
generateDetailMapper.insert(generateDetail);
|
||||||
collectionElement.setMd5(MD5Utils.encryptFile(minioUtil.getPreSignedUrl(minioPath, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), Boolean.FALSE));
|
|
||||||
collectionElement.setCreateDate(new Date());
|
|
||||||
collectionElementService.save(collectionElement);
|
|
||||||
|
|
||||||
CollectionElementVO collectionElementVO = CopyUtil.copyObject(collectionElement, CollectionElementVO.class);
|
generateDetailId = generateDetail.getId();
|
||||||
collectionElementVO.setMinIOPath(collectionElementVO.getUrl());
|
}
|
||||||
collectionElementVO.setUrl(minioUtil.getPreSignedUrl(collectionElementVO.getUrl(), CommonConstant.MINIO_IMAGE_EXPIRE_TIME));
|
|
||||||
collectionElementVO.setDesignType(DesignTypeEnum.COLLECTION.getRealName());
|
return new GenerateResultVO(generateDetailId, minioUtil.getPreSignedUrl(minioPath, CommonConstant.MINIO_IMAGE_EXPIRE_TIME), "Success", category);
|
||||||
return collectionElementVO;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user