浏览代码

first commit

15810770710@163.com 4 年之前
父节点
当前提交
91e56ca374
共有 22 个文件被更改,包括 816 次插入0 次删除
  1. 82 0
      deploy/cloud-yysj-cost-query.yaml
  2. 17 0
      deploy/config-map-dev.yaml
  3. 16 0
      deploy/config-map-prod.yaml
  4. 138 0
      pom.xml
  5. 20 0
      src/main/java/info/aspirecn/cloud/yysj/Application.java
  6. 21 0
      src/main/java/info/aspirecn/cloud/yysj/config/JsonConfig.java
  7. 48 0
      src/main/java/info/aspirecn/cloud/yysj/config/SwaggerConfig.java
  8. 67 0
      src/main/java/info/aspirecn/cloud/yysj/controller/ExpenseManagementController.java
  9. 26 0
      src/main/java/info/aspirecn/cloud/yysj/entity/ChargeInfo.java
  10. 20 0
      src/main/java/info/aspirecn/cloud/yysj/entity/ChargeRecordRes.java
  11. 42 0
      src/main/java/info/aspirecn/cloud/yysj/entity/QueryParam.java
  12. 35 0
      src/main/java/info/aspirecn/cloud/yysj/entity/RechargeInfo.java
  13. 18 0
      src/main/java/info/aspirecn/cloud/yysj/entity/ResponseInfo.java
  14. 13 0
      src/main/java/info/aspirecn/cloud/yysj/mapper/ExpenseManagementMapper.java
  15. 14 0
      src/main/java/info/aspirecn/cloud/yysj/service/ExpenseManagementSercice.java
  16. 33 0
      src/main/java/info/aspirecn/cloud/yysj/service/OrderActionInterface.java
  17. 99 0
      src/main/java/info/aspirecn/cloud/yysj/service/impl/ExpenseManagementSerciceImpl.java
  18. 11 0
      src/main/java/info/aspirecn/cloud/yysj/utils/Constant.java
  19. 27 0
      src/main/java/info/aspirecn/cloud/yysj/utils/DateUtil.java
  20. 16 0
      src/main/resources/application.yaml
  21. 40 0
      src/main/resources/bootstrap.yml
  22. 13 0
      src/main/resources/mapping/ExpenseManagementMapper.xml

+ 82 - 0
deploy/cloud-yysj-cost-query.yaml

@@ -0,0 +1,82 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: cloud-yysj-cost-query
+  labels:
+    app: cloud-yysj-cost-query
+    svcEndpoints: actuator
+spec:
+  type: NodePort
+  ports:
+    - name: server
+      port: 8080
+      targetPort: 8080
+    - name: management
+      port: 8081
+      targetPort: 8081
+  selector:
+    app: cloud-yysj-cost-query
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: cloud-yysj-cost-query
+  labels:
+    app: cloud-yysj-cost-query
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: cloud-yysj-cost-query
+  template:
+    metadata:
+      name: cloud-yysj-cost-query
+      labels:
+        app: cloud-yysj-cost-query
+    spec:
+      restartPolicy: Always
+      containers:
+      - name: service-provider
+        image: hub.i139.cn/cloud-yysj/cloud-yysj-cost-query:1.0.0
+        imagePullPolicy: IfNotPresent
+        ports:
+        - name: server
+          containerPort: 8080
+        - name: management
+          containerPort: 8081
+        env:
+        - name: KUBERNETES_NAMESPACE
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.namespace
+        - name: POD_NAME
+          valueFrom:
+            fieldRef:
+              fieldPath: metadata.name
+        - name: JAVA_OPTS
+          value: ""
+        - name: APP_OPTS
+          value: ""
+        resources:
+          limits:
+            memory: 1000Mi
+            cpu: 2000m
+          requests:
+            memory: 256Mi
+            cpu: 1000m
+        readinessProbe:
+          initialDelaySeconds: 20
+          periodSeconds: 5
+          timeoutSeconds: 10
+          failureThreshold: 5
+          httpGet:
+            path: /actuator/health
+            port: 8081
+        livenessProbe:
+          initialDelaySeconds: 60
+          periodSeconds: 5
+          timeoutSeconds: 5
+          failureThreshold: 3
+          httpGet:
+            path: /actuator/health
+            port: 8081

