feat:通过日期获取使用用户数,活跃用户数,新增企业数,注册用户数。

This commit is contained in:
ZZM 2025-06-19 09:39:45 +08:00
parent 355e3e56dd
commit cfd83a287f
10 changed files with 280 additions and 3 deletions

View File

@ -2,21 +2,32 @@ package com.kakarote.crm.controller;
import com.kakarote.core.common.Result; import com.kakarote.core.common.Result;
import com.kakarote.crm.entity.VO.CrmV3SysRiskDataExposedVo; import com.kakarote.crm.entity.VO.CrmV3SysRiskDataExposedVo;
import com.kakarote.crm.service.ICrmQyfxjcjgService; import com.kakarote.crm.service.ICrmQyfxjcjgService;
import com.kakarote.crm.service.ICrmUserAnalyseService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDate;
@RestController @RestController
@RequestMapping("/crmGetData") @RequestMapping("/Risk")
public class CrmGetV3SysRiskDataController { public class CrmGetV3SysRiskDataController {
@Autowired @Autowired
private ICrmQyfxjcjgService iCrmQyfxjcjgService; private ICrmQyfxjcjgService iCrmQyfxjcjgService;
@PostMapping(value = "/resp") @Autowired
private ICrmUserAnalyseService iCrmUserAnalyseService;
@PostMapping(value = "/getV3SysRiskData")
public Result getV3SysRiskData(@RequestBody CrmV3SysRiskDataExposedVo crmV3SysRiskDataExposedVo) throws IOException { public Result getV3SysRiskData(@RequestBody CrmV3SysRiskDataExposedVo crmV3SysRiskDataExposedVo) throws IOException {
return Result.ok(iCrmQyfxjcjgService.getLocalRiskData(crmV3SysRiskDataExposedVo)); return Result.ok(iCrmQyfxjcjgService.getLocalRiskData(crmV3SysRiskDataExposedVo));
} }
@PostMapping(value = "/getTaxPreCheckUsage/{queryDate}")
public Result getTaxPreCheckUsage(@PathVariable("queryDate") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate queryDate) throws IOException {
return Result.ok(iCrmUserAnalyseService.addUserAnalyse(queryDate));
}
} }

View File

@ -0,0 +1,32 @@
package com.kakarote.crm.entity.DTO;
import lombok.Data;
import java.io.Serializable;
@Data
public class CrmTaxPreCheckUsageDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 活跃用户数
*/
private Integer activeUserCount;
/**
* 使用用户数
*/
private Integer usedUserCount;
/**
* 新增企业数
*/
private Integer newEnterprises;
/**
* 注册人数
*/
private Integer registeredUsers;
}

View File

@ -0,0 +1,84 @@
package com.kakarote.crm.entity.PO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.Date;
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@TableName("wk_crm_user_analyse")
@ApiModel(value="CrmUserAnalyse对象", description="用户分析")
public class CrmUserAnalyse implements Serializable {
private static final long serialVersionUID=1L;
@TableId(value = "khfx_id", type = IdType.AUTO)
/**
* 纳税人资格Id primary key
*/
private Integer khfxId;
/**
* 时间
*/
private Date time;
/**
* 添加企业微信数
*/
private Integer addQywx;
/**
* 签到用户数
*/
private Integer qdYhs;
/**
* 活跃用户数
*/
private Integer hyyhs;
/**
* 使用用户数
*/
private Integer syyhs;
/**
* 新增企业数
*/
private Integer addQys;
/**
* 新增用户数
*/
private Integer addUser;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private String createUp;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人
*/
private String updateBy;
}

View File

@ -0,0 +1,18 @@
package com.kakarote.crm.entity.VO;
import com.kakarote.crm.entity.DTO.CrmTaxPreCheckUsageDTO;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class CrmTaxPreCheckUsageVO implements Serializable {
private static final long serialVersionUID = 1L;
private String msg;
private int code;
private CrmTaxPreCheckUsageDTO data; // data是对象数组
}

View File

