Authored by simba

update

package com.monitor.cmdb.controller;
import com.model.MechineInfo;
import com.monitor.cmdb.service.IMechineInfoService;
import com.monitor.cmdb.vo.req.MechineInfoReq;
import com.monitor.model.response.PageResponse;
import com.monitor.model.response.Response;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Created by yoho on 2016/6/14.
*/
@Controller
@RequestMapping("MechineInfoController")
public class MechineInfoController {
Logger log = LoggerFactory.getLogger(MechineInfoController.class);
@Autowired
IMechineInfoService mechineInfoService;
@RequestMapping("/getMechineInfos.do")
@ResponseBody
public Response<PageResponse<MechineInfo>> getMechineInfos(MechineInfoReq req) throws Exception {
log.debug("getMechineInfos with param is {}", req);
// 查询列表
PageResponse<MechineInfo> responseBO = mechineInfoService.getMechineInfos(req);
if (responseBO == null || CollectionUtils.isEmpty(responseBO.getRows())) {
return new Response<PageResponse<MechineInfo>>();
}
PageResponse<MechineInfo> response = new PageResponse<MechineInfo>();
response.setCurrentPage(responseBO.getCurrentPage());
response.setRows(responseBO.getRows());
response.setPageSize(responseBO.getPageSize());
response.setTotal(responseBO.getTotal());
log.info("getMechineInfos success and total={}", response.getTotal());
return new Response<PageResponse<MechineInfo>>(response);
}
}
... ...
package com.monitor.cmdb.service;
import com.model.MechineInfo;
import com.monitor.cmdb.vo.req.MechineInfoReq;
import com.monitor.model.response.PageResponse;
/**
* Created by yoho on 2016/6/14.
*/
public interface IMechineInfoService {
PageResponse<MechineInfo> getMechineInfos(MechineInfoReq req);
}
... ...
package com.monitor.cmdb.service.impl;
import com.model.MechineInfo;
import com.monitor.cmdb.service.IMechineInfoService;
import com.monitor.cmdb.vo.req.MechineInfoReq;
import com.monitor.model.domain.PageBean;
import com.monitor.model.response.PageResponse;
import com.monitor.mysql.mapper.MechineInfoMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* Created by yoho on 2016/6/14.
*/
@Service
public class MechineInfoServiceImpl implements IMechineInfoService {
Logger logger = LoggerFactory.getLogger(MechineInfoServiceImpl.class);
@Autowired
MechineInfoMapper mechineInfoMapper;
@Override
public PageResponse<MechineInfo> getMechineInfos(MechineInfoReq req) {
logger.info("getMechineInfos with param is {}", req);
// 组装分页对象
PageBean page = PageBean.initPageInfo(req.getCurrentPage(),
req.getPageSize(), req);
// 先查询符合条件的总数量
int total = mechineInfoMapper.selectCountByCodition(page.getParams());
logger.info("selectUserTotal num is {}, with param is {}", total,
req);
// 数量为0 直接返回
if (total == 0) {
// 返回初始page对象
return null;
}
// 获取列表
List<MechineInfo> mechineInfos = mechineInfoMapper.selectMechineInfosByCodition(page.getParams());
if (CollectionUtils.isEmpty(mechineInfos)) {
logger.debug("getMechineInfos is null with param is {}", req);
return null;
}
PageResponse<MechineInfo> response = new PageResponse<MechineInfo>();
response.setCurrentPage(req.getCurrentPage());
response.setPageSize(req.getPageSize());
response.setTotal(total);
response.setRows(mechineInfos);
return response;
}
}
... ...
package com.monitor.cmdb.vo.req;
import com.monitor.model.page.PageRequest;
/**
* Created by yoho on 2016/6/14.
*/
public class MechineInfoReq extends PageRequest {
private String alias;
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
}
... ...
/**
*
*/
package com.monitor.model.domain;
import com.alibaba.fastjson.JSON;
import java.io.Serializable;
/**
* 描述:
*
* @author ping.huang
* 2016年3月31日
*/
public class BaseModel implements Serializable {
/**
*
*/
private static final long serialVersionUID = -4976516540408695147L;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}
... ...
/**
*
*/
package com.monitor.model.domain;
/**
* 描述:
*
* @author ping.huang
* 2016年3月31日
*/
public class ErrorCode extends BaseModel {
public ErrorCode(int code, String message) {
super();
this.code = code;
this.message = message;
}
/**
*
*/
private static final long serialVersionUID = 1665066362288658528L;
private int code;
private String message;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
... ...
package com.monitor.model.domain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;
/**
* 分页对象
* @author ping.huang
*
*/
public class PageBean extends BaseModel {
static Logger log = LoggerFactory.getLogger(PageBean.class);
/**
*
*/
private static final long serialVersionUID = 7111590533083251807L;
private int pageNo = 1;// 页码,默认是第一页
private int pageSize = 10;// 每页显示的记录数,默认是10
private int totalRecord;// 总记录数
private int totalPage;// 总页数
private int startIndex = 0;//查询的开始行数
private Map<String, Object> params = new HashMap<String, Object>();// 其他的参数我们把它分装成一个Map对象
/**
* 初始化分页信息
*
* @param pageNo
* @param pageSize
* @param o
* @return
*/
public static PageBean initPageInfo(int pageNo, int pageSize, Object o) {
PageBean page = new PageBean();
if (pageNo > 0) {
page.setPageNo(pageNo);
}
if (pageSize > 0) {
page.setPageSize(pageSize);
}
page.setStartIndex((page.getPageNo() - 1) * page.getPageSize());
if (o != null) {
try {
Field[] declaredFields = o.getClass().getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
// 过滤内容为空的
if (field.get(o) == null) {
continue;
}
page.getParams().put(field.getName(), field.get(o));
}
} catch (IllegalAccessException e) {
log.error("", e);
}
}
return page;
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalRecord() {
return totalRecord;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
// 在设置总页数的时候计算出对应的总页数
int totalPage = totalRecord % pageSize == 0 ? totalRecord / pageSize : totalRecord / pageSize + 1;
this.setTotalPage(totalPage);
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getStartIndex() {
return startIndex;
}
public void setStartIndex(int startIndex) {
this.startIndex = startIndex;
}
public Map<String, Object> getParams() {
return params;
}
public void setParams(Map<String, Object> params) {
this.params = params;
}
}
... ...
package com.monitor.model.page;
import com.monitor.model.domain.BaseModel;
/**
* 统一的分页请求对象 描述:
*
* @author ping.huang 2016年1月25日
*/
public class PageRequest extends BaseModel {
/**
*
*/
private static final long serialVersionUID = -4026346032261456086L;
private int currentPage = 1;
private int pageSize = 10;
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
if (currentPage <= 1) {
currentPage = 1;
}
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
... ...
package com.monitor.model.page;
import com.monitor.model.domain.BaseModel;
import java.util.ArrayList;
import java.util.List;
/**
* 统一的分页响应对象 描述:
*
* @author ping.huang 2016年1月25日
*/
public class PageResponse<T> extends BaseModel {
private static final long serialVersionUID = -6835515582292217174L;
private int total;
private int currentPage;
private int pageSize;
private int totalPage;
private List<T> rows = new ArrayList<>();
public PageResponse() {
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
// 在设置总页数的时候计算出对应的总页数
dealTotalPage();
}
private void dealTotalPage() {
if (total > 0 && pageSize > 0) {
int totalPage = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
this.setTotalPage(totalPage);
}
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
... ...
package com.monitor.model.response;
import com.monitor.model.domain.BaseModel;
import java.util.ArrayList;
import java.util.List;
/**
* 统一的分页响应对象 描述:
*
* @author ping.huang 2016年1月25日
*/
public class PageResponse<T> extends BaseModel {
private static final long serialVersionUID = -6835515582292217174L;
private int total;
private int currentPage;
private int pageSize;
private int totalPage;
private List<T> rows = new ArrayList<>();
public PageResponse() {
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
// 在设置总页数的时候计算出对应的总页数
dealTotalPage();
}
private void dealTotalPage() {
if (total > 0 && pageSize > 0) {
int totalPage = total % pageSize == 0 ? total / pageSize : total / pageSize + 1;
this.setTotalPage(totalPage);
}
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
... ...
package com.monitor.model.response;
import com.monitor.model.domain.BaseModel;
import com.monitor.model.domain.ErrorCode;
/**
* service返回信息对象
* @author hp
* 2014-03-11
*/
public class Response<T> extends BaseModel {
/**
*
*/
private static final long serialVersionUID = 6266480114572636927L;
private int code = 200;
private String message = "success";
private T data;
public Response() {}
public Response(ErrorCode errorCode) {
this.code = errorCode.getCode();
this.message = errorCode.getMessage();
}
public Response(int code, String message) {
this.code = code;
this.message = message;
}
public Response(T data) {
this.data = data;
}
public Response(int code, String message, T data) {
this(code, message);
this.data = data;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
}
... ...
package com.monitor.mysql.mapper;
import com.model.MechineInfo;
import java.util.List;
import java.util.Map;
public interface MechineInfoMapper {
int deleteByPrimaryKey(Integer id);
int insert(MechineInfo record);
int insertSelective(MechineInfo record);
MechineInfo selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(MechineInfo record);
int updateByPrimaryKey(MechineInfo record);
int selectCountByCodition(Map<String, Object> param);
List<MechineInfo> selectMechineInfosByCodition(Map<String, Object> param);
}
\ No newline at end of file
... ...
<?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.monitor.mysql.mapper.MechineInfoMapper" >
<resultMap id="BaseResultMap" type="com.model.MechineInfo" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="alias" property="alias" jdbcType="VARCHAR" />
<result column="host_ip" property="hostIp" jdbcType="VARCHAR" />
<result column="redis" property="redis" jdbcType="TINYINT" />
<result column="database" property="database" jdbcType="TINYINT" />
<result column="rabbitmq" property="rabbitmq" jdbcType="TINYINT" />
<result column="nginx" property="nginx" jdbcType="TINYINT" />
<result column="java_server" property="javaServer" jdbcType="TINYINT" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, alias, host_ip, redis, database, rabbitmq, nginx, java_server, create_time, update_time
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from mechine_info
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from mechine_info
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.model.MechineInfo" >
insert into mechine_info (id, alias, host_ip,
redis, database, rabbitmq,
nginx, java_server, create_time,
update_time)
values (#{id,jdbcType=INTEGER}, #{alias,jdbcType=VARCHAR}, #{hostIp,jdbcType=VARCHAR},
#{redis,jdbcType=TINYINT}, #{database,jdbcType=TINYINT}, #{rabbitmq,jdbcType=TINYINT},
#{nginx,jdbcType=TINYINT}, #{javaServer,jdbcType=TINYINT}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.model.MechineInfo" >
insert into mechine_info
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="alias != null" >
alias,
</if>
<if test="hostIp != null" >
host_ip,
</if>
<if test="redis != null" >
redis,
</if>
<if test="database != null" >
database,
</if>
<if test="rabbitmq != null" >
rabbitmq,
</if>
<if test="nginx != null" >
nginx,
</if>
<if test="javaServer != null" >
java_server,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null" >
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="alias != null" >
#{alias,jdbcType=VARCHAR},
</if>
<if test="hostIp != null" >
#{hostIp,jdbcType=VARCHAR},
</if>
<if test="redis != null" >
#{redis,jdbcType=TINYINT},
</if>
<if test="database != null" >
#{database,jdbcType=TINYINT},
</if>
<if test="rabbitmq != null" >
#{rabbitmq,jdbcType=TINYINT},
</if>
<if test="nginx != null" >
#{nginx,jdbcType=TINYINT},
</if>
<if test="javaServer != null" >
#{javaServer,jdbcType=TINYINT},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.model.MechineInfo" >
update mechine_info
<set >
<if test="alias != null" >
alias = #{alias,jdbcType=VARCHAR},
</if>
<if test="hostIp != null" >
host_ip = #{hostIp,jdbcType=VARCHAR},
</if>
<if test="redis != null" >
redis = #{redis,jdbcType=TINYINT},
</if>
<if test="database != null" >
database = #{database,jdbcType=TINYINT},
</if>
<if test="rabbitmq != null" >
rabbitmq = #{rabbitmq,jdbcType=TINYINT},
</if>
<if test="nginx != null" >
nginx = #{nginx,jdbcType=TINYINT},
</if>
<if test="javaServer != null" >
java_server = #{javaServer,jdbcType=TINYINT},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.model.MechineInfo" >
update mechine_info
set alias = #{alias,jdbcType=VARCHAR},
host_ip = #{hostIp,jdbcType=VARCHAR},
redis = #{redis,jdbcType=TINYINT},
database = #{database,jdbcType=TINYINT},
rabbitmq = #{rabbitmq,jdbcType=TINYINT},
nginx = #{nginx,jdbcType=TINYINT},
java_server = #{javaServer,jdbcType=TINYINT},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="selectCountByCodition" parameterType="java.util.Map" resultType="java.lang.Integer">
select
IFNULL(count(1),0)
from mechine_info
where
1=1
<if test="alias != null" >
and alias = #{alias}
</if>
</select>
<select id="selectMechineInfosByCodition" parameterType="java.util.Map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from mechine_info
where
1=1
<if test="alias != null" >
and alias = #{alias}
</if>
</select>
</mapper>
\ No newline at end of file
... ...