123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package service
- import (
- "errors"
- "fmt"
- "rtzh_elec_temperature/logger"
- "rtzh_elec_temperature/rtelec_app_public_lib/models"
- "rtzh_elec_temperature/tools"
- "strconv"
- "strings"
- "github.com/astaxie/beego/orm"
- )
- //日志操作管理
- type LogService struct {
- BaseService
- }
- //保存日志
- func (c *LogService) SaveLog(logdesc string) {
- logobj := models.Log_operate{}
- logobj.Appid, _ = strconv.Atoi(RtelecManageApp().RegAppID)
- logobj.Context = logdesc
- logobj.Usrname = c.UserInfo.Usrname
- logobj.CreateAt = tools.NowTime()
- db := orm.NewOrm()
- db.Using("iss")
- _, err := db.Insert(&logobj)
- if err != nil {
- logger.Logger.Error(err)
- logger.Logger.Println(fmt.Sprintf("%+v", logobj))
- }
- }
- //查询日志记录信息
- func (c *LogService) GetLog(startdate, enddate, username, content string, pageIndex, pageSize int) (interface{}, error) {
- db := orm.NewOrm()
- db.Using("iss")
- sqlParameters := []interface{}{}
- sqlCommandText := "select * from log_operate "
- totalSql := "select count(1) recordcount from log_operate "
- var sqlCondition []string
- if content != "" {
- sqlCondition = append(sqlCondition, "context like ?")
- sqlParameters = append(sqlParameters, "%"+content+"%")
- }
- if username != "" {
- sqlCondition = append(sqlCondition, "usrname like ?")
- sqlParameters = append(sqlParameters, "%"+username+"%")
- }
- if startdate != "" && enddate != "" {
- sqlCondition = append(sqlCondition, "create_at between ? and ?")
- sqlParameters = append(sqlParameters, startdate)
- sqlParameters = append(sqlParameters, enddate)
- } else if startdate != "" {
- sqlCondition = append(sqlCondition, "create_at>=?")
- sqlParameters = append(sqlParameters, startdate)
- } else if enddate != "" {
- sqlCondition = append(sqlCondition, "create_at<=?")
- sqlParameters = append(sqlParameters, enddate)
- }
- sqlCondition = append(sqlCondition, "appid=?")
- sqlParameters = append(sqlParameters, RtelecManageApp().RegAppID)
- if len(sqlCondition) > 0 {
- sqlCommandText += " where " + strings.Join(sqlCondition, " and ")
- totalSql += " where " + strings.Join(sqlCondition, " and ")
- }
- sqlCommandText += fmt.Sprintf(" order by id desc limit %d,%d", (pageIndex-1)*pageSize, pageSize)
- list := []orm.Params{}
- _, err := db.Raw(sqlCommandText, sqlParameters).Values(&list)
- var total = 0
- if err == nil {
- totalrowset := []orm.Params{}
- _, err = db.Raw(totalSql, sqlParameters).Values(&totalrowset)
- if err != nil {
- logger.Logger.Error(err)
- logger.Logger.Println(fmt.Sprintf("Error SQL:%s 参数:%+v", totalSql, sqlParameters))
- } else if len(totalrowset) > 0 {
- total, _ = strconv.Atoi(tools.IsEmpty(totalrowset[0]["recordcount"]))
- }
- } else {
- logger.Logger.Error(err)
- logger.Logger.Println(fmt.Sprintf("Error SQL:%s 参数:%+v", sqlCommandText, sqlParameters))
- }
- if len(list) == 0 {
- return map[string]interface{}{"list": []interface{}{}, "total": total}, err
- } else {
- return map[string]interface{}{"list": list, "total": total}, err
- }
- }
- //删除日志
- func (c *LogService) Delete(id string) error {
- if id == "" {
- return errors.New("删除日志时ID不允许为空")
- }
- db := orm.NewOrm()
- db.Using("iss")
- idint, _ := strconv.ParseInt(id, 10, 64)
- logObject := models.Log_operate{Id: idint}
- _, err := db.Delete(&logObject)
- return err
- }
|