xhxu преди 1 година
родител
ревизия
bd38dcd91c
променени са 2 файла, в които са добавени 47 реда и са изтрити 24 реда
  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 Целия файл

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


+ 46
- 23
suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java Целия файл

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

@Autowired
RedisLock redisLock;

private void handleOrderPhoto(List<UserDigitalAvatarOrder> list){
if(list == null || list.isEmpty()){
@@ -285,33 +289,52 @@ public class UserDigitalAvatarOrderServiceImpl implements UserDigitalAvatarOrder
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
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{
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);
}
}



Зареждане…
Отказ
Запис