+ 17 - 0
deploy/config-map-dev.yaml

@@ -0,0 +1,17 @@
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: cloud-yysj-cost-query
+data:
+  application.yaml: |-
+    spring:
+      datasource:
+        username: root
+        password: 123456
+        url: jdbc:mysql://10.8.17.119:32196/cloud-yysj?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+        driver-class-name: com.mysql.cj.jdbc.Driver
+    mybatis:
+       mapper-locations: classpath:mapping/*Mapper.xml
+    logging:
+      level.info.aspirecn.cloud.yysj.service: info
+

+ 16 - 0
deploy/config-map-prod.yaml

@@ -0,0 +1,16 @@
+kind: ConfigMap
+apiVersion: v1
+metadata:
+  name: cloud-yysj-cost-query
+data:
+  application.yaml: |-
+    spring:
+      datasource:
+        username: cloud_yysj
+        password: BV0jy0PRibVT3jnKjd
+        url: jdbc:mysql://192.168.16.12:3306/cloud-yysj?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+        driver-class-name: com.mysql.cj.jdbc.Driver
+    mybatis:
+       mapper-locations: classpath:mapping/*Mapper.xml
+    logging:
+      level.info.aspirecn.cloud.yysj.service: info

+ 138 - 0
pom.xml

@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.2.2.RELEASE</version>
+    </parent>
+
+    <groupId>info.aspirecn.cloud.yysj</groupId>
+    <artifactId>cloud-yysj-cost-query</artifactId>
+    <version>1.0.0</version>
+    <name>cloud-yysj-cost-query</name>
+    <description>cloud yysj platform analysis information</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-kubernetes-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <!--actuator-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+            <version>1.9.6</version>
+        </dependency>
+        <!-- 配置jdbc依赖 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-jdbc</artifactId>
+        </dependency>
+        <!-- mysql依赖 -->
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <!-- mybatis依赖 -->
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>1.3.2</version>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <!--设置应用 Main 参数启动依赖查找的地址指向外部 lib 文件夹-->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-jar-plugin</artifactId>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <addClasspath>true</addClasspath>
+                            <classpathPrefix>lib/</classpathPrefix>
+                        </manifest>
+                    </archive>
+                </configuration>
+            </plugin>
+            <!--设置 SpringBoot 打包插件不包含任何 Jar 依赖包-->
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <includes>
+                        <include>
+                            <groupId>nothing</groupId>
+                            <artifactId>nothing</artifactId>
+                        </include>
+                    </includes>
+                </configuration>
+            </plugin>
+            <!--设置将 lib 拷贝到应用 Jar 外面-->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-dependency-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>copy-dependencies</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>copy-dependencies</goal>
+                        </goals>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 20 - 0
src/main/java/info/aspirecn/cloud/yysj/Application.java

@@ -0,0 +1,20 @@
+package info.aspirecn.cloud.yysj;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableFeignClients
+@EnableSwagger2
+@SpringBootApplication
+@MapperScan("info.aspirecn.cloud.yysj.mapper")
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

+ 21 - 0
src/main/java/info/aspirecn/cloud/yysj/config/JsonConfig.java

@@ -0,0 +1,21 @@
+package info.aspirecn.cloud.yysj.config;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Bean;
+
+/**
+ * Email:lixinxu@aspirecn.com
+ * Descrption:
+ */
+public class JsonConfig {
+
+    @Bean
+    public ObjectMapper objectMapper() {
+        ObjectMapper objectMapper = new ObjectMapper();
+        // 不转换值null的字段
+        objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+        return objectMapper;
+    }
+
+}

+ 48 - 0
src/main/java/info/aspirecn/cloud/yysj/config/SwaggerConfig.java

