Pārlūkot izejas kodu

Merge remote-tracking branch 'origin/sit' into sit

lyx 3 nedēļas atpakaļ
vecāks
revīzija
9f997aeeea

+ 15 - 8
alien-job/src/main/java/shop/alien/job/store/LawyerOrderJob.java

@@ -3,6 +3,7 @@ package shop.alien.job.store;
 import com.alibaba.fastjson2.util.DateUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import lombok.RequiredArgsConstructor;
@@ -43,10 +44,13 @@ public class LawyerOrderJob {
                     .eq(LawyerConsultationOrder::getOrderStatus, 2)
                     .eq(LawyerConsultationOrder::getDeleteFlag, 0);
             List<LawyerConsultationOrder> lawyerConsultationOrders = lawyerConsultationOrderMapper.selectList(lambdaQueryWrapper);
-            LambdaUpdateWrapper<LawyerConsultationOrder> lawyerConsultationOrderLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
-            lawyerConsultationOrderLambdaUpdateWrapper.set(LawyerConsultationOrder::getOrderStatus, 3)
-                    .in(LawyerConsultationOrder::getId, lawyerConsultationOrders.stream().map(LawyerConsultationOrder::getId).collect(Collectors.toList()));
-            lawyerConsultationOrderMapper.update(null, lawyerConsultationOrderLambdaUpdateWrapper);
+            List<Integer> collect = lawyerConsultationOrders.stream().map(LawyerConsultationOrder::getId).collect(Collectors.toList());
+            if (ObjectUtils.isNotEmpty( collect) && !collect.isEmpty()) {
+                LambdaUpdateWrapper<LawyerConsultationOrder> lawyerConsultationOrderLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+                lawyerConsultationOrderLambdaUpdateWrapper.set(LawyerConsultationOrder::getOrderStatus, 3)
+                        .in(LawyerConsultationOrder::getId, collect);
+                lawyerConsultationOrderMapper.update(null, lawyerConsultationOrderLambdaUpdateWrapper);
+            }
         } else {
             log.info("开始执行待接单订单超时处理任务");
             String format = DateUtils.format(shop.alien.util.common.DateUtils.calcDays(new Date(), -4), "yyyy-MM-dd");
@@ -55,10 +59,13 @@ public class LawyerOrderJob {
                     .like(LawyerConsultationOrder::getAcceptOrdersTime, format)
                     .eq(LawyerConsultationOrder::getDeleteFlag, 0);
             List<LawyerConsultationOrder> lawyerConsultationOrders = lawyerConsultationOrderMapper.selectList(lambdaQueryWrapper);
-            LambdaUpdateWrapper<LawyerConsultationOrder> lawyerConsultationOrderLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
-            lawyerConsultationOrderLambdaUpdateWrapper.set(LawyerConsultationOrder::getOrderStatus, 3)
-                    .in(LawyerConsultationOrder::getId, lawyerConsultationOrders.stream().map(LawyerConsultationOrder::getId).collect(Collectors.toList()));
-            lawyerConsultationOrderMapper.update(null, lawyerConsultationOrderLambdaUpdateWrapper);
+            List<Integer> collect = lawyerConsultationOrders.stream().map(LawyerConsultationOrder::getId).collect(Collectors.toList());
+            if (ObjectUtils.isNotEmpty( collect) && !collect.isEmpty()) {
+                LambdaUpdateWrapper<LawyerConsultationOrder> lawyerConsultationOrderLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+                lawyerConsultationOrderLambdaUpdateWrapper.set(LawyerConsultationOrder::getOrderStatus, 3)
+                        .in(LawyerConsultationOrder::getId, collect);
+                lawyerConsultationOrderMapper.update(null, lawyerConsultationOrderLambdaUpdateWrapper);
+            }
         }
     }
 }

+ 11 - 1
alien-lawyer/src/main/java/shop/alien/lawyer/controller/LawyerNoticeController.java

@@ -92,5 +92,15 @@ public class LawyerNoticeController {
         
         return lawyerNoticeService.hasUnreadNotice(receiverId);
     }
-
+    @GetMapping("/readNoticeById")
+    @ApiOperation("通知已读")
+    @ApiOperationSupport(order = 4)
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主键id", dataType = "Integer", paramType = "query")})
+    public R<Boolean> readNoticeById(Integer id) {
+        log.info("LifeNoticeController.readNoticeById?receiverId={}", id);
+        if (lawyerNoticeService.readNoticeById(id) > 0) {
+            return R.success("已读成功");
+        }
+        return R.fail("已读失败");
+    }
 }

