Prechádzať zdrojové kódy

fix : 增加壳包进入埋点

bilingfeng 1 rok pred
rodič
commit
f10344dba7

+ 48 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/entity/GameShellLog.java

@@ -0,0 +1,48 @@
+package com.zanxiang.game.module.mybatis.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-08-17
+ * @description : 游戏壳包进入日志
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+@Builder
+@TableName("t_game_shell_log")
+public class GameShellLog {
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 版本
+     */
+    private String version;
+
+    /**
+     * 访问ip
+     */
+    private String ip;
+
+    /**
+     * 日志内容
+     */
+    private String data;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+}

+ 12 - 0
game-module/game-module-mybatis/src/main/java/com/zanxiang/game/module/mybatis/mapper/GameShellLogMapper.java

@@ -0,0 +1,12 @@
+package com.zanxiang.game.module.mybatis.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zanxiang.game.module.mybatis.entity.GameShellLog;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-08-17
+ * @description : 游戏壳包日志
+ */
+public interface GameShellLogMapper extends BaseMapper<GameShellLog> {
+}

+ 1 - 1
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/SDKApplication.java

@@ -23,7 +23,7 @@ public class SDKApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(SDKApplication.class, args);
-        System.out.println("赞象SDK服务启动成功 <米大师支付增加兑换比例> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象SDK服务启动成功 <米大师支付增加兑换比例, 增加壳包进入监听埋点> ( ´・・)ノ(._.`) \n" +
                 " ___________ _   __\n" +
                 "/  ___|  _  \\ | / /\n" +
                 "\\ `--.| | | | |/ / \n" +

+ 14 - 4
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/controller/UserController.java

@@ -1,6 +1,7 @@
 package com.zanxiang.game.module.sdk.controller;
 
 
+import com.zanxiang.game.module.sdk.annotation.UnSignCheck;
 import com.zanxiang.game.module.sdk.annotation.ValidLogin;
 import com.zanxiang.game.module.sdk.enums.DataTypeEnum;
 import com.zanxiang.game.module.sdk.pojo.param.*;
@@ -8,10 +9,7 @@ import com.zanxiang.game.module.sdk.pojo.vo.CustomerVO;
 import com.zanxiang.game.module.sdk.pojo.vo.GameShareVO;
 import com.zanxiang.game.module.sdk.pojo.vo.UserLoginVO;
 import com.zanxiang.game.module.sdk.pojo.vo.UserVO;
-import com.zanxiang.game.module.sdk.service.IGameUserRoleService;
-import com.zanxiang.game.module.sdk.service.IUserCardService;
-import com.zanxiang.game.module.sdk.service.IUserService;
-import com.zanxiang.game.module.sdk.service.IUserShareService;
+import com.zanxiang.game.module.sdk.service.*;
 import com.zanxiang.module.util.pojo.ResultVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -21,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.Objects;
 
 /**
@@ -45,6 +44,9 @@ public class UserController {
     @Autowired
     private IUserShareService userShareService;
 
+    @Autowired
+    private IGameShellLogService gameShellLogService;
+
     @ApiOperation(value = "游戏分享信息")
     @GetMapping("/share/game")
     @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = GameShareVO.class)})
@@ -113,4 +115,12 @@ public class UserController {
         return ResultVO.ok(gameUserRoleService.gameRoleActiveCall(userData, param));
     }
 
+    @UnSignCheck
+    @ApiOperation(value = "用户进入壳包上报")
+    @PostMapping("/game/shell/call")
+    @ApiResponses(value = {@ApiResponse(code = 200, message = "成功", response = Boolean.class)})
+    public ResultVO<Boolean> gameShellLogAdd(@Validated @RequestBody GameShellLogParam param, HttpServletRequest request) {
+        return ResultVO.ok(gameShellLogService.gameShellLogAdd(param, request));
+    }
+
 }

+ 29 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/pojo/param/GameShellLogParam.java

@@ -0,0 +1,29 @@
+package com.zanxiang.game.module.sdk.pojo.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-08-17
+ * @description : 游戏壳包日志提交参数
+ */
+@Data
+public class GameShellLogParam {
+
+    /**
+     * 前端当前版本
+     */
+    @NotBlank(message = "前端当前版本不可为空")
+    @ApiModelProperty(notes = "前端当前版本")
+    private String version;
+
+    /**
+     * 日志内容
+     */
+    @NotBlank(message = "日志内容不可为空")
+    @ApiModelProperty(notes = "日志内容")
+    private String data;
+}

+ 24 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/IGameShellLogService.java

@@ -0,0 +1,24 @@
+package com.zanxiang.game.module.sdk.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zanxiang.game.module.mybatis.entity.GameShellLog;
+import com.zanxiang.game.module.sdk.pojo.param.GameShellLogParam;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-08-17
+ * @description : 游戏壳包日志
+ */
+public interface IGameShellLogService extends IService<GameShellLog> {
+
+    /**
+     * 添加
+     *
+     * @param param   参数
+     * @param request 请求
+     * @return boolean
+     */
+    boolean gameShellLogAdd(GameShellLogParam param, HttpServletRequest request);
+}

+ 33 - 0
game-module/game-module-sdk/src/main/java/com/zanxiang/game/module/sdk/service/impl/GameShellLogServiceImpl.java

@@ -0,0 +1,33 @@
+package com.zanxiang.game.module.sdk.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zanxiang.game.module.mybatis.entity.GameShellLog;
+import com.zanxiang.game.module.mybatis.mapper.GameShellLogMapper;
+import com.zanxiang.game.module.sdk.pojo.param.GameShellLogParam;
+import com.zanxiang.game.module.sdk.service.IGameShellLogService;
+import com.zanxiang.module.web.util.IpUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
+
+/**
+ * @author : lingfeng
+ * @time : 2023-08-17
+ * @description : 游戏壳包日志
+ */
+@Slf4j
+@Service
+public class GameShellLogServiceImpl extends ServiceImpl<GameShellLogMapper, GameShellLog> implements IGameShellLogService {
+
+    @Override
+    public boolean gameShellLogAdd(GameShellLogParam param, HttpServletRequest request) {
+        return super.save(GameShellLog.builder()
+                .version(param.getVersion())
+                .ip(IpUtil.getRealIp(request))
+                .data(param.getData())
+                .createTime(LocalDateTime.now())
+                .build());
+    }
+}