Browse Source

退款增加访问端判断是否允许退款

wanxl 1 year ago
parent
commit
26981439a0

+ 1 - 1
src/main/java/com/template/api/HouseOrderAPI.java

@@ -106,7 +106,7 @@ public interface HouseOrderAPI {
     // 取消
     @PostMapping("/cancelApplet")
     @ApiOperation(value = "小程序-订单取消", notes = "小程序-订单取消", httpMethod = "POST")
-    CommonResult cancelApplet(@RequestBody CancelAppletDto cancelAppletDto);
+    CommonResult cancelApplet(@RequestBody CancelAppletDto cancelAppletDto,HttpServletRequest request);
 
 
     @PostMapping(value = "/returnRefund")

+ 21 - 0
src/main/java/com/template/common/utils/HttpUtils.java

@@ -111,4 +111,25 @@ public class HttpUtils {
         }
         return str;
     }
+
+    /**
+     * 判断User-Agent 是不是来自于手机
+     * @param ua
+     * @author Leemeea
+     * @return
+     */
+    public static boolean checkAgentIsMobile(String ua) {
+        String[] deviceArray = new String[] { "android", "iPhone", "ipod",
+                "ipad", "blackberry", "ucweb", "windows phone" };
+        if (ua == null) {
+            return false;
+        }
+        ua = ua.toLowerCase();
+        for (String string : deviceArray) {
+            if (ua.indexOf(string) > 0) {
+                return true;
+            }
+        }
+        return false;
+    }
 }

+ 3 - 2
src/main/java/com/template/controller/HouseOrderController.java

@@ -2514,9 +2514,10 @@ public class HouseOrderController implements HouseOrderAPI {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public CommonResult cancelApplet(CancelAppletDto cancelAppletDto) {
+    public CommonResult cancelApplet(CancelAppletDto cancelAppletDto,HttpServletRequest request) {
         String houseNumberId = cancelAppletDto.getHouseNumberId();
         String orderNumber = cancelAppletDto.getOrderNumber();
+        String ua = request.getHeader("User-Agent");
         int usersId = cancelAppletDto.getUsersId();
 
         if (ObjectUtils.isEmpty(houseNumberId) && ObjectUtils.isEmpty(orderNumber) && ObjectUtils.isEmpty(usersId) && usersId > 0) {
@@ -2560,7 +2561,7 @@ public class HouseOrderController implements HouseOrderAPI {
                 LocalDateTime now = LocalDateTime.now();
                 String reserveLiveTime = houseOrder.getReserveLiveTime();
                 LocalDateTime date = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1);
-                if (now.isAfter(date)) {
+                if (now.isAfter(date)&&HttpUtils.checkAgentIsMobile(ua)) {
                     return CommonResult.fail("已超过退款时间,如需退款请前往前台办理");
                 }