From 1a95c9284e20ebcab091f53a4b9e0ea99e9928e4 Mon Sep 17 00:00:00 2001 From: ZZM <1105966949@qq.com> Date: Thu, 21 Aug 2025 10:10:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=8E=E9=99=A9=E6=8A=A5=E5=91=8A=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CrmUsageReportController.java | 34 ++++++++ .../crm/entity/DTO/CrmHttpResponseDTO.java | 12 +++ .../crm/entity/PO/CrmUsageReport.java | 45 ++++++++++ .../crm/entity/VO/CrmQueryUsageReportVO.java | 22 +++++ .../crm/mapper/CrmUsageReportMapper.java | 9 ++ .../crm/mapper/xml/CrmUsageReportMapper.xml | 12 +++ .../crm/service/ICrmUsageReportService.java | 24 ++++++ .../impl/CrmUsageReportServiceImpl.java | 82 +++++++++++++++++++ 8 files changed, 240 insertions(+) create mode 100644 crm/src/main/java/com/kakarote/crm/controller/CrmUsageReportController.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/DTO/CrmHttpResponseDTO.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/PO/CrmUsageReport.java create mode 100644 crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryUsageReportVO.java create mode 100644 crm/src/main/java/com/kakarote/crm/mapper/CrmUsageReportMapper.java create mode 100644 crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUsageReportMapper.xml create mode 100644 crm/src/main/java/com/kakarote/crm/service/ICrmUsageReportService.java create mode 100644 crm/src/main/java/com/kakarote/crm/service/impl/CrmUsageReportServiceImpl.java diff --git a/crm/src/main/java/com/kakarote/crm/controller/CrmUsageReportController.java b/crm/src/main/java/com/kakarote/crm/controller/CrmUsageReportController.java new file mode 100644 index 0000000..ee7e4b5 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/controller/CrmUsageReportController.java @@ -0,0 +1,34 @@ +package com.kakarote.crm.controller; + +import com.kakarote.core.common.R; +import com.kakarote.core.common.Result; +import com.kakarote.crm.entity.PO.CrmUsageReport; +import com.kakarote.crm.entity.VO.CrmQueryUsageReportVO; +import com.kakarote.crm.service.ICrmUsageReportService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.io.IOException; + +@RestController +@RequestMapping("/crmUsageReport") +@Api(tags = "使用报告") +public class CrmUsageReportController { + + @Autowired + private ICrmUsageReportService crmUsageReportService; + + @PostMapping("/queryReportScreenings") + @ApiOperation("查询报告筛查次数") + public Result queryReportScreenings(@RequestBody CrmQueryUsageReportVO vo) throws IOException { + return R.ok(crmUsageReportService.queryReportScreenings(vo)); + } + + @PostMapping("/findUsageReportByNsrsbhOrNsrmc") + @ApiOperation("查询报告筛查次数") + public Result findUsageReportByNsrsbhOrNsrmc(@RequestBody CrmQueryUsageReportVO vo) throws IOException { + return R.ok(crmUsageReportService.findUsageReportByNsrsbhOrNsrmc(vo)); + } +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmHttpResponseDTO.java b/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmHttpResponseDTO.java new file mode 100644 index 0000000..4f4f338 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/DTO/CrmHttpResponseDTO.java @@ -0,0 +1,12 @@ +package com.kakarote.crm.entity.DTO; + +import lombok.Data; +import org.apache.poi.ss.formula.functions.T; + +@Data +public class CrmHttpResponseDTO { + + private int code; + private String msg; + private T data; +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/PO/CrmUsageReport.java b/crm/src/main/java/com/kakarote/crm/entity/PO/CrmUsageReport.java new file mode 100644 index 0000000..eb9e61c --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/PO/CrmUsageReport.java @@ -0,0 +1,45 @@ +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 com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.Date; + +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("wk_crm_usage_report") +@ApiModel(value="CrmUsageReport", description="使用报告") +public class CrmUsageReport implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + + /** + * 产品使用状况:0。未使用;1.使用 + */ + private Integer usageStatus; + + /** + * 产品注册时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date registrationTime; + + /** + * 是否点击深度报告:0。已点击;1.未点击 + */ + private Integer clickedDeepReport; + +} diff --git a/crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryUsageReportVO.java b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryUsageReportVO.java new file mode 100644 index 0000000..a8ab718 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/entity/VO/CrmQueryUsageReportVO.java @@ -0,0 +1,22 @@ +package com.kakarote.crm.entity.VO; + +import lombok.Data; + +import java.io.Serializable; + + +@Data +public class CrmQueryUsageReportVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 纳税人识别号 + */ + private String nsrsbh; + + /** + * 纳税人名称 + */ + private String nsrmc; +} diff --git a/crm/src/main/java/com/kakarote/crm/mapper/CrmUsageReportMapper.java b/crm/src/main/java/com/kakarote/crm/mapper/CrmUsageReportMapper.java new file mode 100644 index 0000000..729d850 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/mapper/CrmUsageReportMapper.java @@ -0,0 +1,9 @@ +package com.kakarote.crm.mapper; + +import com.kakarote.core.servlet.BaseMapper; +import com.kakarote.crm.entity.PO.CrmUsageReport; +import org.mapstruct.Mapper; + +@Mapper +public interface CrmUsageReportMapper extends BaseMapper { +} diff --git a/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUsageReportMapper.xml b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUsageReportMapper.xml new file mode 100644 index 0000000..aaf1b70 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/mapper/xml/CrmUsageReportMapper.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/crm/src/main/java/com/kakarote/crm/service/ICrmUsageReportService.java b/crm/src/main/java/com/kakarote/crm/service/ICrmUsageReportService.java new file mode 100644 index 0000000..a769aae --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/service/ICrmUsageReportService.java @@ -0,0 +1,24 @@ +package com.kakarote.crm.service; + +import com.kakarote.core.servlet.BaseService; +import com.kakarote.crm.entity.PO.CrmUsageReport; +import com.kakarote.crm.entity.VO.CrmQueryUsageReportVO; + +import java.io.IOException; + +public interface ICrmUsageReportService extends BaseService { + + + /** + * 查询报告筛选次数 + * @return + */ + int queryReportScreenings(CrmQueryUsageReportVO vo) throws IOException; + + /** + * 根据纳税人识别号或者纳税人名称,查询产品使用情况,产品注册时间,是否点击深度查询报告 + * @param vo + * @return + */ + CrmUsageReport findUsageReportByNsrsbhOrNsrmc(CrmQueryUsageReportVO vo) throws IOException; +} diff --git a/crm/src/main/java/com/kakarote/crm/service/impl/CrmUsageReportServiceImpl.java b/crm/src/main/java/com/kakarote/crm/service/impl/CrmUsageReportServiceImpl.java new file mode 100644 index 0000000..6365708 --- /dev/null +++ b/crm/src/main/java/com/kakarote/crm/service/impl/CrmUsageReportServiceImpl.java @@ -0,0 +1,82 @@ +package com.kakarote.crm.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.json.JSONUtil; +import com.fasterxml.jackson.core.type.TypeReference; +import com.google.gson.Gson; +import com.kakarote.core.servlet.BaseServiceImpl; +import com.kakarote.crm.entity.DTO.CrmHttpResponseDTO; +import com.kakarote.crm.entity.DTO.CrmWebServiceResponseDTO; +import com.kakarote.crm.entity.PO.CrmQyfxmx; +import com.kakarote.crm.entity.PO.CrmUsageReport; +import com.kakarote.crm.entity.VO.CrmQueryUsageReportVO; +import com.kakarote.crm.mapper.CrmUsageReportMapper; +import com.kakarote.crm.service.ICrmUsageReportService; +import com.kakarote.crm.util.JsonUtil; +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.util.List; + + +@Service +public class CrmUsageReportServiceImpl extends BaseServiceImpl implements ICrmUsageReportService { + + @Autowired + private CrmUsageReportMapper crmUsageReportMapper; + + @Value("${app.REPORT_SCREENINGS_URL}") + private String REPORT_SCREENINGS_URL; + + @Value("${app.FIND_REPORT_URL}") + private String FIND_REPORT_URL; + + private String getUrl1() { + return REPORT_SCREENINGS_URL; + } + + private String getUrl2() { + return FIND_REPORT_URL; + } + + + + @Override + public int queryReportScreenings(CrmQueryUsageReportVO vo) throws IOException { + + String requestJson = JSONUtil.toJsonStr(vo); + String responseJson = OkHttpClientUtil.post(getUrl1(), requestJson); + + CrmHttpResponseDTO dto = JsonUtil.toObject( + responseJson, + new TypeReference>() {} + ); + + return Convert.toInt(dto.getData()); + } + + @Override + public CrmUsageReport findUsageReportByNsrsbhOrNsrmc(CrmQueryUsageReportVO vo) throws IOException { + + String requestJson = JSONUtil.toJsonStr(vo); + String responseJson = OkHttpClientUtil.post(getUrl2(), requestJson); + + System.out.println(responseJson); + + CrmHttpResponseDTO dto = JsonUtil.toObject( + responseJson, + new TypeReference>() {} + ); + + CrmUsageReport report = dto.getData(); + + if (report.getUsageStatus() != 0) { + crmUsageReportMapper.insert(report); + } + + return report; + } +}