Browse Source

//

private_deployment
xhxu 1 year ago
parent
commit
bd38dcd91c
2 changed files with 47 additions and 24 deletions
  1. +1
    -1
      suimangCApi/src/main/java/com/iformall/controller/UserDigitalAvatarPhotoController.java
  2. +46
    -23
      suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java

+ 1
- 1
suimangCApi/src/main/java/com/iformall/controller/UserDigitalAvatarPhotoController.java View File

@@ -104,7 +104,7 @@ public class UserDigitalAvatarPhotoController extends BaseController {
logger.debug("[" + getIpAddr() + "] UserDigitalAvatarPhotoController::list"); logger.debug("[" + getIpAddr() + "] UserDigitalAvatarPhotoController::list");
if (record == null) record = new UserDigitalAvatarOrder(); if (record == null) record = new UserDigitalAvatarOrder();
record.setUserId(getMemberId()); record.setUserId(getMemberId());
record.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
record.setSortColumns(BaseEntity.SortField.CreateDate_DESC);
final PageInfo<UserDigitalAvatarOrder> page = userDigitalAvatarOrderService.cListAsPage(record, pageNum, pageSize); final PageInfo<UserDigitalAvatarOrder> page = userDigitalAvatarOrderService.cListAsPage(record, pageNum, pageSize);
return new ResultData(page); return new ResultData(page);
} }


+ 46
- 23
suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java View File

@@ -19,6 +19,7 @@ import com.iformall.service.sm.UserDigitalAvatarOrderService;
import com.iformall.service.sm.UserDigitalAvatarPhotoService; import com.iformall.service.sm.UserDigitalAvatarPhotoService;
import com.iformall.sm.*; import com.iformall.sm.*;
import com.iformall.utils.Base64Util; import com.iformall.utils.Base64Util;
import com.iformall.utils.RedisLock;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -59,6 +60,9 @@ public class UserDigitalAvatarOrderServiceImpl implements UserDigitalAvatarOrder
@Autowired @Autowired
private AliyunOSS aliyunOSS; private AliyunOSS aliyunOSS;


@Autowired
RedisLock redisLock;

private void handleOrderPhoto(List<UserDigitalAvatarOrder> list){ private void handleOrderPhoto(List<UserDigitalAvatarOrder> list){
if(list == null || list.isEmpty()){ if(list == null || list.isEmpty()){
@@ -285,33 +289,52 @@ public class UserDigitalAvatarOrderServiceImpl implements UserDigitalAvatarOrder
@Override @Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void handlePhoto(UserDigitalAvatarOrder record,List<String> imgList){ public void handlePhoto(UserDigitalAvatarOrder record,List<String> imgList){
Date now = new Date();
UserDigitalAvatarOrder updOrder = new UserDigitalAvatarOrder();
updOrder.setId(record.getId());
updOrder.setStatus(EnumDigitalAvatarOrderStatus.finish.getCode());
updOrder.setMsg("success");
updOrder.setUpdateDate(now);
userDigitalAvatarOrderMapper.updateById(updOrder);
String lockKey = "digitalAvatar:handlePhoto:"+record.getId();
long time = System.currentTimeMillis() + 5000;
String timeStr = String.valueOf(time);


try{ try{
final IdWorker idWorker = IdWorker.get();
for (String img: imgList) {
InputStream inputStream = Base64Util.base2InputStream(img);
String img_url = aliyunOSS.upload(record.getTenantId(), ".png", inputStream);

UserDigitalAvatarPhoto userDigitalAvatarPhoto = new UserDigitalAvatarPhoto();
userDigitalAvatarPhoto.setId(idWorker.nextId());
userDigitalAvatarPhoto.setOrderId(record.getId());
userDigitalAvatarPhoto.setUserId(record.getUserId());
userDigitalAvatarPhoto.setImage(img_url);
userDigitalAvatarPhoto.setStatus(EnumDigitalAvatarPhotoStatus.def.getCode());
userDigitalAvatarPhoto.setCreateDate(now);
userDigitalAvatarPhoto.setUpdateDate(now);
userDigitalAvatarPhotoMapper.insert(userDigitalAvatarPhoto);
while (!redisLock.lock2(lockKey, timeStr)){
Thread.sleep(2000);
}
UserDigitalAvatarOrder userDigitalAvatarOrder = userDigitalAvatarOrderMapper.selectById(record.getId());
if(EnumDigitalAvatarOrderStatus.finish.getCode().equals(userDigitalAvatarOrder.getStatus())){
return;
} }


}catch(Exception e){
throw new MallinkException(ErrorCode.PICTURE_ANALYZING_ERROR.getCode(),"上传图片异常");
Date now = new Date();
UserDigitalAvatarOrder updOrder = new UserDigitalAvatarOrder();
updOrder.setId(record.getId());
updOrder.setStatus(EnumDigitalAvatarOrderStatus.finish.getCode());
updOrder.setMsg("success");
updOrder.setUpdateDate(now);
userDigitalAvatarOrderMapper.updateById(updOrder);

try{
final IdWorker idWorker = IdWorker.get();
for (String img: imgList) {
InputStream inputStream = Base64Util.base2InputStream(img);
String img_url = aliyunOSS.upload(record.getTenantId(), ".png", inputStream);

UserDigitalAvatarPhoto userDigitalAvatarPhoto = new UserDigitalAvatarPhoto();
userDigitalAvatarPhoto.setId(idWorker.nextId());
userDigitalAvatarPhoto.setOrderId(record.getId());
userDigitalAvatarPhoto.setUserId(record.getUserId());
userDigitalAvatarPhoto.setImage(img_url);
userDigitalAvatarPhoto.setStatus(EnumDigitalAvatarPhotoStatus.def.getCode());
userDigitalAvatarPhoto.setCreateDate(now);
userDigitalAvatarPhoto.setUpdateDate(now);
userDigitalAvatarPhotoMapper.insert(userDigitalAvatarPhoto);
}
}catch(Exception e){
throw new MallinkException(ErrorCode.PICTURE_ANALYZING_ERROR.getCode(),"上传图片异常");
}
} catch(MallinkException e){
throw e;
} catch(Exception e){
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR);
}finally {
redisLock.unlock(lockKey, timeStr);
} }
} }




Loading…
Cancel
Save