+ 3 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/service/LawyerNoticeService.java

@@ -32,4 +32,7 @@ public interface LawyerNoticeService extends IService<LifeNotice> {
      */
     R<Boolean> hasUnreadNotice(String receiverId);
 
+    int readNoticeById(Integer id);
+
+
 }

+ 9 - 0
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/LawyerNoticeServiceImpl.java

@@ -2,6 +2,7 @@ package shop.alien.lawyer.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -347,4 +348,12 @@ public class LawyerNoticeServiceImpl extends ServiceImpl<LifeNoticeMapper, LifeN
         log.debug("LawyerNoticeServiceImpl.hasUnreadNotice, receiverId={}, hasUnread={}", receiverId, hasUnread);
         return R.data(hasUnread);
     }
+
+    @Override
+    public int readNoticeById(Integer id) {
+        LambdaUpdateWrapper<LifeNotice> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(LifeNotice::getId, id);
+        wrapper.set(LifeNotice::getIsRead, 1);
+        return lifeNoticeMapper.update(null, wrapper);
+    }
 }

+ 21 - 21
alien-lawyer/src/main/java/shop/alien/lawyer/service/impl/OrderExpirationServiceImpl.java

@@ -180,33 +180,33 @@ public class OrderExpirationServiceImpl implements OrderExpirationService, Comma
                 log.info("檢測到有訂單需要退款,訂單no: {}", orderNo);
 
                 // 處理訂單退款
