diff --git a/src/main/java/com/corewing/app/config/SaTokenConfig.java b/src/main/java/com/corewing/app/config/SaTokenConfig.java index 07caadb..d4bef24 100644 --- a/src/main/java/com/corewing/app/config/SaTokenConfig.java +++ b/src/main/java/com/corewing/app/config/SaTokenConfig.java @@ -56,6 +56,7 @@ public class SaTokenConfig implements WebMvcConfigurer { // 排除获取最新app接口 .excludePathPatterns("/api/app", "/api/app/getAppVersion") .excludePathPatterns("/api/website/**") + .excludePathPatterns("/api/app/access_statistics/**") // 排除模型接口 .excludePathPatterns("/model/page", "/model/list", "/model/detail/**", "/model/category/**") // 排除咨询接口 diff --git a/src/main/java/com/corewing/app/dto/AccessStatisticsRequest.java b/src/main/java/com/corewing/app/dto/AccessStatisticsRequest.java new file mode 100644 index 0000000..4be5baa --- /dev/null +++ b/src/main/java/com/corewing/app/dto/AccessStatisticsRequest.java @@ -0,0 +1,17 @@ +package com.corewing.app.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@ApiModel("APP统计请求模型") +@Data +public class AccessStatisticsRequest { + + @ApiModelProperty("访问页面") + private String visitPage; + + @ApiModelProperty("访问类型") + private String accessType; + +} diff --git a/src/main/java/com/corewing/app/entity/AppAccessStatistics.java b/src/main/java/com/corewing/app/entity/AppAccessStatistics.java new file mode 100644 index 0000000..4ac986b --- /dev/null +++ b/src/main/java/com/corewing/app/entity/AppAccessStatistics.java @@ -0,0 +1,40 @@ +package com.corewing.app.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.corewing.app.common.base.CommonEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +@ApiModel("APP访问统计") +@EqualsAndHashCode(callSuper = true) +@Data +@TableName("app_access_statistics") +public class AppAccessStatistics extends CommonEntity { + + @ApiModelProperty("id") + @TableId + private String id; + + @ApiModelProperty("用户id") + private Long userId; + + @ApiModelProperty("访问页面") + private String visitPage; + + @ApiModelProperty("访问类型") + private String accessType; + + @ApiModelProperty("访问IP") + private String accessIp; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("扩展参数") + private String extJson; + + +} diff --git a/src/main/java/com/corewing/app/mapper/AppAccessStatisticsMapper.java b/src/main/java/com/corewing/app/mapper/AppAccessStatisticsMapper.java new file mode 100644 index 0000000..03ad44b --- /dev/null +++ b/src/main/java/com/corewing/app/mapper/AppAccessStatisticsMapper.java @@ -0,0 +1,9 @@ +package com.corewing.app.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.corewing.app.entity.AppAccessStatistics; +import org.mapstruct.Mapper; + +@Mapper +public interface AppAccessStatisticsMapper extends BaseMapper { +} diff --git a/src/main/java/com/corewing/app/modules/app/AppAccessStatisticsController.java b/src/main/java/com/corewing/app/modules/app/AppAccessStatisticsController.java new file mode 100644 index 0000000..f5df449 --- /dev/null +++ b/src/main/java/com/corewing/app/modules/app/AppAccessStatisticsController.java @@ -0,0 +1,28 @@ +package com.corewing.app.modules.app; + +import com.corewing.app.common.Result; +import com.corewing.app.dto.AccessStatisticsRequest; +import com.corewing.app.service.AppAccessStatisticsService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@Api(tags = "APP访问统计") +@RestController +@RequestMapping("/api/app/access_statistics") +public class AppAccessStatisticsController { + + @Resource + private AppAccessStatisticsService appAccessStatisticsService; + + @ApiOperation("访问统计接口") + @GetMapping("/accumulate") + private Result accumulate(AccessStatisticsRequest accessStatisticsRequest) { + return Result.isBool(appAccessStatisticsService.accumulate(accessStatisticsRequest)); + } + +} diff --git a/src/main/java/com/corewing/app/service/AppAccessStatisticsService.java b/src/main/java/com/corewing/app/service/AppAccessStatisticsService.java new file mode 100644 index 0000000..16b019f --- /dev/null +++ b/src/main/java/com/corewing/app/service/AppAccessStatisticsService.java @@ -0,0 +1,11 @@ +package com.corewing.app.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.corewing.app.dto.AccessStatisticsRequest; +import com.corewing.app.entity.AppAccessStatistics; + +public interface AppAccessStatisticsService extends IService { + + boolean accumulate(AccessStatisticsRequest accessStatisticsRequest); + +} diff --git a/src/main/java/com/corewing/app/service/impl/AppAccessStatisticsServiceImpl.java b/src/main/java/com/corewing/app/service/impl/AppAccessStatisticsServiceImpl.java new file mode 100644 index 0000000..4b64895 --- /dev/null +++ b/src/main/java/com/corewing/app/service/impl/AppAccessStatisticsServiceImpl.java @@ -0,0 +1,30 @@ +package com.corewing.app.service.impl; + +import cn.dev33.satoken.stp.StpUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.corewing.app.dto.AccessStatisticsRequest; +import com.corewing.app.entity.AppAccessStatistics; +import com.corewing.app.mapper.AppAccessStatisticsMapper; +import com.corewing.app.service.AppAccessStatisticsService; +import org.springframework.stereotype.Service; + +@Service +public class AppAccessStatisticsServiceImpl extends ServiceImpl implements AppAccessStatisticsService { + + @Override + public boolean accumulate(AccessStatisticsRequest accessStatisticsRequest) { + Object loginId = StpUtil.getLoginId(); + AppAccessStatistics appAccessStatistics = new AppAccessStatistics(); + if(loginId != null) { + appAccessStatistics.setUserId(Long.parseLong(loginId.toString())); + } + if(StrUtil.isNotBlank(accessStatisticsRequest.getVisitPage())) { + appAccessStatistics.setVisitPage(accessStatisticsRequest.getVisitPage()); + } + if(StrUtil.isNotBlank(accessStatisticsRequest.getAccessType())) { + appAccessStatistics.setAccessType(accessStatisticsRequest.getAccessType()); + } + return save(appAccessStatistics); + } +}