From 8739364076e68e3decbccd3f5ed1503d4c7ebbc4 Mon Sep 17 00:00:00 2001 From: xhxu Date: Wed, 20 Sep 2023 18:04:23 +0800 Subject: [PATCH] //.. --- .../controller/CallbackPayController.java | 14 ++++++++-- .../controller/CallbackSmController.java | 9 ++++--- .../sm/UserDigitalAvatarPhotoService.java | 4 +-- .../UserDigitalAvatarOrderServiceImpl.java | 8 +++--- .../UserDigitalAvatarPhotoServiceImpl.java | 26 +++++++++++-------- 5 files changed, 39 insertions(+), 22 deletions(-) diff --git a/suimangCApi/src/main/java/com/iformall/controller/CallbackPayController.java b/suimangCApi/src/main/java/com/iformall/controller/CallbackPayController.java index 3d2b629..17a9b26 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/CallbackPayController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/CallbackPayController.java @@ -98,13 +98,23 @@ public class CallbackPayController extends BaseController { Map pMap = JSONObject.parseObject(msg, Map.class); String appid = (String) pMap.get("app_id"); + WxAppinfo appInfo = wxAppinfoService.getOnlyByAppIdFromRedis(appid); + WxPayAccount payAccount = wxPayAccountService.getByIdFromRedis(appInfo.getPayId()); if("payment".equals(type)){ String out_order_no = (String)pMap.get("cp_orderno"); - //todo 处理订单支付状态 + ProductOrder productOrder = productOrderService.getById(Long.parseLong(out_order_no)); + + PayAdapterService payAdapterService = payServiceFactory.getPayAdapterService(productOrder.getPayVendor()); + productOrderService.handleProductOrderByQuery(appInfo,payAccount,productOrder,payAdapterService); + + resultMap.put("err_no",0); + resultMap.put("err_tips","success"); } }catch(Exception e){ - + logger.error("抖音支付回调处理异常"+e); + resultMap.put("err_no",ErrorCode.SYS_SERVER_ERROR.getCode()); + resultMap.put("err_tips","抖音支付回调处理异常"); } return resultMap; } diff --git a/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java b/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java index 9151894..89b0d23 100644 --- a/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java +++ b/suimangCApi/src/main/java/com/iformall/controller/CallbackSmController.java @@ -188,9 +188,10 @@ public class CallbackSmController extends BaseController { imgList.add(data.get("img_1")); imgList.add(data.get("img_2")); imgList.add(data.get("img_3")); - userDigitalAvatarPhotoService.handlePhoto(userDigitalAvatarOrder,imgList); - - userDigitalAvatarOrderService.sendPhotoSuccess(userDigitalAvatarOrder); + boolean flag = userDigitalAvatarPhotoService.handlePhoto(userDigitalAvatarOrder, imgList); + if(flag){ + userDigitalAvatarOrderService.sendPhotoSuccess(userDigitalAvatarOrder); + } }else{ UserDigitalAvatarOrder updOrder = new UserDigitalAvatarOrder(); updOrder.setId(userDigitalAvatarOrder.getId()); @@ -232,7 +233,7 @@ public class CallbackSmController extends BaseController { if("3000".equals(code)){ Map data = (Map) paranMap.get("data"); String img = data.get("img"); - userDigitalAvatarPhotoService.handleSuperPhoto(userDigitalAvatarPhoto,img); + boolean flag = userDigitalAvatarPhotoService.handleSuperPhoto(userDigitalAvatarPhoto, img); }else{ UserDigitalAvatarPhoto updPhoto = new UserDigitalAvatarPhoto(); updPhoto.setId(userDigitalAvatarPhoto.getId()); diff --git a/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarPhotoService.java b/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarPhotoService.java index c6acf15..b910d79 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarPhotoService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/UserDigitalAvatarPhotoService.java @@ -17,9 +17,9 @@ public interface UserDigitalAvatarPhotoService { void superPhoto(UserDigitalAvatarPhoto record); - void handleSuperPhoto(UserDigitalAvatarPhoto record, String img); + boolean handleSuperPhoto(UserDigitalAvatarPhoto record, String img); void updateById(UserDigitalAvatarPhoto record); - void handlePhoto(UserDigitalAvatarOrder record,List imgList); + boolean handlePhoto(UserDigitalAvatarOrder record,List imgList); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java index cc335b2..5e27957 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarOrderServiceImpl.java @@ -290,9 +290,11 @@ public class UserDigitalAvatarOrderServiceImpl implements UserDigitalAvatarOrder DigitalAvatarResult result = AiDigitalAvatarHelper.digitalAvatarPhoto(param,record.getId()); if(result.isSuccess()){ - userDigitalAvatarPhotoService.handlePhoto(record,result.getImgList()); - - this.sendPhotoSuccess(record); + boolean flag = userDigitalAvatarPhotoService.handlePhoto(record, result.getImgList()); + if(flag){ + this.sendPhotoSuccess(record); + } + return; }else{ updOrder.setStatus(EnumDigitalAvatarOrderStatus.fail.getCode()); updOrder.setMsg(result.getMsg()); diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarPhotoServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarPhotoServiceImpl.java index 66591a7..3d6dc59 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarPhotoServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/UserDigitalAvatarPhotoServiceImpl.java @@ -128,21 +128,22 @@ public class UserDigitalAvatarPhotoServiceImpl implements UserDigitalAvatarPhoto } @Override - public void handleSuperPhoto(UserDigitalAvatarPhoto record, String img) { + public boolean handleSuperPhoto(UserDigitalAvatarPhoto record, String img) { String lockKey = "digitalAvatar:superPhoto:"+record.getId(); long time = System.currentTimeMillis() + 10000; String timeStr = String.valueOf(time); try{ if(!redisLock.lock2(lockKey, timeStr)){ - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请稍后重试"); + return false; +// throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请稍后重试"); } UserDigitalAvatarPhoto userDigitalAvatarPhoto = userDigitalAvatarPhotoMapper.selectById(record.getId()); if(EnumDigitalAvatarPhotoStatus.finish.getCode().equals(userDigitalAvatarPhoto.getStatus())){ - return; + return false; } InputStream inputStream = Base64Util.base2InputStream(img); - String img_url = aliyunOSS.upload(record.getTenantId(), ".jpg", inputStream); + String img_url = aliyunOSS.upload(userDigitalAvatarPhoto.getTenantId(), ".jpg", inputStream); UserDigitalAvatarPhoto updPhoto = new UserDigitalAvatarPhoto(); updPhoto.setId(userDigitalAvatarPhoto.getId()); @@ -158,6 +159,7 @@ public class UserDigitalAvatarPhotoServiceImpl implements UserDigitalAvatarPhoto }finally { redisLock.unlock(lockKey, timeStr); } + return true; } @@ -168,23 +170,24 @@ public class UserDigitalAvatarPhotoServiceImpl implements UserDigitalAvatarPhoto @Override @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) - public void handlePhoto(UserDigitalAvatarOrder record,List imgList){ + public boolean handlePhoto(UserDigitalAvatarOrder record,List imgList){ String lockKey = "digitalAvatar:handlePhoto:"+record.getId(); long time = System.currentTimeMillis() + 30000; String timeStr = String.valueOf(time); try{ if (!redisLock.lock2(lockKey, timeStr)){ - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请稍后重试"); + return false; +// throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"请稍后重试"); } UserDigitalAvatarOrder userDigitalAvatarOrder = userDigitalAvatarOrderMapper.selectById(record.getId()); if(EnumDigitalAvatarOrderStatus.finish.getCode().equals(userDigitalAvatarOrder.getStatus())){ - return; + return false; } Date now = new Date(); UserDigitalAvatarOrder updOrder = new UserDigitalAvatarOrder(); - updOrder.setId(record.getId()); + updOrder.setId(userDigitalAvatarOrder.getId()); updOrder.setStatus(EnumDigitalAvatarOrderStatus.finish.getCode()); updOrder.setMsg("success"); updOrder.setUpdateDate(now); @@ -194,12 +197,12 @@ public class UserDigitalAvatarPhotoServiceImpl implements UserDigitalAvatarPhoto final IdWorker idWorker = IdWorker.get(); for (String img: imgList) { InputStream inputStream = Base64Util.base2InputStream(img); - String img_url = aliyunOSS.upload(record.getTenantId(), ".jpg", inputStream); + String img_url = aliyunOSS.upload(userDigitalAvatarOrder.getTenantId(), ".jpg", inputStream); UserDigitalAvatarPhoto userDigitalAvatarPhoto = new UserDigitalAvatarPhoto(); userDigitalAvatarPhoto.setId(idWorker.nextId()); - userDigitalAvatarPhoto.setOrderId(record.getId()); - userDigitalAvatarPhoto.setUserId(record.getUserId()); + userDigitalAvatarPhoto.setOrderId(userDigitalAvatarOrder.getId()); + userDigitalAvatarPhoto.setUserId(userDigitalAvatarOrder.getUserId()); userDigitalAvatarPhoto.setImage(img_url); userDigitalAvatarPhoto.setStatus(EnumDigitalAvatarPhotoStatus.def.getCode()); userDigitalAvatarPhoto.setCreateDate(now); @@ -216,6 +219,7 @@ public class UserDigitalAvatarPhotoServiceImpl implements UserDigitalAvatarPhoto }finally { redisLock.unlock(lockKey, timeStr); } + return true; } }