@@ -0,0 +1,48 @@
+package info.aspirecn.cloud.yysj.config;
+
+import com.google.common.base.Predicates;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * Swagger 配置
+ *
+ * @author dingliqiang
+ */
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2)
+                // 项目组名
+                .apiInfo(apiInfo())
+                // 选择那些路径和api会生成document
+                .select()
+                // 对所有api进行监控
+                .apis(RequestHandlerSelectors.any())
+                // 对所有路径进行监控
+                .paths(PathSelectors.any())
+                //错误路径不监控
+                .paths(Predicates.not(PathSelectors.regex("/error.*")))
+                //actuator路径跳过
+                .paths(Predicates.not(PathSelectors.regex("/actuator.*")))
+                .build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder()
+                // 文档标题
+                .title("swagger-example-service")
+                // 文档描述
+                .description("This is a swagger project.")
+                // 文档版本
+                .version("1.0.0")
+                .build();
+    }
+}

+ 67 - 0
src/main/java/info/aspirecn/cloud/yysj/controller/ExpenseManagementController.java

@@ -0,0 +1,67 @@
+package info.aspirecn.cloud.yysj.controller;
+
+import info.aspirecn.cloud.yysj.entity.*;
+import info.aspirecn.cloud.yysj.service.ExpenseManagementSercice;
+import info.aspirecn.cloud.yysj.service.OrderActionInterface;
+import info.aspirecn.cloud.yysj.utils.Constant;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 费用管理,充值记录、账单明细,接口
+ *
+ * @author lixinxu
+ */
+@Api(tags = "费用管理接口")
+@ApiResponses({
+        @ApiResponse(code = 200, message = "成功处理请求"),
+        @ApiResponse(code = 400, message = "没有找到该用户信息"),
+        @ApiResponse(code = 401, message = "没有权限访问该服务"),
+        @ApiResponse(code = 403, message = "权限不足无法访问该服务"),
+        @ApiResponse(code = 404, message = "未发现该微服务"),
+        @ApiResponse(code = 500, message = "服务器内部错误")
+})
+@RestController
+public class ExpenseManagementController {
+
+    @Autowired
+    private ExpenseManagementSercice expenseManagementSercice;
+
+    @ApiOperation(value = "充值记录", notes = "充值记录列表")
+    @PostMapping("/queryrecharge")
+    private ResponseInfo queryRechargeInfoList(HttpServletResponse response,
+                                               @ApiParam(value="用户ID")@RequestHeader()  String userId,
+                                               @RequestBody QueryParam queryParam){
+
+        queryParam.setUserId(userId);
+        queryParam.setBeginTime(queryParam.getBeginTime());
+        queryParam.setEndTime(queryParam.getEndTime());
+        queryParam.setPageSize(queryParam.getPageSize());
+        queryParam.setPageNum(queryParam.getPageNum());
+
+        //map里有数据列表和查询总条数
+        Map<String, Object> reMap = expenseManagementSercice.queryRechargeInfoList(queryParam);
+        if (reMap == null){
+            return new ResponseInfo().setMessage("数据深度不能大于1000条");
+        }
+
+        //取出数据
+        List<RechargeInfo> carList = (List<RechargeInfo>)reMap.get(Constant.DATA_LIST);
+        Integer total = (Integer)reMap.get(Constant.TOTAL);
+
+        //页面信息, 放到响应头
+        response.addHeader("pageSize", Integer.toString(queryParam.getPageSize()));
+        response.addHeader("pageNum", Integer.toString(queryParam.getPageNum()));
+        response.addHeader("pageTotal", Integer.toString(total%queryParam.getPageSize() > 0 ? total/queryParam.getPageSize()+1 : total/queryParam.getPageSize()));
+        response.addHeader("total", Integer.toString(total));
+
+        return new ResponseInfo().setData(carList);
+    }
+
+}

+ 26 - 0
src/main/java/info/aspirecn/cloud/yysj/entity/ChargeInfo.java

@@ -0,0 +1,26 @@
+package info.aspirecn.cloud.yysj.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Email:lixinxu@aspirecn.com
+ * Descrption:数据交互充值记录实体
+ */
+@Data
+@ApiModel(description = "充值记录信息")
+public class ChargeInfo{
+    @ApiModelProperty("用户nid")
+    private Integer userNid;
+    @ApiModelProperty("企业名称")
+    private String enterpriseName;
+    @ApiModelProperty("客户id")
+    private String customerId;
+    @ApiModelProperty("充值金额")
+    private Long money;
+    @ApiModelProperty("充值日期")
+    private String date;
+    @ApiModelProperty("充值类型")
+    private String chargeType;
+}

