Kaynağa Gözat

Merge branch 'dev' of humingfen/patient-co-management into dev

huangwenjie 7 yıl önce
ebeveyn
işleme
d17f59f112

+ 2 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/config/SpringSecurityConfig.java

@ -56,7 +56,8 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
                "/admin/specialDisease/**",
                "/admin/surveyTemplateResult/**",
                "/admin/surveyAdvice/**",
                "/admin/surveyTemplateAdvice/**"
                "/admin/surveyTemplateAdvice/**",
                "/admin/paylog/**"
        );
    }

+ 45 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/datastatic/PayLogController.java

@ -0,0 +1,45 @@
package com.yihu.wlyy.controller.manager.datastatic;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.entity.PayLog;
import com.yihu.wlyy.service.httplog.PayLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
/**
 * Created by humingfen on 2018/7/16.
 * 支付日志管理
 */
@Controller
@RequestMapping("admin/paylog")
public class PayLogController extends BaseController {
    @Autowired
    private PayLogService payLogService;
    @RequestMapping(value = "initial", method = RequestMethod.GET)
    public String initListPage(){
        return "static/pay_log_list";
    }
    @RequestMapping(value ="list",method = RequestMethod.POST)
    @ResponseBody
    public String searchList(
            @RequestParam(value = "params",required = false) String params,
            @RequestParam(value = "startDate",required = false) String startDate,
            @RequestParam(value = "endDate",required = false) String endDate,
            @RequestParam(value = "page",required = false) Integer page,
            @RequestParam(value = "rows",required = false) Integer pageSize){
        try{
            Page<PayLog> payLogs = payLogService.searchList(params,startDate, endDate, page, pageSize);
            return write(200,"操作成功",page,pageSize,payLogs);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
}

+ 140 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/PayLog.java

@ -0,0 +1,140 @@
package com.yihu.wlyy.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * 易联众相关支付log表
 * Created by hmf on 2018/7/16.
 */
@Entity
@Table(name = "ylz_pay_log")
public class PayLog extends IdEntity {
    // 接口类型 0家庭签约支付 1续方支付
    private String type;
    // 业务内容
    private String content;
    // 调用接口
    private String api;
    // 调用方式
    private String method;
    // 调用参数
    private String params;
    // 调用头部信息
    private String header;
    // 返回结果
    private String response;
    // 状态 0失败 1成功 2已重试
    private String status;
    // 重试次数
    private Integer retryTimes;
    // 创建时间
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyyMMdd'T'HHmmss.SSS'Z'")
    private Date createTime;
    //异常信息
    private String error;
    @Column(name = "type")
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    @Column(name = "content")
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    @Column(name = "api")
    public String getApi() {
        return api;
    }
    public void setApi(String api) {
        this.api = api;
    }
    @Column(name = "method")
    public String getMethod() {
        return method;
    }
    public void setMethod(String method) {
        this.method = method;
    }
    @Column(name = "params")
    public String getParams() {
        return params;
    }
    public void setParams(String params) {
        this.params = params;
    }
    @Column(name = "header")
    public String getHeader() {
        return header;
    }
    public void setHeader(String header) {
        this.header = header;
    }
    @Column(name = "response")
    public String getResponse() {
        return response;
    }
    public void setResponse(String response) {
        this.response = response;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "retry_times")
    public Integer getRetryTimes() {
        return retryTimes;
    }
    public void setRetryTimes(Integer retryTimes) {
        this.retryTimes = retryTimes;
    }
    @Column(name = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "error")
    public String getError() {
        return error;
    }
    public void setError(String error) {
        this.error = error;
    }
}

+ 8 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/PayLogDao.java

@ -0,0 +1,8 @@
package com.yihu.wlyy.repository;
import com.yihu.wlyy.entity.PayLog;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
public interface PayLogDao extends PagingAndSortingRepository<PayLog, Long>,JpaSpecificationExecutor<PayLog> {
}

+ 61 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/httplog/PayLogService.java

@ -0,0 +1,61 @@
package com.yihu.wlyy.service.httplog;
import com.yihu.wlyy.entity.PayLog;
import com.yihu.wlyy.repository.PayLogDao;
import com.yihu.wlyy.util.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
/**
 * Created by humingfen on 2018/7/16.
 * 日志服务
 */
@Service
public class PayLogService extends BaseJpaService<PayLog,PayLogDao> {
    @Autowired
    private PayLogDao payLogDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public Page<PayLog> searchList(String params, String startDate, String endDate, Integer page, Integer pageSize) throws Exception{
        List<PayLog> payLogList = new ArrayList<>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        if(page == null){
            page = 1;
        }
        if(pageSize == null){
            pageSize = 15;
        }
        PageRequest pageRequest = new PageRequest(page - 1, pageSize);
        String sql = "select * from ylz_pay_log p where 1=1 ";
        String countSql = "select count(1) from ylz_pay_log p where 1=1 ";
        StringBuilder filters = new StringBuilder();
        if(!StringUtils.isEmpty(params)){
            filters.append("and params like '%"+params+"%' ");
        }
        if(!StringUtils.isEmpty(startDate)){
            filters.append("and create_time > '"+startDate+"' ");
        }
        if(!StringUtils.isEmpty(endDate)){
            filters.append("and create_time < '"+endDate+"' ");
        }
        payLogList = jdbcTemplate.query(sql+filters.toString()+" order by p.create_time "+" limit "+(page-1)*pageSize+","+pageSize, new BeanPropertyRowMapper<>(PayLog.class));
        if(payLogList.size()<=0){
            return new PageImpl<PayLog>(new ArrayList<>(), pageRequest, 0);
        }
        Long count = jdbcTemplate.queryForObject(countSql+filters.toString(),Long.class);
        return new PageImpl<PayLog>(payLogList,pageRequest,count);
    }
}

+ 3 - 3
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/main.jsp

@ -163,9 +163,9 @@
							<sec:authorize url="/admin/static/pay/initial">
								<li><a href="javascript:locationMenu('staticPay');">支付统计报表</a></li>
							</sec:authorize>
							<%--<sec:authorize url="/admin/static/healthedu/initial">--%>
								<%--<li><a href="javascript:locationMenu('healthEdu');">健教推送报表</a></li>--%>
							<%--</sec:authorize>--%>
							<sec:authorize url="/admin/paylog/initial">
								<li><a href="javascript:locationMenu('paylog');">支付日志管理</a></li>
							</sec:authorize>
							<sec:authorize url="/admin/static/center">
						</ul>
					</div>

+ 45 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/static/pay_log_list.jsp

@ -0,0 +1,45 @@
<%--
  Created by IntelliJ IDEA.
  User: hmf
  Date: 2018/7/16
  Time: 10:19
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../head/page_head.jsp" %>
    <title>支付日志管理</title>
</head>
<body>
<div id="div_wrapper">
    <!-- 检索条件 -->
    <div class="m-retrieve-area f-h50 f-dn f-pr m-form-inline" data-role-form style='display: block;'>
        <div class="m-form-group f-mt10">
            <div class="m-form-control f-ml15">
                <input type="text" id="inp_params" placeholder="请输入参数" class="f-ml10" data-attr-scan="params"/>
            </div>
            <div class="m-form-control f-ml15">
                <input type="text" id="inp_startDate" placeholder="请输入查询开始日期" class="f-ml10" data-attr-scan="startDate"/>
            </div>
            <div class="m-form-control f-ml15">
                <input type="text" id="inp_endDate" placeholder="请输入查询结束日期" class="f-ml10" data-attr-scan="endDate"/>
            </div>
            <sec:authorize url="/admin/paylog/list">
                <div id="btn_search" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
                    <span>查询</span>
                </div>
            </sec:authorize>
        </div>
    </div>
    <!-- 列表 -->
    <div id="div_paylog_list">
    </div>
</div>
</body>
<%@ include file="../head/page_foot.jsp" %>
<%@ include file="pay_log_list_js.jsp" %>
</html>

+ 135 - 0
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/static/pay_log_list_js.jsp

@ -0,0 +1,135 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<script>
    (function ($, win) {
        $(function () {
            /* ************************** 变量定义 ******************************** */
            // 通用工具类库
            var Util = $.Util;
            var retrieve = null;
            var master = null;
            var isFirstPage = false;
            /* *************************** 函数定义 ******************************* */
            function pageInit() {
                retrieve.init();
                master.init();
            }
            function reloadGrid(params) {
                if (isFirstPage) {
                    this.grid.options.newPage = 1;
                }
                this.grid.setOptions({parms: params});
                this.grid.loadData(true);
            }
            /* *************************** 模块初始化 ***************************** */
            retrieve = {
                $element: $('.m-retrieve-area'),
                $searchBtn: $('#btn_search'),
                $params: $("#inp_params"),//参数
                $startDate: $("#inp_startDate"),
                $endDate: $("#inp_endDate"),
                init: function () {
                    this.$element.show();
                    this.$element.attrScan();
                    window.form = this.$element;
                    this.$params.ligerTextBox({width: 300});
                    this.$startDate.ligerDateEditor({
                        format: "yyyy-MM-dd",
                        showTime: false,
                        labelWidth: 100,
                        labelAlign: 'center',
                        cancelable: true
                    });
                    this.$endDate.ligerDateEditor({
                        format: "yyyy-MM-dd",
                        showTime: false,
                        labelWidth: 100,
                        labelAlign: 'center',
                        cancelable: true
                    });
                    this.bindEvents();
                },
                bindEvents: function () {
                    var self = this;
                    self.$searchBtn.click(function () {
                        master.grid.options.newPage = 1;
                        master.reloadGrid();
                    });
                }
            };
            master = {
                payLogInfoDialog: null,
                grid: null,
                init: function () {
                    this.grid = $("#div_paylog_list").ligerGrid($.LigerGridEx.config({
                        url: ctx + '/admin/paylog/list',
                        parms: {},
                        ajaxHeader: ajaxHeaderName,
                        ajaxHeaderValue: ajaxHeaderValue,
                        columns: [
                            {display: 'id', name: 'id', hide: true},
                            {
                                display: '接口类型', name: 'type', width: '10%', align: "left",
                                render: function (row) {
                                    if (row.type == 0) {
                                        return "家庭签约支付"
                                    }
                                    if (row.type == 1) {
                                        return "续方支付"
                                    }
                                }
                            },
                            {display: '业务内容', name: 'content', width: '10%', align: "left"},
                            {display: '调用接口', name: 'api', width: '10%', align: "left"},
                            {display: '调用方式', name: 'method', width: '5%', align: "left"},
                            {display: '调用参数', name: 'params', width: '10%', align: "left"},
                            {display: '调用头部信息', name: 'header', width: '10%', align: "left"},
                            {display: '返回结果', name: 'response', width: '10%', align: "left"},
                            {display: '错误信息', name: 'error', width: '10%', align: "left"},
                            {display: '重试次数', name: 'retryTimes', width: '5%', align: "left"},
                            {
                                display: '状态', name: 'status', width: '5%', align: "left",
                                render: function (row) {
                                    if (row.status == 0) {
                                        return "失败"
                                    }
                                    if (row.status == 1) {
                                        return "成功"
                                    }
                                    if (row.status == 2) {
                                        return "已重试"
                                    }
                                }
                            },
                            {display: '创建时间', name: 'createTime', width: '10%', align: "left"},
                        ],
                    }));
                    // 自适应宽度
                    this.grid.adjustToWidth();
                },
                reloadGrid: function (msg) {
                    retrieve.$element.attrScan();
                    var values = retrieve.$element.Fields.getValues();
                    reloadGrid.call(this, values);
                },
            };
            /* ************************* Dialog页面回调接口 ************************** */
            win.reloadMasterGrid = function (msg) {
                if (isNoEmpty(msg)) {
                    $.Notice.success(msg);
                }
                master.reloadGrid(msg);
            };
            win.closePayLogInfoDialog = function () {
                master.payLogInfoDialog.close();
            };
            /* *************************** 页面初始化 **************************** */
            pageInit();
        });
    })(jQuery, window);
</script>

+ 1 - 0
patient-co-manage/wlyy-manage/src/main/webapp/static/js/menu.js

@ -34,6 +34,7 @@ var menu = {
    "staticDevice": "/admin/static/device/initial",//设备统计报表
    "staticPay": "/admin/static/pay/initial",//支付统计报表
    "healthEdu": "/admin/static/healthedu/initial",//健教推送报表
    "paylog": "/admin/paylog/initial",//支付日志管理
    //安全管理
    "user": "/admin/user/initial",//人员管理界面