fanli/src/main/java/com/yeshi/fanli/dao/mybatis/monitor/ClientAPIMonitorMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/entity/monitor/ClientAPIMonitor.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/mapping/monitor/ClientAPIMonitorMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/service/impl/monitor/MonitorServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/service/inter/monitor/MonitorService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
fanli/src/main/java/com/yeshi/fanli/util/factory/MonitorFactory.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/monitor/ClientAPIMonitorMapper.java
New file @@ -0,0 +1,18 @@ package com.yeshi.fanli.dao.mybatis.monitor; import com.yeshi.fanli.entity.monitor.ClientAPIMonitor; public interface ClientAPIMonitorMapper { int deleteByPrimaryKey(Long id); int insert(ClientAPIMonitor record); int insertSelective(ClientAPIMonitor record); ClientAPIMonitor selectByPrimaryKey(Long id); int updateByPrimaryKeySelective(ClientAPIMonitor record); int updateByPrimaryKey(ClientAPIMonitor record); } fanli/src/main/java/com/yeshi/fanli/entity/monitor/ClientAPIMonitor.java
New file @@ -0,0 +1,90 @@ package com.yeshi.fanli.entity.monitor; import java.util.Date; import org.yeshi.utils.mybatis.Column; import org.yeshi.utils.mybatis.Table; @Table("yeshi_ec_monitor_client_api") public class ClientAPIMonitor { @Column(name = "mca_id") private Long id; @Column(name = "mca_url") private String url; @Column(name = "mca_ip") private String ip; @Column(name = "mca_request_data") private String requestData; @Column(name = "mca_code") private Integer code; @Column(name = "mca_time") private Integer time; @Column(name = "mca_createtime") private Date createTime; @Column(name = "mca_beizhu") private String beiZhu; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getIp() { return ip; } public void setIp(String ip) { this.ip = ip; } public String getRequestData() { return requestData; } public void setRequestData(String requestData) { this.requestData = requestData; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public Integer getTime() { return time; } public void setTime(Integer time) { this.time = time; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public String getBeiZhu() { return beiZhu; } public void setBeiZhu(String beiZhu) { this.beiZhu = beiZhu; } } fanli/src/main/java/com/yeshi/fanli/mapping/monitor/ClientAPIMonitorMapper.xml
New file @@ -0,0 +1,83 @@ <?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.yeshi.fanli.dao.mybatis.monitor.ClientAPIMonitorMapper"> <resultMap id="BaseResultMap" type="com.yeshi.fanli.entity.monitor.ClientAPIMonitor"> <id column="mca_id" property="id" jdbcType="BIGINT" /> <result column="mca_url" property="url" jdbcType="VARCHAR" /> <result column="mca_ip" property="ip" jdbcType="VARCHAR" /> <result column="mca_request_data" property="requestData" jdbcType="VARCHAR" /> <result column="mca_code" property="code" jdbcType="INTEGER" /> <result column="mca_time" property="time" jdbcType="INTEGER" /> <result column="mca_createtime" property="createTime" jdbcType="TIMESTAMP" /> <result column="mca_beizhu" property="beiZhu" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List">mca_id,mca_url,mca_ip,mca_request_data,mca_code,mca_time,mca_createtime,mca_beizhu </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long"> select <include refid="Base_Column_List" /> from yeshi_ec_monitor_client_api where mca_id = #{id,jdbcType=BIGINT} </select> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from yeshi_ec_monitor_client_api where mca_id = #{id,jdbcType=BIGINT} </delete> <insert id="insert" parameterType="com.yeshi.fanli.entity.monitor.ClientAPIMonitor" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_monitor_client_api (mca_id,mca_url,mca_ip,mca_request_data,mca_code,mca_time,mca_createtime,mca_beizhu) values (#{id,jdbcType=BIGINT},#{url,jdbcType=VARCHAR},#{ip,jdbcType=VARCHAR},#{requestData,jdbcType=VARCHAR},#{code,jdbcType=INTEGER},#{time,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP},#{beiZhu,jdbcType=VARCHAR}) </insert> <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.monitor.ClientAPIMonitor" useGeneratedKeys="true" keyProperty="id"> insert into yeshi_ec_monitor_client_api <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">mca_id,</if> <if test="url != null">mca_url,</if> <if test="ip != null">mca_ip,</if> <if test="requestData != null">mca_request_data,</if> <if test="code != null">mca_code,</if> <if test="time != null">mca_time,</if> <if test="createTime != null">mca_createtime,</if> <if test="beiZhu != null">mca_beizhu,</if> </trim> values <trim prefix="(" suffix=")" suffixOverrides=","> <if test="id != null">#{id,jdbcType=BIGINT},</if> <if test="url != null">#{url,jdbcType=VARCHAR},</if> <if test="ip != null">#{ip,jdbcType=VARCHAR},</if> <if test="requestData != null">#{requestData,jdbcType=VARCHAR},</if> <if test="code != null">#{code,jdbcType=INTEGER},</if> <if test="time != null">#{time,jdbcType=INTEGER},</if> <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if> <if test="beiZhu != null">#{beiZhu,jdbcType=VARCHAR},</if> </trim> </insert> <update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.monitor.ClientAPIMonitor">update yeshi_ec_monitor_client_api set mca_url = #{url,jdbcType=VARCHAR},mca_ip = #{ip,jdbcType=VARCHAR},mca_request_data = #{requestData,jdbcType=VARCHAR},mca_code = #{code,jdbcType=INTEGER},mca_time = #{time,jdbcType=INTEGER},mca_createtime = #{createTime,jdbcType=TIMESTAMP},mca_beizhu = #{beiZhu,jdbcType=VARCHAR} where mca_id = #{id,jdbcType=BIGINT} </update> <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.monitor.ClientAPIMonitor"> update yeshi_ec_monitor_client_api <set> <if test="url != null">mca_url=#{url,jdbcType=VARCHAR},</if> <if test="ip != null">mca_ip=#{ip,jdbcType=VARCHAR},</if> <if test="requestData != null">mca_request_data=#{requestData,jdbcType=VARCHAR},</if> <if test="code != null">mca_code=#{code,jdbcType=INTEGER},</if> <if test="time != null">mca_time=#{time,jdbcType=INTEGER},</if> <if test="createTime != null">mca_createtime=#{createTime,jdbcType=TIMESTAMP},</if> <if test="beiZhu != null">mca_beizhu=#{beiZhu,jdbcType=VARCHAR},</if> </set> where mca_id = #{id,jdbcType=BIGINT} </update> </mapper> fanli/src/main/java/com/yeshi/fanli/service/impl/monitor/MonitorServiceImpl.java
New file @@ -0,0 +1,24 @@ package com.yeshi.fanli.service.impl.monitor; import javax.annotation.Resource; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.mybatis.monitor.ClientAPIMonitorMapper; import com.yeshi.fanli.entity.monitor.ClientAPIMonitor; import com.yeshi.fanli.service.inter.monitor.MonitorService; @Service public class MonitorServiceImpl implements MonitorService { @Resource private ClientAPIMonitorMapper clientAPIMonitorMapper; @Async @Override public void addClientAPIMonitor(ClientAPIMonitor monitor) { clientAPIMonitorMapper.insertSelective(monitor); } } fanli/src/main/java/com/yeshi/fanli/service/inter/monitor/MonitorService.java
New file @@ -0,0 +1,20 @@ package com.yeshi.fanli.service.inter.monitor; import com.yeshi.fanli.entity.monitor.ClientAPIMonitor; /** * 监控服务 * * @author Administrator * */ public interface MonitorService { /** * 添加客户端API的监控 * * @param monitor */ public void addClientAPIMonitor(ClientAPIMonitor monitor); } fanli/src/main/java/com/yeshi/fanli/util/factory/MonitorFactory.java
New file @@ -0,0 +1,47 @@ package com.yeshi.fanli.util.factory; import java.util.Date; import java.util.Iterator; import java.util.Map; import javax.servlet.http.HttpServletRequest; import com.yeshi.fanli.entity.monitor.ClientAPIMonitor; import net.sf.json.JSONObject; public class MonitorFactory { @SuppressWarnings("unchecked") public static ClientAPIMonitor createClientAPI(HttpServletRequest request, int code, int time, String beiZhu) throws Exception { if (request == null) throw new Exception("request 为空"); ClientAPIMonitor monitor = new ClientAPIMonitor(); Map<String, Object> params = (Map<String, Object>) request.getParameterMap(); if (params != null) { Iterator<String> its = params.keySet().iterator(); JSONObject json = new JSONObject(); while (its.hasNext()) { String key = its.next(); if ("packages".equalsIgnoreCase(key) || "appkey".equalsIgnoreCase(key) || "platform".equalsIgnoreCase(key) || "apiversion".equalsIgnoreCase(key) || "channel".equalsIgnoreCase(key) || "imei".equalsIgnoreCase(key) || "osVersion".equalsIgnoreCase(key) || "network".equalsIgnoreCase(key) || "deviceType".equalsIgnoreCase(key) || "time".equalsIgnoreCase(key) || "sign".equalsIgnoreCase(key)) continue; json.put(key, ((Object[]) params.get(key))[0]); } monitor.setRequestData(json.toString()); } monitor.setBeiZhu(beiZhu); monitor.setCode(code); monitor.setCreateTime(new Date()); monitor.setIp(request.getRemoteHost()); monitor.setTime(time); monitor.setUrl(request.getRequestURI()); return monitor; } }