-                aliController.processRefund(order.getAlipayNo(),  new BigDecimal(order.getOrderAmount()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString(), refundReason,"");
-
-                log.info("訂單退款成功,訂單no: {}", orderNo);
+                String refundResult = aliController.processRefund(order.getAlipayNo(), new BigDecimal(order.getOrderAmount()).divide(new BigDecimal(100), 2, RoundingMode.HALF_UP).toString(), refundReason, "");
+                if ("调用成功".equals(refundResult)) {
+                    log.info("訂單退款成功,訂單no: {}", orderNo);
 
-                //同意退款通知
-                LifeNotice lifeNotice = buildUserLifeNotice(order, "同意退款通知", "您的编号为" + orderNo + "的订单,律师已同意您的退款申请,订单金额将在1-3个工作日原路返还,请注意查收。");
-                WebSocketVo webSocketVo = buildWebSocketVo(lifeNotice);
-
-                lifeNoticeMapper.insert(lifeNotice);
-                webSocketProcess.sendMessage(lifeNotice.getReceiverId(), JSONObject.from(webSocketVo).toJSONString());
+                    //同意退款通知
+                    LifeNotice lifeNotice = buildUserLifeNotice(order, "同意退款通知", "您的编号为" + orderNo + "的订单,律师已同意您的退款申请,订单金额将在1-3个工作日原路返还,请注意查收。");
+                    WebSocketVo webSocketVo = buildWebSocketVo(lifeNotice);
 
-                //退款到账通知
-                LifeNotice lifeNotice2 = buildUserLifeNotice(order, "退款到账通知", "您的编号为" + orderNo + "的订单,订单金额已原路返还至您的支付渠道,请查收。");
-                WebSocketVo webSocketVo2 = buildWebSocketVo(lifeNotice);
-                lifeNotice2.setCreatedTime(DateUtils.calcMinute(lifeNotice.getCreatedTime(), 2));
+                    lifeNoticeMapper.insert(lifeNotice);
+                    webSocketProcess.sendMessage(lifeNotice.getReceiverId(), JSONObject.from(webSocketVo).toJSONString());
 
-                lifeNoticeMapper.insert(lifeNotice2);
-                webSocketProcess.sendMessage(lifeNotice2.getReceiverId(), JSONObject.from(webSocketVo2).toJSONString());
+                    //退款到账通知
+                    LifeNotice lifeNotice2 = buildUserLifeNotice(order, "退款到账通知", "您的编号为" + orderNo + "的订单,订单金额已原路返还至您的支付渠道,请查收。");
+                    WebSocketVo webSocketVo2 = buildWebSocketVo(lifeNotice);
+                    lifeNotice2.setCreatedTime(DateUtils.calcMinute(lifeNotice.getCreatedTime(), 2));
 
-                log.info("系统通知发送成功,訂單no: {}", orderNo);
+                    lifeNoticeMapper.insert(lifeNotice2);
+                    webSocketProcess.sendMessage(lifeNotice2.getReceiverId(), JSONObject.from(webSocketVo2).toJSONString());
 
-                LawyerConsultationOrder update = new LawyerConsultationOrder();
-                update.setId(order.getId());
-                update.setOrderStatus(5);
-                update.setApplyRefundStatus("4");
-                orderMapper.updateById(update);
+                    log.info("系统通知发送成功,訂單no: {}", orderNo);
 
+                    LawyerConsultationOrder update = new LawyerConsultationOrder();
+                    update.setId(order.getId());
+                    update.setOrderStatus(5);
+                    update.setApplyRefundStatus("4");
+                    orderMapper.updateById(update);
+                }
             }
         } catch (Exception e) {
             log.error("處理有訂單需要退款key失敗,key: {}", expiredKey, e);

+ 7 - 3
alien-store-platform/src/main/java/shop/alien/storeplatform/controller/LifeUserOrderPlatformController.java

@@ -1,10 +1,10 @@
 package shop.alien.storeplatform.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
 import shop.alien.entity.result.R;
@@ -69,8 +69,12 @@ public class LifeUserOrderPlatformController {
                                                         @RequestParam(value = "startTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 00:00:00") String startTime,
                                                         @RequestParam(value = "endTime", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd 23:59:59") String endTime) {
         log.info("userOrder.queryUserOrderList:page={}&size={}&userId={}&storeId={}&orderType={}&orderStatus={}&name={}&startTime={}&endTime={}", pageNum, pageSize, userId, storeId, couponType, status, couponName, startTime, endTime);
-        if (StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(storeId)) {
-            return R.fail("用户id和商户id不能同时为空");
+
+        if (storeId == null || storeId == "" ) {
+            return R.data(null);
+        }
+        if (userId == null || userId == "") {
+            return R.data(null);
         }
         return R.data(lifeUserOrderService.queryUserOrderList(pageNum, pageSize, userId, storeId, couponType, status, couponName, startTime, endTime, orderNo));
     }

+ 17 - 4
alien-store/src/main/java/shop/alien/store/service/impl/LifeMessageServiceImpl.java

@@ -227,9 +227,21 @@ public class LifeMessageServiceImpl extends ServiceImpl<LifeMessageMapper, LifeM
             wrapper.orderByDesc("message.created_time");
 //        IPage<LifeMessageVo> ipage = new Page<>(1, Integer.MAX_VALUE);
             List<LifeMessageVo> lifeMessageVoList = lifeMessageMapper.getLifeMessagePageByPhoneId(receiverId, wrapper);
+            LifeMessageVo messageVos = null;
+            if(CollectionUtils.isEmpty(lifeMessageVoList)){
+                return messageVos;
+            }
 
-            LifeMessageVo messageVo = lifeMessageVoList.stream().max(Comparator.comparing(LifeMessageVo::getCreatedTime)).orElse(null);
-            if (messageVo != null) {
+            lifeMessageVoList.sort(Comparator.comparing(LifeMessageVo::getCreatedTime).reversed());
+            for(LifeMessageVo messageVo : lifeMessageVoList) {
+                int messageId = messageVo.getId();
+                LifeMessage lifeMessage = lifeMessageMapper.selectById(messageId);
+                if(lifeMessage!=null){
+                    String senderId = lifeMessage.getSenderId();
+                    if (senderId != null && senderId.startsWith("lawyer_")) {
+                        continue;
+                    }
+                }
                 messageVo.setNotReadCount(lifeMessageVoList.stream().filter(item -> 0 == item.getIsRead()).count());
                 // 根据手机号查询发送人信息
                 String storePhones = "''";
@@ -244,9 +256,10 @@ public class LifeMessageServiceImpl extends ServiceImpl<LifeMessageMapper, LifeM
                     messageVo.setUserName(userList.get(0).getUserName());
                     messageVo.setUserImage(userList.get(0).getUserImage());
                 }
+                messageVos = messageVo;
+                break;
             }
-
-            return messageVo;
+            return messageVos;
         } catch (Exception e) {
             log.error("LifeMessageServiceImpl.getNoFriendMessageNum Error Mgs={}", e.getMessage());
             throw new Exception(e);