@ -0,0 +1,11 @@
package com.kakarote.crm.mapper;
import com.kakarote.core.servlet.BaseMapper;
import com.kakarote.crm.entity.PO.CrmUserAnalyse;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CrmUserAnalyseMapper extends BaseMapper<CrmUserAnalyse> {
}

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kakarote.crm.mapper.CrmUserAnalyseMapper">
<resultMap id="BaseResultMap" type="com.kakarote.crm.entity.PO.CrmUserAnalyse">
<result column="khfx_id" jdbcType="INTEGER" property="khfxId" />
<result column="time" jdbcType="TIMESTAMP" property="time" />
<result column="add_qywx" jdbcType="INTEGER" property="addQywx" />
<result column="qd_yhs" jdbcType="INTEGER" property="qdYhs" />
<result column="hyyhs" jdbcType="INTEGER" property="hyyhs" />
<result column="syyhs" jdbcType="INTEGER" property="syyhs" />
<result column="add_qys" jdbcType="INTEGER" property="addQys" />
<result column="add_user" jdbcType="INTEGER" property="addUser" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="creat_by" jdbcType="VARCHAR" property="createBy" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
</resultMap>
</mapper>

View File

@ -0,0 +1,18 @@
package com.kakarote.crm.service;
import com.kakarote.core.servlet.BaseService;
import com.kakarote.crm.entity.PO.CrmUserAnalyse;
import java.io.IOException;
import java.time.LocalDate;
public interface ICrmUserAnalyseService extends BaseService<CrmUserAnalyse> {
/**
* 添加CrmUserAnalyse
* @param queryDate
* @return
*/
int addUserAnalyse(LocalDate queryDate) throws IOException;
}

View File

@ -0,0 +1,59 @@
package com.kakarote.crm.service.impl;
import com.google.gson.Gson;
import com.kakarote.core.servlet.BaseServiceImpl;
import com.kakarote.crm.entity.DTO.CrmTaxPreCheckUsageDTO;
import com.kakarote.crm.entity.PO.CrmUserAnalyse;
import com.kakarote.crm.entity.VO.CrmTaxPreCheckUsageVO;
import com.kakarote.crm.mapper.CrmUserAnalyseMapper;
import com.kakarote.crm.service.ICrmUserAnalyseService;
import com.kakarote.crm.util.OkHttpClientUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
@Service
public class CrmUserAnalyseServiceImpl extends BaseServiceImpl<CrmUserAnalyseMapper, CrmUserAnalyse> implements ICrmUserAnalyseService {
@Autowired
private CrmUserAnalyseMapper crmUserAnalyseMapper;
@Value("${app.base_url}")
private String BASE_URL;
@Override
public int addUserAnalyse(LocalDate queryDate) throws IOException {
CrmUserAnalyse userAnalyse = getCrmUserAnalyse(queryDate);
return crmUserAnalyseMapper.insert(userAnalyse);
}
public CrmUserAnalyse getCrmUserAnalyse(LocalDate queryDate) throws IOException {
String json = OkHttpClientUtil.get(BASE_URL, queryDate);
Gson gson = new Gson();
CrmTaxPreCheckUsageVO vo = gson.fromJson(json, CrmTaxPreCheckUsageVO.class);
CrmTaxPreCheckUsageDTO dto = vo.getData();
//将Localdate转化为Date类型
Date date = Date.from(queryDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
CrmUserAnalyse userAnalyse = new CrmUserAnalyse();
userAnalyse.setHyyhs(dto.getActiveUserCount())
.setSyyhs(dto.getUsedUserCount())
.setAddUser(dto.getRegisteredUsers())
.setAddQys(dto.getNewEnterprises())
.setTime(date);
return userAnalyse;
}
}

View File

@ -4,6 +4,7 @@ import okhttp3.*;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.io.IOException; import java.io.IOException;
import java.time.LocalDate;
@Component @Component
public class OkHttpClientUtil { public class OkHttpClientUtil {
@ -34,4 +35,27 @@ public class OkHttpClientUtil {
} }
/**
* 创建一个get请求根据路径传参
* @param base_url
* @param pathParams
* @return
* @throws IOException
*/
public static String get(String base_url, Object pathParams) throws IOException {
HttpUrl url = HttpUrl.parse(base_url).newBuilder()
.addPathSegment(String.valueOf(pathParams)) // 添加路径参数
.build();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
return response.body().string();
}
} }

View File

@ -19,4 +19,5 @@ spring:
app: app:
url: "https://v3-demo.lqyuns.com" url: "https://v3-demo.lqyuns.com"
base_url : "http://localhost:8080/system/user/getDataByDate"