+ 20 - 0
src/main/java/info/aspirecn/cloud/yysj/entity/ChargeRecordRes.java

@@ -0,0 +1,20 @@
+package info.aspirecn.cloud.yysj.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 2018/11/15 15:59 by zhangxinhong
+ * description:
+ */
+@Data
+@ApiModel(description = "充值记录列表")
+public class ChargeRecordRes {
+    @ApiModelProperty("总数")
+    private Integer total;
+    @ApiModelProperty("列表")
+    private List<ChargeInfo> list;
+}

+ 42 - 0
src/main/java/info/aspirecn/cloud/yysj/entity/QueryParam.java

@@ -0,0 +1,42 @@
+package info.aspirecn.cloud.yysj.entity;
+
+import info.aspirecn.cloud.yysj.utils.DateUtil;
+import lombok.Data;
+
+/**
+ * Email:lixinxu@aspirecn.com
+ * Descrption:
+ */
+@Data
+public class QueryParam {
+    private String userId;
+    private String beginTime;
+    private String endTime;
+    private int pageSize;
+    private int pageNum;
+
+
+    public void setBeginTime(String beginTime) {
+        //开始时间缺省为10天前
+        this.beginTime = beginTime == null || "".equals(beginTime) ? DateUtil.getBeforTime(10) : beginTime;
+    }
+
+
+    public void setEndTime(String endTime) {
+        //结束时间缺省为当前时间
+        this.endTime = endTime == null || "".equals(endTime) ? DateUtil.getStrTime() : endTime;
+        //结束时间为yyyy-MM-dd时, 加上HH:mm:ss(23:59:59), 覆盖到结束日期当天
+        if(this.endTime.length() == 10){
+            this.endTime = this.endTime+" 23:59:59";
+        }
+    }
+
+    public void setPageSize(Integer pageSize) {
+        //每页条数, 缺省为 10
+        this.pageSize = pageSize != null && pageSize != 0 ? pageSize : 10;
+    }
+
+    public void setPageNum(Integer pageNum) {
+        this.pageNum = pageNum != null && pageNum != 0  ? pageNum : 1;
+    }
+}

+ 35 - 0
src/main/java/info/aspirecn/cloud/yysj/entity/RechargeInfo.java

@@ -0,0 +1,35 @@
+package info.aspirecn.cloud.yysj.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+
+/**
+ * 充值记录
+ *
+ * @author lixinxu
+ */
+@Data
+@Accessors(chain = true)
+@NoArgsConstructor
+@AllArgsConstructor
+public class RechargeInfo {
+
+    @ApiModelProperty(value = "编号")
+    private	String	id;
+
+    @ApiModelProperty(value = "时间")
+    private	String	time;
+
+    @ApiModelProperty(value = "价格")
+    private	String	price;
+
+    @ApiModelProperty(value = "充值类型, 0:未转账; 1:已转账; 2:调账")
+    private	String	type;
+
+    @ApiModelProperty(value = "充值状态, 0:失败; 1:成功")
+    private	String	status;
+
+}

+ 18 - 0
src/main/java/info/aspirecn/cloud/yysj/entity/ResponseInfo.java

@@ -0,0 +1,18 @@
+package info.aspirecn.cloud.yysj.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+/**
+ * @author lixinxu
+ */
+@Data
+@Accessors(chain = true)
+public class ResponseInfo {
+
+    /** 错误信息*/
+    private String message = "";
+    /** 返回结果*/
+    private Object data = "";
+
+}

+ 13 - 0
src/main/java/info/aspirecn/cloud/yysj/mapper/ExpenseManagementMapper.java

@@ -0,0 +1,13 @@
+package info.aspirecn.cloud.yysj.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * Email:lixinxu@aspirecn.com
+ * Descrption:
+ */
+@Mapper
+public interface ExpenseManagementMapper {
+    String querySjjhUserIdByYysjUseId(@Param("userId")String userId);
+}

+ 14 - 0
src/main/java/info/aspirecn/cloud/yysj/service/ExpenseManagementSercice.java

