Przeglądaj źródła

ETA版本更新日志

hsun 1 rok temu
rodzic
commit
312fb92b38

+ 401 - 0
controllers/eta_version_update_log.go

@@ -0,0 +1,401 @@
+package controllers
+
+import (
+	"encoding/json"
+	"fmt"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"hongze/hz_crm_api/models"
+	"hongze/hz_crm_api/utils"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// EtaVersionUpdateLogController ETA版本更新日志
+type EtaVersionUpdateLogController struct {
+	BaseAuthController
+}
+
+// PageList
+// @Title 更新日志列表-分页
+// @Description 更新日志列表-分页
+// @Param   Keyword		query	string	false	"关键词"
+// @Param   SortType	query	string	false	"排序方式, 1-ASC; 2-DESC"
+// @Success 200 Ret=200 获取成功
+// @router /page_list [get]
+func (this *EtaVersionUpdateLogController) PageList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	// 分页
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	var startSize int
+	if pageSize <= 0 {
+		pageSize = utils.PageSize20
+	}
+	if currentIndex <= 0 {
+		currentIndex = 1
+	}
+	startSize = utils.StartIndex(currentIndex, pageSize)
+
+	cond := ``
+	pars := make([]interface{}, 0)
+	// 关键词
+	keyword := this.GetString("Keyword", "")
+	keyword = strings.TrimSpace(keyword)
+	if keyword != "" {
+		kw := fmt.Sprint("%", keyword, "%")
+		cond += ` AND content LIKE ?`
+		pars = append(pars, kw)
+	}
+
+	sortType, _ := this.GetInt("SortType", 0)
+	orderMap := map[int]string{0: "", 1: "update_date ASC", 2: "update_date DESC"}
+	order := orderMap[sortType]
+
+	// 获取列表
+	businessOb := new(models.EtaVersionUpdateLog)
+	total, e := businessOb.GetCountByCondition(cond, pars)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取更新日志总数失败, Err: " + e.Error()
+		return
+	}
+	list, e := businessOb.GetPageItemsByCondition(cond, pars, []string{}, order, startSize, pageSize)
+	if e != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取更新日志列表失败, Err: " + e.Error()
+		return
+	}
+
+	items := make([]*models.EtaVersionUpdateLogItem, 0)
+	for _, v := range list {
+		b := new(models.EtaVersionUpdateLogItem)
+		b.Id = v.Id
+		b.Version = v.Version
+		b.Content = v.Content
+		b.UpdateDate = v.UpdateDate.Format(utils.FormatDate)
+		b.CreateTime = v.CreateTime.Format(utils.FormatDateTime)
+		b.ModifyTime = v.ModifyTime.Format(utils.FormatDateTime)
+		items = append(items, b)
+	}
+
+	resp := new(models.EtaVersionUpdateLogListResp)
+	resp.List = items
+	resp.Paging = paging.GetPaging(currentIndex, pageSize, total)
+	br.Data = resp
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+}
+
+// Add
+// @Title 新增
+// @Description 新增
+// @Param	request	body models.EtaVersionUpdateLogAddReq true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /add [post]
+func (this *EtaVersionUpdateLogController) Add() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	// 参数校验
+	var req models.EtaVersionUpdateLogAddReq
+	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+	req.Version = strings.TrimSpace(req.Version)
+	if req.Version == "" {
+		br.Msg = "版本号不可为空"
+		return
+	}
+	// 版本号格式: X.X.X
+	versionArr := strings.Split(req.Version, ".")
+	if len(versionArr) != 3 {
+		br.Msg = "请输入正确格式的版本号"
+		return
+	}
+	for _, n := range versionArr {
+		if _, e := strconv.Atoi(n); e != nil {
+			br.Msg = "请输入正确格式的版本号"
+			return
+		}
+	}
+
+	req.Content = strings.TrimSpace(req.Content)
+	if req.Content == "" {
+		br.Msg = "更新内容不可为空"
+		return
+	}
+	updateDate, e := time.ParseInLocation(utils.FormatDate, req.UpdateDate, time.Local)
+	if e != nil {
+		br.Msg = "更新日期格式有误"
+		br.ErrMsg = "更新日期格式有误, Err: " + e.Error()
+		return
+	}
+
+	// 版本号重复校验
+	{
+		item := new(models.EtaVersionUpdateLog)
+		cond := ` AND version = ?`
+		pars := make([]interface{}, 0)
+		pars = append(pars, req.Version)
+		exist, e := item.GetItemByCondition(cond, pars)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			br.Msg = "操作失败"
+			br.ErrMsg = "获取更新日志重复版本号失败, Err: " + e.Error()
+			return
+		}
+		if exist != nil {
+			br.Msg = "该版本号已有更新日志, 请重新输入"
+			return
+		}
+	}
+
+	// 更新日期重复校验
+	{
+		item := new(models.EtaVersionUpdateLog)
+		cond := ` AND update_date = ?`
+		pars := make([]interface{}, 0)
+		pars = append(pars, req.UpdateDate)
+		exist, e := item.GetItemByCondition(cond, pars)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			br.Msg = "操作失败"
+			br.ErrMsg = "获取更新日志重复日期失败, Err: " + e.Error()
+			return
+		}
+		if exist != nil {
+			br.Msg = "该日期已有更新日志, 请重新选择"
+			return
+		}
+	}
+
+	// 新增
+	item := new(models.EtaVersionUpdateLog)
+	item.Version = req.Version
+	item.UpdateDate = updateDate
+	item.Content = req.Content
+	item.CreateTime = time.Now().Local()
+	item.ModifyTime = time.Now().Local()
+	if e = item.Create(); e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "新增更新日志失败, Err: " + e.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}
+
+// Edit
+// @Title 编辑
+// @Description 编辑
+// @Param	request	body models.EtaVersionUpdateLogEditReq true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /edit [post]
+func (this *EtaVersionUpdateLogController) Edit() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	// 参数校验
+	var req models.EtaVersionUpdateLogEditReq
+	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+	if req.Id <= 0 {
+		br.Msg = "参数有误"
+		return
+	}
+	req.Version = strings.TrimSpace(req.Version)
+	if req.Version == "" {
+		br.Msg = "版本号不可为空"
+		return
+	}
+	// 版本号格式: X.X.X
+	versionArr := strings.Split(req.Version, ".")
+	if len(versionArr) != 3 {
+		br.Msg = "请输入正确格式的版本号"
+		return
+	}
+	for _, n := range versionArr {
+		if _, e := strconv.Atoi(n); e != nil {
+			br.Msg = "请输入正确格式的版本号"
+			return
+		}
+	}
+	req.Content = strings.TrimSpace(req.Content)
+	if req.Content == "" {
+		br.Msg = "更新内容不可为空"
+		return
+	}
+	updateDate, e := time.ParseInLocation(utils.FormatDate, req.UpdateDate, time.Local)
+	if e != nil {
+		br.Msg = "更新日期格式有误"
+		br.ErrMsg = "更新日期格式有误, Err: " + e.Error()
+		return
+	}
+
+	// 版本号重复校验
+	{
+		item := new(models.EtaVersionUpdateLog)
+		cond := ` AND version = ?`
+		pars := make([]interface{}, 0)
+		pars = append(pars, req.Version)
+		exist, e := item.GetItemByCondition(cond, pars)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			br.Msg = "操作失败"
+			br.ErrMsg = "获取更新日志重复版本号失败, Err: " + e.Error()
+			return
+		}
+		if exist != nil && exist.Id != req.Id {
+			br.Msg = "该版本号已有更新日志, 请重新输入"
+			return
+		}
+	}
+
+	// 更新日期重复校验
+	{
+		item := new(models.EtaVersionUpdateLog)
+		cond := ` AND update_date = ?`
+		pars := make([]interface{}, 0)
+		pars = append(pars, req.UpdateDate)
+		exist, e := item.GetItemByCondition(cond, pars)
+		if e != nil && e.Error() != utils.ErrNoRow() {
+			br.Msg = "操作失败"
+			br.ErrMsg = "获取更新日志重复日期失败, Err: " + e.Error()
+			return
+		}
+		if exist != nil && exist.Id != req.Id {
+			br.Msg = "该日期已有更新日志, 请重新选择"
+			return
+		}
+	}
+
+	ob := new(models.EtaVersionUpdateLog)
+	item, e := ob.GetItemById(req.Id)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "更新日志不存在, 请刷新页面"
+			return
+		}
+		br.Msg = "操作失败"
+		br.ErrMsg = "获取更新日志信息失败, Err: " + e.Error()
+		return
+	}
+	item.Version = req.Version
+	item.Content = req.Content
+	item.UpdateDate = updateDate
+	item.ModifyTime = time.Now().Local()
+	cols := []string{"Version", "Content", "UpdateDate", "ModifyTime"}
+	if e := item.Update(cols); e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "编辑更新日志失败, Err: " + e.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}
+
+// Del
+// @Title 删除
+// @Description 删除
+// @Param	request	body models.EtaVersionUpdateLogDelReq true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /del [post]
+func (this *EtaVersionUpdateLogController) Del() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	// 参数校验
+	var req models.EtaVersionUpdateLogDelReq
+	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + e.Error()
+		return
+	}
+	if req.Id <= 0 {
+		br.Msg = "参数有误"
+		return
+	}
+
+	ob := new(models.EtaVersionUpdateLog)
+	item, e := ob.GetItemById(req.Id)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Msg = "更新日志不存在, 请刷新页面"
+			return
+		}
+		br.Msg = "操作失败"
+		br.ErrMsg = "获取更新日志信息失败, Err: " + e.Error()
+		return
+	}
+	if e := item.Del(); e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "删除更新日志失败, Err: " + e.Error()
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}

