【Saas-export项目】18--系统日志管理

48 篇文章 1 订阅
37 篇文章 3 订阅



系统日志

(1)分析

  • 记录用户的访问的Controller与ip等信息
    属于监控功能 只要查看与保存功能
  • 数据组成
    //设置登录用户信息 seesion获取
    //设置企业信息
    //IP地址 request获取
    //设置记录时间
    //执行的方法名称 新方法获取
    //执行的类名称

(2)页面显示

在这里插入图片描述

后台代码

(1)SysLog.java

src\main\java\com\smp\domain\system\syslog

public class SysLog {
    private String id;
    private String userName;
    private String ip;
    private Date time;
    private String method;
    private String action;
    private String companyId;
    private String companyName;
    
    空参、tostring、getter AND setter
}

(2)TestSysLogService.java

src\test\java\com\smp\service\company

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath*:spring/applicationContext-*.xml")
public class TestSysLogService {
    private static final Logger l = LoggerFactory.getLogger(TestSysLogService.class);
    @Autowired
    ISysLogService iSysLogService;
    //增*删改查*
    @Test
    public void test01(){
        //分页列表
        //页面上显示分页列表,就要求业务方法中提供查询PageInfo的方法
        PageInfo<SysLog> pi= iSysLogService.findByPage(1,3,"1");
        l.info("pi = "+pi);
    }
    @Test
    public void test02(){

        //将一个表单数据保存在javaBean中,再将javaBean存到数据库
        SysLog sysLog = new SysLog();
        //设置登录用户信息
        sysLog.setUserName("老玉");
        //设置企业信息
        sysLog.setCompanyId("1");
        sysLog.setCompanyName("吉首大学");
        //IP地址
        sysLog.setIp("192.168.10.11");
        //设置记录时间
        sysLog.setTime(new Date());
        //执行的方法名称
        sysLog.setMethod("toList");
        //执行的类名称
        sysLog.setAction("com.smp.web.company.CompanyController");

        sysLog.setCompanyId("1");
        sysLog.setCompanyName("吉首大学");
        iSysLogService.saveSysLog(sysLog);

    }
}

(3-1)ISysLogService.java

src\main\java\com\smp\service\system\syslog

public interface ISysLogService {
    PageInfo<SysLog> findByPage(int curr,int pageSize,String companyId);
    void saveSysLog(SysLog sysLog);
}

(3-2)SysLogServiceImpl.java

src\main\java\com\smp\service\system\syslog\impl

@Service
public class SysLogServiceImpl implements ISysLogService {
    //service调用dao
    @Autowired
    ISysLogDao iSysLogDao;
    @Override
    public PageInfo<SysLog> findByPage(int curr, int pageSize, String companyId) {
        //设置参数
        PageHelper.startPage(curr,pageSize);
        //调用全查
        List<SysLog> list = iSysLogDao.findAll(companyId);
        //包装成PageInfo
        PageInfo<SysLog> pi = new PageInfo<>(list);
        return pi;
    }

    @Override
    public void saveSysLog(SysLog sysLog) {
        String uuid= UUID.randomUUID().toString();
        sysLog.setId(uuid);
        iSysLogDao.save(sysLog);
    }

}

(4-1)ISysLogDao.java

src\main\java\com\smp\dao\system\syslog

public interface ISysLogDao {
    List<SysLog> findAll(String companyId);
    void save(SysLog sysLog);
}

(4-2)ISysLogDao.xml

src\main\resources\com\smp\dao\system\syslog

<!--namespace: 需要映射的Dao接口类型-->
<mapper namespace="com.smp.dao.system.syslog.ISysLogDao">

    <!--设置字段与变量名的映射-->
    <resultMap id="syslogMap" type="sysLog">
        <id column="id" property="id"/>
        <result column="user_name" property="userName"/>
        <result column="ip" property="ip"/>
        <result column="time" property="time"/>
        <result column="method" property="method"/>
        <result column="ACTION" property="action"/>
        <result column="company_id" property="companyId"/>
        <result column="company_name" property="companyName"/>
    </resultMap>
    <!--    List<SysLog> findAll(String companyId);-->
    <select id="findAll" parameterType="string" resultMap="syslogMap">
        select * from st_sys_log where company_id =#{companyId} order by time desc
    </select>
    <!--    void save(SysLog sysLog);-->
    <insert id="save" parameterType="sysLog">
    insert into st_sys_log
        (
        id            ,
        user_name     ,
        ip            ,
        time          ,
        method        ,
        ACTION        ,
        company_id    ,
        company_name
        )
        values
        (
        #{id            },
        #{userName      },
        #{ip            },
        #{time          },
        #{method        },
        #{action        },
        #{companyId     },
        #{companyName   }
        )
    </insert>
</mapper>

前台代码

(1)SysLogController.java

src\main\java\com\smp\web\controller\system\syslog

@Controller
@RequestMapping("/system/syslog")
public class SysLogController extends BaseController {
    private static final Logger l= LoggerFactory.getLogger(SysLogController.class);

    @Autowired
    ISysLogService iSysLogService;

    @RequestMapping(path = "/toList",method = {RequestMethod.GET,RequestMethod.POST})
    public String toList(@RequestParam(defaultValue = "1") int curr,
                         @RequestParam(defaultValue = "15") int pageSize){
        //调查分页列表的方法
        PageInfo<SysLog> pi=iSysLogService.findByPage(curr,pageSize,getLoginCompanyId());
        //将pi添加到页面
        request.setAttribute("pi",pi);
        return "system/syslog/log-list";
    }
}

(2)log-list.jsp

src\main\webapp\WEB-INF\pages\system\syslog

<div class="box-body">
                <div class="table-box">
                    <div class="pull-left">
                        <div class="form-group form-inline"></div>
                    </div>
                    <!--工具栏/-->

                    <!--数据列表-->
                    <table id="dataList" class="table table-bordered table-striped table-hover dataTable">
                        <thead>
                        <tr>
                            <th class="sorting">序号</th>
                            <th class="sorting">用户名</th>
                            <th class="sorting">ip</th>
                            <th class="sorting">时间</th>
                            <th class="sorting">类与方法</th>

                        </tr>
                        </thead>
                        <tbody>
                        <c:forEach items="${pi.list}" var="log"  varStatus="st">
                            <tr>
                                <td>${st.count }</td>
                                <td>${log.userName }</td>
                                <td>${log.ip}</td>
                                <td>${log.time}</td>
                                <td>${log.action}.${log.method}</td>

                            </tr>
                        </c:forEach>
                        </tbody>
                    </table>
                </div>
            </div>
            <div class="box-footer">
                <jsp:include page="../../common/page.jsp">
                    <jsp:param value="${path}/system/syslog/toList.do" name="pageUrl"/>
                </jsp:include>
            </div>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值