Explorar el Código

修改业务异常返回结果

qrs hace 4 meses
padre
commit
d2e5663ea9

+ 10 - 0
alien-entity/src/main/java/shop/alien/entity/result/BusinessException.java

@@ -0,0 +1,10 @@
+package shop.alien.entity.result;
+
+public class BusinessException extends RuntimeException {
+    public BusinessException(String message) {
+        super(message);
+    }
+    public BusinessException(Exception e) {
+        super(e);
+    }
+}

+ 20 - 7
alien-second/src/main/java/shop/alien/second/controller/SecondTradeRecordController.java

@@ -1,11 +1,12 @@
 package shop.alien.second.controller;
 
 
-import feign.Param;
+import com.alipay.api.kms.aliyun.utils.BackoffUtils;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.bind.annotation.*;
+import shop.alien.entity.result.BusinessException;
 import shop.alien.entity.result.R;
 import shop.alien.entity.second.SecondTradeRecord;
 import shop.alien.entity.second.vo.SecondTradeRecordVo;
@@ -57,10 +58,16 @@ public class SecondTradeRecordController {
             @ApiImplicitParam(name = "messageId", value = "消息id", dataType = "Integer", paramType = "query", required = true),
             @ApiImplicitParam(name = "type", value = "0-拒绝  1-确认", dataType = "Integer", paramType = "query", required = true)})
     @GetMapping("/tradeConfirm")
-    public R<Boolean> tradeConfirm(@RequestParam int tradeId, @RequestParam int messageId, @RequestParam int type) throws Exception {
+    public R<Boolean> tradeConfirm(@RequestParam int tradeId, @RequestParam int messageId, @RequestParam int type) {
         log.info("SecondTradeRecordController.tradeConfirm?tradeId={}, messageId={}, type={}", tradeId, messageId, type);
-        if (secondTradeRecordService.tradeConfirm(tradeId, messageId, type)) return R.success("操作成功");
-        return R.fail("操作失败");
+        try {
+            secondTradeRecordService.tradeConfirm(tradeId, messageId, type);
+            return R.success("操作成功");
+        } catch (BusinessException e) {
+            return R.fail(e.getCause().getMessage());
+        }  catch (Exception e) {
+            return R.fail("系统繁忙,请稍后再试");
+        }
     }
 
     @ApiOperation("取消交易")
@@ -93,10 +100,16 @@ public class SecondTradeRecordController {
             @ApiImplicitParam(name = "signInLatitudeLongitude", value = "签到地点(经纬度)", dataType = "String", paramType = "query", required = true),
             @ApiImplicitParam(name = "signInLatitudeLongitudeAddress", value = "签到地点(经纬度地址)", dataType = "String", paramType = "query", required = true)})
     @GetMapping("/tradeSignIn")