@@ -0,0 +1,14 @@
+package info.aspirecn.cloud.yysj.service;
+
+import info.aspirecn.cloud.yysj.entity.QueryParam;
+import java.util.Map;
+
+/**
+ * Email:lixinxu@aspirecn.com
+ * Descrption:
+ */
+public interface ExpenseManagementSercice {
+
+    /**查询充值记录*/
+    Map<String, Object> queryRechargeInfoList(QueryParam queryParam);
+}

+ 33 - 0
src/main/java/info/aspirecn/cloud/yysj/service/OrderActionInterface.java

@@ -0,0 +1,33 @@
+package info.aspirecn.cloud.yysj.service;
+
+import info.aspirecn.cloud.yysj.entity.ChargeRecordRes;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * date: 2018/10/23 14:49
+ *
+ * @author zhangxinhong
+ * Description:
+ */
+@FeignClient(value = "http://iov-sjjh-servicenode-order.iov-sjjh:8080",url = "http://iov-sjjh-servicenode-order.iov-sjjh:8080")
+//@FeignClient(value = "http://10.8.18.171:20181", url = "http://10.8.18.171:20181")
+public interface OrderActionInterface {
+    /**
+     * 获取充值记录列表
+     * @param userNids  逗号分隔
+     * @param startTime
+     * @param endTime
+     * @return
+     */
+    @RequestMapping(value = "/getChargeList.do", method = RequestMethod.GET)
+    public ChargeRecordRes getChargeList(@RequestParam("userNids") String userNids,
+                                         @RequestParam("startTime") String startTime,
+                                         @RequestParam("endTime") String endTime,
+                                         @RequestParam("pageNum") int pageNum,
+                                         @RequestParam("pageSize") int pageSize);
+}

+ 99 - 0
src/main/java/info/aspirecn/cloud/yysj/service/impl/ExpenseManagementSerciceImpl.java

@@ -0,0 +1,99 @@
+package info.aspirecn.cloud.yysj.service.impl;
+
+import info.aspirecn.cloud.yysj.entity.*;
+import info.aspirecn.cloud.yysj.mapper.ExpenseManagementMapper;
+import info.aspirecn.cloud.yysj.service.ExpenseManagementSercice;
+import info.aspirecn.cloud.yysj.service.OrderActionInterface;
+import info.aspirecn.cloud.yysj.utils.Constant;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Email:lixinxu@aspirecn.com
+ * Descrption:
+ */
+@Slf4j
+@Service
+public class ExpenseManagementSerciceImpl implements ExpenseManagementSercice {
+
+    @Autowired
+    private OrderActionInterface orderActionInterface;
+
+    @Autowired
+    private ExpenseManagementMapper expenseManagementMapper;
+
+    /**
+     * 查询充值记录列表
+     *
+     * @param queryParam
+     */
+    @Override
+    public Map<String, Object> queryRechargeInfoList(QueryParam queryParam) {
+
+        if( (queryParam.getPageNum() * queryParam.getPageSize()) > 1000){
+            return null;
+        }
+
+        log.debug("充值记录查询参数 {}",  queryParam);
+        
+        Map<String, Object> reMap = new HashMap<>();
+        List<RechargeInfo> rechargeInfoList = new ArrayList<RechargeInfo>();
+
+        String sjjhUserId = expenseManagementMapper.querySjjhUserIdByYysjUseId(queryParam.getUserId());
+        
+        log.debug("云验数据Id {} 数据交互Id {}", queryParam.getUserId(), sjjhUserId);
+        
+        if(sjjhUserId == null || "".equals(sjjhUserId)){
+            reMap.put(Constant.DATA_LIST, rechargeInfoList);
+            reMap.put(Constant.TOTAL, 0);
+            return reMap;
+        }
+        
+        ChargeRecordRes chargeRecordRes = orderActionInterface.getChargeList(sjjhUserId, queryParam.getBeginTime(),
+                                            queryParam.getEndTime(), queryParam.getPageNum(),
+                                            queryParam.getPageSize());
+        List<ChargeInfo> chargeInfoList = chargeRecordRes.getList();
+
+        for (ChargeInfo chargeInfo : chargeInfoList){
+            RechargeInfo rechargeInfo = new RechargeInfo();
+            rechargeInfo.setId(queryParam.getUserId());
+            rechargeInfo.setTime(chargeInfo.getDate());
+            
+            String money = chargeInfo.getMoney().toString();
+            if(money.length() > 3){
+                money = money.substring(0, money.length()-3) + "." + money.substring(money.length()-3, money.length());
+            } else {
+                if(money.length() == 3){
+                    money = "0."+money;
+                } else if(money.length() == 2){
+                    money = "0.0"+money;
+                } else if(money.length() == 1) {
+                    money = "0.00"+money;
+                } else {
+                    money = "0";
+                }
+            }
+            rechargeInfo.setPrice(money);
+            
+            rechargeInfo.setType(chargeInfo.getChargeType());
+            
+            String status = "未转账".equals(chargeInfo.getChargeType()) ? "失败" : "成功";
+            rechargeInfo.setStatus(status);
+
+            rechargeInfoList.add(rechargeInfo);
+            
+            log.debug("充值记录 {}",  rechargeInfo);
+        }
+
+        reMap.put(Constant.DATA_LIST, rechargeInfoList);
+        reMap.put(Constant.TOTAL, chargeRecordRes.getTotal());
+
+        return reMap;
+    }
+}

