qrs преди 1 месец
родител
ревизия
f5ceaadddc

+ 9 - 4
alien-second/src/main/java/shop/alien/second/controller/RiskControlController.java

@@ -1,10 +1,7 @@
 package shop.alien.second.controller;
 
 import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import shop.alien.second.service.RiskControlService;
 
 @RestController
@@ -31,4 +28,12 @@ public class RiskControlController {
                                       @RequestParam("detailInfo") String detailInfo) {
         riskControlService.recordRiskControlData(userId, ruleType, ruleName, businessId, detailInfo);
     }
+
+    /**
+     * 发送封禁通知
+     */
+    @GetMapping("/sendNotice")
+    public void sendNotice(Integer userId) {
+        riskControlService.sendNotice(userId);
+    }
 }

+ 5 - 0
alien-second/src/main/java/shop/alien/second/service/RiskControlService.java

@@ -33,4 +33,9 @@ public interface RiskControlService extends IService<SecondRiskControlRecord> {
      * @return 相同类型的风控数据列表
      */
     List<SecondRiskControlRecord> getSameTypeRiskControlRecords(Integer ruleType, String businessId);
+
+    /**
+     * 发送封禁通知
+     */
+    void sendNotice(Integer userId);
 }

+ 44 - 0
alien-second/src/main/java/shop/alien/second/service/impl/RiskControlServiceImpl.java

@@ -1,12 +1,19 @@
 package shop.alien.second.service.impl;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import shop.alien.entity.second.SecondRiskControlRecord;
+import shop.alien.entity.store.LifeNotice;
+import shop.alien.entity.store.LifeUser;
+import shop.alien.entity.store.vo.WebSocketVo;
+import shop.alien.mapper.LifeNoticeMapper;
+import shop.alien.mapper.LifeUserMapper;
 import shop.alien.mapper.second.SecondRiskControlRecordMapper;
+import shop.alien.second.feign.AlienStoreFeign;
 import shop.alien.second.service.RiskControlService;
 
 import java.util.Date;
@@ -21,6 +28,9 @@ import java.util.List;
 public class RiskControlServiceImpl extends ServiceImpl<SecondRiskControlRecordMapper, SecondRiskControlRecord> implements RiskControlService {
 
     private final SecondRiskControlRecordMapper secondRiskControlRecordMapper;
+    private final LifeNoticeMapper lifeNoticeMapper;
+    private final LifeUserMapper lifeUserMapper;
+    private final AlienStoreFeign alienStoreFeign;
 
     /**
      * 记录风控数据
@@ -72,4 +82,38 @@ public class RiskControlServiceImpl extends ServiceImpl<SecondRiskControlRecordM
         log.info("查询条件: {}", queryWrapper.getSqlSegment());
         return secondRiskControlRecordMapper.selectList(queryWrapper);
     }
+
+    /**
+     * 发送封禁通知
+     */
+    public void sendNotice(Integer userId) {
+        LifeUser lifeUser = lifeUserMapper.selectById(userId);
+        if (lifeUser == null) return;
+
+        String phoneId = "user_" + lifeUser.getUserPhone();
+
+        // 给买家发送通知
+        LifeNotice lifeNotice = new LifeNotice();
+        lifeNotice.setSenderId("system");
+        lifeNotice.setReceiverId(phoneId);
+        lifeNotice.setBusinessId(userId);
+        lifeNotice.setTitle("账号违规处理");
+        lifeNotice.setNoticeType(1);
+        // 封装通知信息
+        JSONObject noticeMessage = new JSONObject();
+        noticeMessage.put("message", "账号违反平台规约进行封禁处理");
+        lifeNotice.setContext(noticeMessage.toJSONString());
+        lifeNoticeMapper.insert(lifeNotice);
+
+        // 给买家推送通知
+        WebSocketVo webSocketVo = new WebSocketVo();
+        webSocketVo.setSenderId("system");
+        webSocketVo.setReceiverId(phoneId);
+        webSocketVo.setCategory("notice");
+        webSocketVo.setNoticeType("1");
+        webSocketVo.setType("1");
+        webSocketVo.setText(JSONObject.from(lifeNotice).toJSONString());
+        alienStoreFeign.sendMsgToClientByPhoneId(phoneId, JSONObject.from(webSocketVo).toJSONString());
+    }
+
 }