-    public R<Boolean> tradeSignIn(@RequestParam int tradeId, int messageId, String signInLatitudeLongitude, String signInLatitudeLongitudeAddress) throws Exception {
+    public R<Boolean> tradeSignIn(@RequestParam int tradeId, int messageId, String signInLatitudeLongitude, String signInLatitudeLongitudeAddress) {
         log.info("SecondTradeRecordController.tradeSignIn?tradeId={}, messageId={}", tradeId, messageId);
-        if (secondTradeRecordService.tradeSignIn(tradeId, messageId, signInLatitudeLongitude, signInLatitudeLongitudeAddress)) return R.success("签到成功");
-        return R.fail("签到失败");
+        try {
+            secondTradeRecordService.tradeSignIn(tradeId, messageId, signInLatitudeLongitude, signInLatitudeLongitudeAddress);
+            return R.success("签到成功");
+        } catch (BusinessException e) {
+            return R.fail(e.getCause().getMessage());
+        }  catch (Exception e) {
+            return R.fail("系统繁忙,请稍后再试");
+        }
     }
 
     @ApiOperation("交易完成确认")

+ 3 - 3
alien-second/src/main/java/shop/alien/second/service/SecondTradeRecordService.java

@@ -2,7 +2,7 @@ package shop.alien.second.service;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import io.swagger.models.auth.In;
+import shop.alien.entity.result.BusinessException;
 import shop.alien.entity.second.SecondTradeRecord;
 import shop.alien.entity.second.vo.SecondTradeRecordVo;
 
@@ -21,13 +21,13 @@ public interface SecondTradeRecordService extends IService<SecondTradeRecord> {
 
     boolean goodsTradeConfirm(int goodsId) throws Exception;
 
-    boolean tradeConfirm(int tradeId, int messageId, int type) throws Exception;
+    boolean tradeConfirm(int tradeId, int messageId, int type) throws BusinessException, Exception;
 
     boolean cancelTrade(int tradeId, String cancelReason, String cancelReasonSupplement) throws Exception;
 
     boolean whetherCanSignIn(int tradeId) throws Exception;
 
-    boolean tradeSignIn(int tradeId, int messageId, String signInLatitudeLongitude, String signInLatitudeLongitudeAddress) throws Exception;
+    boolean tradeSignIn(int tradeId, int messageId, String signInLatitudeLongitude, String signInLatitudeLongitudeAddress) throws BusinessException, Exception;
 
     SecondTradeRecordVo getUserTradeStatus(int tradeId) throws Exception;
 

+ 25 - 27
alien-second/src/main/java/shop/alien/second/service/impl/SecondTradeRecordServiceImpl.java

@@ -8,6 +8,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import shop.alien.entity.result.BusinessException;
 import shop.alien.entity.second.SecondGoods;
 import shop.alien.entity.second.SecondTradeRecord;
 import shop.alien.entity.second.vo.SecondTradeRecordVo;
@@ -71,7 +72,7 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
 
             return true;
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.createTrade Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.createTrade(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }
@@ -139,9 +140,6 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
 
         alienStoreFeign.sendMsgToClientByPhoneId(phoneId, JSONObject.from(webSocketVo).toJSONString());
         alienStoreFeign.sendMsgToClientByPhoneId(receiverId, JSONObject.from(webSocketVo).toJSONString());
-
-//        alienStoreFeign.sendMsgToClientByPhoneId(phoneId, phoneId, receiverId, "message", messageType, message.toJSONString(), lifeMessage.getId());
-//        alienStoreFeign.sendMsgToClientByPhoneId(receiverId, phoneId, receiverId, "message", messageType, message.toJSONString(), lifeMessage.getId());
     }
 
     @Override
@@ -152,15 +150,19 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             queryWrapper.in(SecondTradeRecord::getTradeStatus, 3, 4);
             return secondTradeRecordMapper.selectCount(queryWrapper) == 0;
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.goodsTrade Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.goodsTrade(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean tradeConfirm(int tradeId, int messageId, int type) throws Exception {
+    public boolean tradeConfirm(int tradeId, int messageId, int type) throws BusinessException, Exception {
         try {
+            // 交易信息
+            SecondTradeRecord trade = secondTradeRecordMapper.selectById(tradeId);
+            if (trade.getTradeStatus() == 6) throw new BusinessException("该交易已取消,不可操作");
+
             // 修改交易状态
             SecondTradeRecord tradeRecord = new SecondTradeRecord();
             tradeRecord.setId(tradeId);
@@ -171,9 +173,6 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             }
             secondTradeRecordMapper.updateById(tradeRecord);
 
-            // 交易信息
-            SecondTradeRecord trade = secondTradeRecordMapper.selectById(tradeId);
-
             // 商品信息
             SecondGoods goods = secondGoodsMapper.selectById(trade.getGoodsId());
 
@@ -212,12 +211,11 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             alienStoreFeign.sendMsgToClientByPhoneId(phoneId, JSONObject.from(webSocketVo).toJSONString());
             alienStoreFeign.sendMsgToClientByPhoneId(receiverId, JSONObject.from(webSocketVo).toJSONString());
 
-//            alienStoreFeign.sendMsgToClientByPhoneId(phoneId, phoneId, receiverId, "message", "4", lastMessageContent.toJSONString(), lastMessage.getId());
-//            alienStoreFeign.sendMsgToClientByPhoneId(receiverId, phoneId, receiverId, "message", "4", lastMessageContent.toJSONString(), lastMessage.getId());
-
             return true;
+        } catch (BusinessException e) {
+            throw new BusinessException(e);
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.tradeConfirm Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.tradeConfirm(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }
@@ -246,7 +244,7 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
 
             return true;
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.cancelTrade Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.cancelTrade(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }
@@ -261,7 +259,7 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             if (userId == trade.getBuyerId() && 0 == trade.getBuyerSignIn()) return true;
             if (userId == trade.getSellerId() && 0 == trade.getSellerSignIn()) return true;
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.whetherCanSignIn Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.whetherCanSignIn(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
         return false;
@@ -269,7 +267,7 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean tradeSignIn(int tradeId, int messageId, String signInLatitudeLongitude, String signInLatitudeLongitudeAddress) throws Exception {
+    public boolean tradeSignIn(int tradeId, int messageId, String signInLatitudeLongitude, String signInLatitudeLongitudeAddress) throws BusinessException, Exception {
         try {
             SecondTradeRecord trade = secondTradeRecordMapper.selectById(tradeId);
             if (null == trade) return false;
@@ -288,25 +286,26 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             record.setId(tradeId);
             Date now = Date.from(LocalDateTime.now().withSecond(0).withNano(0).atZone(ZoneId.systemDefault()).toInstant());
             if (userId == trade.getBuyerId()) {
-                if (1 == trade.getBuyerSignIn()) throw new Exception("该交易已签到,无需再次签到");
+                if (1 == trade.getBuyerSignIn()) throw new BusinessException("该交易已签到,无需再次签到");
                 record.setBuyerSignIn(1);
                 record.setBuyerSignInTime(now);
                 record.setBuyerSignInLatitudeLongitude(signInLatitudeLongitude);
                 record.setBuyerSignInLatitudeLongitudeAddress(signInLatitudeLongitudeAddress);
             } else if (userId == trade.getSellerId()) {
-                if (1 == trade.getSellerSignIn()) throw new Exception("该交易已签到,无需再次签到");
+                if (1 == trade.getSellerSignIn()) throw new BusinessException("该交易已签到,无需再次签到");
                 record.setSellerSignIn(1);
                 record.setSellerSignInTime(now);
                 record.setSellerSignInLatitudeLongitude(signInLatitudeLongitude);
                 record.setSellerSignInLatitudeLongitudeAddress(signInLatitudeLongitudeAddress);
             } else {
-                return false;
+                log.error("SecondTradeRecordServiceImpl.tradeSignIn(): Error Msg={}", "userId无效");
+                throw new Exception();
             }
             secondTradeRecordMapper.updateById(record);
 
             // 删除签到提醒
             LifeMessage signInMessage = lifeMessageMapper.selectById(messageId);
-            if (null == signInMessage) throw new Exception("该交易已签到,无需再次签到");
+            if (null == signInMessage) throw new BusinessException("该交易已签到,无需再次签到");
             lifeMessageMapper.deleteById(messageId);
 
             // 发送已签到消息
@@ -335,12 +334,9 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             alienStoreFeign.sendMsgToClientByPhoneId(phoneId, JSONObject.from(webSocketVo).toJSONString());
             alienStoreFeign.sendMsgToClientByPhoneId(receiverId, JSONObject.from(webSocketVo).toJSONString());
 
-//            alienStoreFeign.sendMsgToClientByPhoneId(phoneId, phoneId, receiverId, "message", "6", messageContent.toJSONString(), message.getId());
-//            alienStoreFeign.sendMsgToClientByPhoneId(receiverId, phoneId, receiverId, "message", "6", messageContent.toJSONString(), message.getId());
-
             return true;
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.tradeSignIn Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.tradeSignIn(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }
@@ -352,6 +348,8 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             SecondTradeRecordVo recordVo = new SecondTradeRecordVo();
             int userId = Objects.requireNonNull(JwtUtil.getCurrentUserInfo()).getInteger("userId");
             SecondTradeRecord tradeRecord = secondTradeRecordMapper.selectById(tradeId);
+            if (null == tradeRecord) return new SecondTradeRecordVo();
+
             if (userId == tradeRecord.getBuyerId()) {
                 recordVo.setUserTransactionStatus(tradeRecord.getBuyerTransactionStatus());
                 recordVo.setUserEvaluate(tradeRecord.getBuyerEvaluate());
@@ -361,7 +359,7 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             }
             return recordVo;
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.getUserTradeStatus Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.getUserTradeStatus(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }
@@ -398,7 +396,7 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             secondTradeRecordMapper.updateById(record);
             return true;
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.tradeCompleteConfirm Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.tradeCompleteConfirm(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }
@@ -413,7 +411,7 @@ public class SecondTradeRecordServiceImpl extends ServiceImpl<SecondTradeRecordM
             wrapper.orderByDesc("trade.created_time");
             return secondTradeRecordMapper.getTradeRecord(wrapper);
         } catch (Exception e) {
-            log.error("SecondTradeRecordServiceImpl.getTradeRecord Error Mgs={}", e.getMessage());
+            log.error("SecondTradeRecordServiceImpl.getTradeRecord(): Error Msg={}", e.getMessage());
             throw new Exception(e);
         }
     }