From cfd83a287f5056b8bb00dd5924b38151ab1f081b Mon Sep 17 00:00:00 2001 From: ZZM <1105966949@qq.com> Date: Thu, 19 Jun 2025 09:39:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E9=80=9A=E8=BF=87=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=BD=BF=E7=94=A8=E7=94=A8=E6=88=B7=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E6=B4=BB=E8=B7=83=E7=94=A8=E6=88=B7=E6=95=B0=EF=BC=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BC=81=E4=B8=9A=E6=95=B0=EF=BC=8C=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E7=94=A8=E6=88=B7=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CrmGetV3SysRiskDataController.java | 15 +++- .../entity/DTO/CrmTaxPreCheckUsageDTO.java | 32 +++++++ .../crm/entity/PO/CrmUserAnalyse.java | 84 +++++++++++++++++++ .../crm/entity/VO/CrmTaxPreCheckUsageVO.java | 18 ++++ .../crm/mapper/CrmUserAnalyseMapper.java | 11 +++ .../crm/mapper/xml/CrmUserAnalyseMapper.xml | 19 +++++ .../crm/service/ICrmUserAnalyseService.java | 18 ++++ .../impl/CrmUserAnalyseServiceImpl.java | 59 +++++++++++++ .../kakarote/crm/util/OkHttpClientUtil.java | 26 +++++- crm/src/main/resources/application-dev.yml | 1 + 10 files changed, 280 insertions(+), 3 deletions(-) create mode 100644 crm/src/main/java/com/kakarote/crm/entity/DTO/CrmTaxPreCheckUsageDTO.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/PO/CrmUserAnalyse.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/VO/CrmTaxPreCheckUsageVO.java create mode 100644 crm/src/main/java/com/kakarote/crm/mapper/CrmUserAnalyseMapper.java create mode 100644 crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUserAnalyseMapper.xml create mode 100644 crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java create mode 100644 crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java diff --git a/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java b/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java index 2407150..5a0a11b 100644 --- a/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java +++ b/crm/src/main/java/com/kakarote/crm/controller/CrmGetV3SysRiskDataController.java @@ -2,21 +2,32 @@ package com.kakarote.crm.controller; import com.kakarote.core.common.Result; import com.kakarote.crm.entity.VO.CrmV3SysRiskDataExposedVo; import com.kakarote.crm.service.ICrmQyfxjcjgService; +import com.kakarote.crm.service.ICrmUserAnalyseService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import java.io.IOException; +import java.time.LocalDate; @RestController -@RequestMapping("/crmGetData") +@RequestMapping("/Risk") public class CrmGetV3SysRiskDataController { @Autowired private ICrmQyfxjcjgService iCrmQyfxjcjgService; - @PostMapping(value = "/resp") + @Autowired + private ICrmUserAnalyseService iCrmUserAnalyseService; + + @PostMapping(value = "/getV3SysRiskData") public Result getV3SysRiskData(@RequestBody CrmV3SysRiskDataExposedVo crmV3SysRiskDataExposedVo) throws IOException { 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)); + } } diff --git a/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmTaxPreCheckUsageDTO.java b/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmTaxPreCheckUsageDTO.java new file mode 100644 index 0000000..f6a2524 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmTaxPreCheckUsageDTO.java @@ -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; +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/PO/CrmUserAnalyse.java b/crm/src/main/java/com/kakarote/crm/entity/PO/CrmUserAnalyse.java new file mode 100644 index 0000000..853a036 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/PO/CrmUserAnalyse.java @@ -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; +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmTaxPreCheckUsageVO.java b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmTaxPreCheckUsageVO.java new file mode 100644 index 0000000..1a39653 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmTaxPreCheckUsageVO.java @@ -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是对象数组 +} diff --git a/crm/src/main/java/com/kakarote/crm/mapper/CrmUserAnalyseMapper.java b/crm/src/main/java/com/kakarote/crm/mapper/CrmUserAnalyseMapper.java new file mode 100644 index 0000000..41d3b51 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/mapper/CrmUserAnalyseMapper.java @@ -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 { + + +} diff --git a/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUserAnalyseMapper.xml b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUserAnalyseMapper.xml new file mode 100644 index 0000000..298cb91 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUserAnalyseMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java b/crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java new file mode 100644 index 0000000..686ced0 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/service/ICrmUserAnalyseService.java @@ -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 + * @param queryDate + * @return + */ + int addUserAnalyse(LocalDate queryDate) throws IOException; +} diff --git a/crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java b/crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java new file mode 100644 index 0000000..be296dd --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/service/impl/CrmUserAnalyseServiceImpl.java @@ -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 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; + + } +} diff --git a/crm/src/main/java/com/kakarote/crm/util/OkHttpClientUtil.java b/crm/src/main/java/com/kakarote/crm/util/OkHttpClientUtil.java index bf4b21e..0b5f7e4 100644 --- a/crm/src/main/java/com/kakarote/crm/util/OkHttpClientUtil.java +++ b/crm/src/main/java/com/kakarote/crm/util/OkHttpClientUtil.java @@ -4,6 +4,7 @@ import okhttp3.*; import org.springframework.stereotype.Component; import java.io.IOException; +import java.time.LocalDate; @Component public class OkHttpClientUtil { @@ -32,6 +33,29 @@ public class OkHttpClientUtil { return response.body().string(); } - + + + /** + * 创建一个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(); + } + } diff --git a/crm/src/main/resources/application-dev.yml b/crm/src/main/resources/application-dev.yml index a456cf7..d6d8775 100644 --- a/crm/src/main/resources/application-dev.yml +++ b/crm/src/main/resources/application-dev.yml @@ -19,4 +19,5 @@ spring: app: url: "https://v3-demo.lqyuns.com" + base_url : "http://localhost:8080/system/user/getDataByDate"