Просмотр исходного кода

商户端订单一键报警接口

wangzhijun 5 дней назад
Родитель
Сommit
9850f56212

+ 3 - 6
nightFragrance-massage/src/main/java/com/ylx/massage/service/AlarmService.java

@@ -3,6 +3,7 @@ package com.ylx.massage.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ylx.massage.domain.Alarm;
+import com.ylx.order.domain.dto.AlarmSubmitDTO;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 
@@ -54,10 +55,6 @@ public interface AlarmService extends IService<Alarm> {
      */
     boolean deleteById(String id);
 
-    /**
-     * 添加报警记录
-     * @param alarm
-     * @return
-     */
-    Alarm addAlarm(Alarm alarm);
+
+    Boolean submitAlarm(AlarmSubmitDTO dto);
 }

+ 59 - 4
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/AlarmServiceImpl.java

@@ -1,14 +1,29 @@
 package com.ylx.massage.service.impl;
 
 
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ylx.base.BaseServiceImpl;
+import com.ylx.common.exception.ServiceException;
+import com.ylx.common.utils.DateUtils;
 import com.ylx.massage.domain.Alarm;
+import com.ylx.massage.domain.MaTechnician;
 import com.ylx.massage.mapper.AlarmMapper;
 import com.ylx.massage.service.AlarmService;
+import com.ylx.massage.service.IMaTechnicianService;
+import com.ylx.order.domain.TOrder;
+import com.ylx.order.domain.dto.AlarmSubmitDTO;
+import com.ylx.order.service.TOrderService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+import static com.ylx.order.constant.OrderConstant.NOT_DELETE;
 
 /**
  * 报警记录表(YlxAlarm)表服务实现类
@@ -18,7 +33,12 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @Service("ylxAlarmService")
-public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements AlarmService {
+public class AlarmServiceImpl extends BaseServiceImpl<AlarmMapper, Alarm> implements AlarmService {
+
+    @Resource
+    private TOrderService orderService;
+    @Resource
+    private IMaTechnicianService maTechnicianService;
 
     @Override
     public Alarm queryById(String id) {
@@ -41,7 +61,42 @@ public class AlarmServiceImpl extends ServiceImpl<AlarmMapper, Alarm> implements
     }
 
     @Override
-    public Alarm addAlarm(Alarm alarm) {
-        return null;
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean submitAlarm(AlarmSubmitDTO dto) {
+
+        Long merchantId = this.getCurrentUserId();
+
+        LambdaQueryWrapper<TOrder> queryWrapper = Wrappers.lambdaQuery(TOrder.class)
+                .eq(TOrder::getOrderNo, dto.getOrderNo())
+                .eq(TOrder::getIsDelete, NOT_DELETE);
+
+        TOrder order = this.orderService.getOne(queryWrapper);
+        if (ObjectUtil.isNull(order)) {
+            throw new RuntimeException("订单不存在");
+        }
+
+        if (ObjectUtil.notEqual(order.getMerchantId(), merchantId)) {
+            throw new ServiceException("您无权操作此订单");
+        }
+
+        MaTechnician maTechnician = this.maTechnicianService.getById(merchantId);
+        if (ObjectUtil.isNull(maTechnician)) {
+            throw new RuntimeException("商户不存在");
+        }
+
+        Alarm alarm = new Alarm();
+        alarm.setMerchantId(merchantId.toString());
+        alarm.setMerchantName(maTechnician.getTeName());
+        alarm.setMerchantNickName(maTechnician.getTeNickName());
+        alarm.setMerchantAvatar(maTechnician.getTeAvatar());
+        alarm.setMerchantPhone(maTechnician.getTePhone());
+        alarm.setAddress(order.getContactAddressInfo());
+        alarm.setOrderNo(dto.getOrderNo());
+        alarm.setIsDelete(NOT_DELETE);
+        alarm.setAlarmStatus(0);
+        alarm.setCreateTime(DateUtils.getNowDate());
+        alarm.setCreateBy(maTechnician.getTeNickName());
+
+        return super.save(alarm);
     }
 }

+ 10 - 0
nightFragrance-massage/src/main/java/com/ylx/order/controller/MerchantOrderController.java

@@ -2,6 +2,7 @@ package com.ylx.order.controller;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ylx.common.core.domain.R;
+import com.ylx.massage.service.AlarmService;
 import com.ylx.order.domain.dto.*;
 import com.ylx.order.domain.vo.merchant.MerchantCancelOrderDTO;
 import com.ylx.order.domain.vo.merchant.MerchantOrderDetailVO;
@@ -26,6 +27,8 @@ public class MerchantOrderController {
 
     @Resource
     private TOrderService orderService;
+    @Resource
+    private AlarmService alarmService;
 
     @ApiOperation("商户端查询订单分页列表")
     @PostMapping("/queryByDate")
@@ -90,4 +93,11 @@ public class MerchantOrderController {
         return R.ok(vo);
     }
 
+    @PostMapping("/submit")
+    @ApiOperation("商户端订单一键报警")
+    public R<Boolean> submitAlarm(@Validated @RequestBody AlarmSubmitDTO dto) {
+        Boolean result = this.alarmService.submitAlarm(dto);
+        return R.ok(result);
+    }
+
 }

+ 17 - 0
nightFragrance-massage/src/main/java/com/ylx/order/domain/dto/AlarmSubmitDTO.java

@@ -0,0 +1,17 @@
+package com.ylx.order.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+@Data
+@ApiModel("商户端一键报警DTO")
+public class AlarmSubmitDTO implements Serializable {
+    private static final long serialVersionUID = 2402561213882683361L;
+
+    @NotBlank(message = "订单编号不能为空")
+    private String orderNo;
+
+}