+ 11 - 0
src/main/java/info/aspirecn/cloud/yysj/utils/Constant.java

@@ -0,0 +1,11 @@
+package info.aspirecn.cloud.yysj.utils;
+
+/**
+ * Email:lixinxu@aspirecn.com
+ * Descrption:
+ */
+public class Constant {
+    public static final String DATA_LIST = "dataList";
+    public static final String TOTAL = "total";
+
+}

+ 27 - 0
src/main/java/info/aspirecn/cloud/yysj/utils/DateUtil.java

@@ -0,0 +1,27 @@
+package info.aspirecn.cloud.yysj.utils;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+
+//日期工具类
+public class  DateUtil {
+	private DateUtil(){}
+	public static String getStrTime() {
+		return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+	}
+
+	/**指定天数前时间*/
+	public static String getBeforTime(int d){
+		Date date = new Date();
+		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		Calendar calendar = new GregorianCalendar();
+		calendar.setTime(date);
+		calendar.add(calendar.DATE, -d);
+		date = calendar.getTime();
+		// 前十天的时间字符串
+		String dateBeforString = formatter.format(date);
+		return dateBeforString;
+	}
+}

+ 16 - 0
src/main/resources/application.yaml

@@ -0,0 +1,16 @@
+##mysql configuration
+#spring:
+#  datasource:
+#    username: root
+#    password: 123456
+#    url: jdbc:mysql://10.8.17.119:32196/cloud-yysj?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
+#    driver-class-name: com.mysql.cj.jdbc.Driver
+#
+#  application:
+#    name: cloud-yysj-cost-query
+#
+#mybatis:
+#   mapper-locations: classpath:mapping/*Mapper.xml
+#
+#logging:
+#  level.info.aspirecn.cloud.yysj.service: info

+ 40 - 0
src/main/resources/bootstrap.yml

@@ -0,0 +1,40 @@
+#ConfigMap 配置参数
+server:
+  port: 8080
+spring:
+  application:
+    name: cloud-yysj-cost-query
+  cloud:
+    kubernetes:
+      reload:
+        enabled: true
+        mode: polling
+        strategy: refresh
+        monitoring-secrets: true
+        period: 10000
+      config:
+        enabled: true
+        enableApi: true
+        sources:
+          - namespace: cloud-yysj
+            name: ${spring.application.name}
+
+#监控配置参数
+management:
+  server:
+    port: 8081
+  endpoint:
+    restart:
+      enabled: true
+    health:
+      show-details: always
+  endpoints:
+    enabled-by-default: true
+    web:
+      exposure:
+        include: "*"
+        
+info:
+  name: 充值记录查询
+  version: 1.0.0
+  

+ 13 - 0
src/main/resources/mapping/ExpenseManagementMapper.xml

@@ -0,0 +1,13 @@
+<?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="info.aspirecn.cloud.yysj.mapper.ExpenseManagementMapper">
+
+	<select id="querySjjhUserIdByYysjUseId" resultType="java.lang.String">
+		 SELECT
+          sjjhUserId
+         FROM
+          yysj_user
+         WHERE
+          userId=#{userId}
+	</select>
+</mapper>