+ 10 - 0
models/db.go

@@ -182,6 +182,9 @@ func init() {
 
 	//AI 聊天记录
 	initAiChat()
+
+	// ETA版本更新日志
+	initEtaVersionUpdateLog()
 }
 
 // initSystem 系统表 数据表
@@ -631,3 +634,10 @@ func initAiChat() {
 		new(aimod.AiChat),      //聊天
 	)
 }
+
+// initEtaVersionUpdateLog ETA版本更新日志
+func initEtaVersionUpdateLog() {
+	orm.RegisterModel(
+		new(EtaVersionUpdateLog), // 更新日志表
+	)
+}

+ 144 - 0
models/eta_version_update_log.go

@@ -0,0 +1,144 @@
+package models
+
+import (
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+	"github.com/rdlucklib/rdluck_tools/paging"
+	"strings"
+	"time"
+)
+
+// EtaVersionUpdateLog ETA版本更新日志表
+type EtaVersionUpdateLog struct {
+	Id         int       `orm:"column(id);pk"`
+	Version    string    `description:"版本号"`
+	Content    string    `description:"更新内容"`
+	UpdateDate time.Time `description:"更新日期"`
+	CreateTime time.Time
+	ModifyTime time.Time
+}
+
+func (m *EtaVersionUpdateLog) TableName() string {
+	return "eta_version_update_log"
+}
+
+func (m *EtaVersionUpdateLog) PrimaryId() string {
+	return "id"
+}
+
+func (m *EtaVersionUpdateLog) Create() (err error) {
+	o := orm.NewOrm()
+	id, err := o.Insert(m)
+	if err != nil {
+		return
+	}
+	m.Id = int(id)
+	return
+}
+
+func (m *EtaVersionUpdateLog) CreateMulti(items []*EtaVersionUpdateLog) (err error) {
+	if len(items) == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	_, err = o.InsertMulti(len(items), items)
+	return
+}
+
+func (m *EtaVersionUpdateLog) Update(cols []string) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Update(m, cols...)
+	return
+}
+
+func (m *EtaVersionUpdateLog) Del() (err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+	_, err = o.Raw(sql, m.Id).Exec()
+	return
+}
+
+func (m *EtaVersionUpdateLog) GetItemById(id int) (item *EtaVersionUpdateLog, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+	err = o.Raw(sql, id).QueryRow(&item)
+	return
+}
+
+func (m *EtaVersionUpdateLog) GetItemByCondition(condition string, pars []interface{}) (item *EtaVersionUpdateLog, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&item)
+	return
+}
+
+func (m *EtaVersionUpdateLog) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func (m *EtaVersionUpdateLog) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EtaVersionUpdateLog, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time DESC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+func (m *EtaVersionUpdateLog) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*EtaVersionUpdateLog, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := `ORDER BY create_time DESC`
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// EtaVersionUpdateLogItem 更新日志信息
+type EtaVersionUpdateLogItem struct {
+	Id         int
+	Version    string `description:"版本号"`
+	Content    string `description:"更新内容"`
+	UpdateDate string `description:"更新日期"`
+	CreateTime string
+	ModifyTime string
+}
+
+// EtaVersionUpdateLogListResp 更新日志列表响应体
+type EtaVersionUpdateLogListResp struct {
+	List   []*EtaVersionUpdateLogItem
+	Paging *paging.PagingItem
+}
+
+// EtaVersionUpdateLogAddReq 新增更新日志请求体
+type EtaVersionUpdateLogAddReq struct {
+	Version    string `description:"版本号"`
+	Content    string `description:"更新内容"`
+	UpdateDate string `description:"更新日期"`
+}
+
+// EtaVersionUpdateLogEditReq 编辑更新日志请求体
+type EtaVersionUpdateLogEditReq struct {
+	Id int
+	EtaVersionUpdateLogAddReq
+}
+
+// EtaVersionUpdateLogDelReq 删除更新日志请求体
+type EtaVersionUpdateLogDelReq struct {
+	Id int
+}

+ 36 - 0
routers/commentsRouter.go

@@ -9268,6 +9268,42 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"],
+        beego.ControllerComments{
+            Method: "Add",
+            Router: `/add`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"],
+        beego.ControllerComments{
+            Method: "Del",
+            Router: `/del`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"],
+        beego.ControllerComments{
+            Method: "Edit",
+            Router: `/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:EtaVersionUpdateLogController"],
+        beego.ControllerComments{
+            Method: "PageList",
+            Router: `/page_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:FullCompanyController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers:FullCompanyController"],
         beego.ControllerComments{
             Method: "Detail",

+ 5 - 0
routers/router.go

@@ -299,6 +299,11 @@ func init() {
 				&english_report.EnPermissionController{},
 			),
 		),
+		web.NSNamespace("/eta_version_update_log",
+			web.NSInclude(
+				&controllers.EtaVersionUpdateLogController{},
+			),
+		),
 	)
 	web.AddNamespace(ns)
 }