Parcourir la source

:feat:角色充值排行榜界面- 创建发送消息任务 添加异常处理

zhangxianyu il y a 1 an
Parent
commit
3a76d82a84

+ 4 - 5
game-data/game-data-serve/src/main/java/com/zanxiang/game/data/serve/service/impl/RoleManageServiceImpl.java

@@ -28,10 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.zangxiang.game.base.rpc.SendMsgRpc;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -341,7 +338,9 @@ public class RoleManageServiceImpl implements IRoleManageService {
         //先查出来所有的角色
         List<Map> roleList = getRoleList(dto.getRoleRechargeRankingDTO());
         //筛选出角色id
-        List<String> roleIdList = roleList.stream().map(map -> map.get("role_id").toString()).collect(Collectors.toList());
+        List<String> roleIdList = roleList.stream()
+                .map(map -> Optional.ofNullable(map.get("role_id")).map(Object::toString).orElse(null))
+            .collect(Collectors.toList());
         SendMsgDto sendMsgDto = new SendMsgDto();
         sendMsgDto.setMsg(dto.getSendContent());
         sendMsgDto.setRoles(roleIdList);

+ 1 - 0
game-module/game-module-base/src/main/java/com/zanxiang/game/module/base/rpc/GameAuthRpc.java

@@ -16,4 +16,5 @@ public interface GameAuthRpc {
      * @return {@link GameAuthUserVO}
      */
     ResultVO<GameAuthUserVO> getGameAuthByUserIds();
+
 }

+ 24 - 7
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/rpc/impl/SendMsgImpl.java

@@ -6,13 +6,16 @@ import com.zanxiang.game.module.manage.service.ISendMsgTaskService;
 import com.zanxiang.game.module.manage.service.impl.SendMsgTaskServiceImpl;
 import com.zanxiang.game.module.mybatis.entity.SendMsgTask;
 import com.zanxiang.module.util.pojo.ResultVO;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboService;
 
 import javax.annotation.Resource;
 import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.Date;
 
 @DubboService
+@Slf4j
 public class SendMsgImpl implements SendMsgRpc {
 
     @Resource
@@ -20,18 +23,32 @@ public class SendMsgImpl implements SendMsgRpc {
 
     @Override
     public ResultVO<Boolean> sendMsg(SendMsgDto sendMsgDto) {
-        //创建任务
+        try {
+            // 数据校验
+            if (sendMsgDto == null || sendMsgDto.getMsg() == null || sendMsgDto.getGameName() == null || sendMsgDto.getCreateBy() == null || sendMsgDto.getRoles() == null || sendMsgDto.getRoles().isEmpty()) {
+                return ResultVO.fail("参数不能为空");
+            }
+            //创建任务
+            SendMsgTask sendMsgTask = createSendMsgTask(sendMsgDto);
+            //保存任务
+            sendMsgTaskService.save(sendMsgTask);
+            //todo:发送消息
+            log.info("发送消息成功");
+            return ResultVO.ok();
+        } catch (Exception e) {
+            log.error("发送消息异常, sendMsgDto : {}, e : {}", sendMsgDto, e.getMessage());
+            return ResultVO.fail("发送消息异常");
+        }
+    }
+
+    private SendMsgTask createSendMsgTask(SendMsgDto sendMsgDto) {
         SendMsgTask sendMsgTask = new SendMsgTask();
         sendMsgTask.setTaskName(sendMsgDto.getMsg());
         sendMsgTask.setTaskCondition(sendMsgDto.getSendConditionJson());
         sendMsgTask.setGameName(sendMsgDto.getGameName());
         sendMsgTask.setCreateBy(sendMsgDto.getCreateBy());
-        sendMsgTask.setCreateTime(LocalDate.now());
-        sendMsgTask.setMsg(sendMsgDto.getMsg());
+        sendMsgTask.setCreateTime(LocalDate.now(ZoneId.of("UTC")));
         sendMsgTask.setRoleIds(String.join(",", sendMsgDto.getRoles()));
-        //保存任务
-        sendMsgTaskService.save(sendMsgTask);
-        //todo:发送消息
-        return ResultVO.ok();
+        return sendMsgTask;
     }
 }