123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- package cygx
- import (
- "github.com/beego/beego/v2/client/orm"
- "github.com/rdlucklib/rdluck_tools/paging"
- "time"
- )
- type CygxBanner struct {
- BannerId int `orm:"column(banner_id);pk"`
- ImgId int `description:"cygx_banner_img主键ID"`
- ListType string `description:"ABC哪一列"`
- BannerType int `description:"1:现有报告、2:自拟报告、3:视频、4:音频、5:活动"`
- Title string `description:"标题"`
- Subtitle string `description:"副标题"`
- Sort int `description:"排序"`
- Link string `description:"链接地址"`
- AdminId int `description:"管理员ID"`
- Status int `description:"0:未发布,1:已发布"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"更改时间"`
- }
- type CygxBannerReq struct {
- BannerId int `description:"BannerId等于0新增,大于零修改"`
- ImgId int `description:"cygx_banner_img主键ID"`
- ListType string `description:"ABC哪一列"`
- BannerType int `description:"1:现有报告、2:自拟报告、3:视频、4:音频、5:活动"`
- Title string `description:"标题"`
- Subtitle string `description:"副标题"`
- Sort int `description:"排序"`
- Link string `description:"链接地址"`
- }
- // 添加
- func AddCygxBanner(item *CygxBanner) (err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- _, err = o.Insert(item)
- return
- }
- // 修改
- func UpdateCygxBanner(item *CygxBanner) (err error) {
- to := orm.NewOrmUsingDB("hz_cygx")
- updateParams := make(map[string]interface{})
- updateParams["ImgId"] = item.ImgId
- updateParams["ListType"] = item.ListType
- updateParams["BannerType"] = item.BannerType
- updateParams["Title"] = item.Title
- updateParams["Subtitle"] = item.Subtitle
- updateParams["Sort"] = item.Sort
- updateParams["Link"] = item.Link
- updateParams["Status"] = item.Status
- updateParams["ModifyTime"] = time.Now()
- ptrStructOrTableName := "cygx_banner"
- whereParam := map[string]interface{}{"banner_id": item.BannerId}
- qs := to.QueryTable(ptrStructOrTableName)
- for expr, exprV := range whereParam {
- qs = qs.Filter(expr, exprV)
- }
- _, err = qs.Update(updateParams)
- return
- }
- type CygxBannerResp struct {
- BannerId int `description:"BannerId等于0新增,大于零修改"`
- ImgId int `description:"cygx_banner_img主键ID"`
- IndexImg string `description:"小程序封面图"`
- ListType string `description:"ABC哪一列"`
- BannerType int `description:"添加类型,1:现有报告、2:自拟报告、3:视频、4:音频、5:活动"`
- BannerTypeName string `description:"添加类型名称"`
- Title string `description:"标题"`
- Subtitle string `description:"副标题"`
- Sort int `description:"排序"`
- Status int `description:"0:未发布,1:已发布"`
- Link string `description:"链接地址"`
- ModifyTime string `description:"更改时间"`
- Pv int `description:"Pv"`
- Uv int `description:"Uv"`
- }
- type CygxBannerIdReq struct {
- BannerId int `description:"BannerId"`
- }
- type CygxBannerMoveReq struct {
- BannerId int `description:"BannerId"`
- PreviousBannerId int `description:"上一个BannerId"`
- NextBannerId int `description:"下一个BannerId"`
- ListType string `description:"ABC哪一列"`
- }
- type GetCygxBannerImgRespDetailResp struct {
- Detail *CygxBannerResp
- }
- // 通过ID获取详情
- func GetCygxBannerDetail(banneId int) (item *CygxBannerResp, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT * FROM cygx_banner WHERE banner_id=? `
- err = o.Raw(sql, banneId).QueryRow(&item)
- return
- }
- // 获取某一列,最大的排序值
- func GetCygxBannerDetailByListTypeMaxSort(listType string) (item *CygxBanner, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT * FROM cygx_banner WHERE list_type = ? ORDER BY sort DESC LIMIT 1 `
- err = o.Raw(sql, listType).QueryRow(&item)
- return
- }
- // UpdateCygxBannerRespMulti 批量修改banner排序
- func UpdateCygxBannerMulti(items []*CygxBanner) (err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- p, err := o.Raw(` UPDATE cygx_banner SET sort = ? WHERE banner_id = ? `).Prepare()
- if err != nil {
- return
- }
- defer func() {
- _ = p.Close() // 别忘记关闭 statement
- }()
- for _, v := range items {
- _, err = p.Exec(
- v.Sort,
- v.BannerId)
- if err != nil {
- return
- }
- }
- return
- }
- // 修改是否展示
- func EditCygxBannerStatus(status, banneId int) (err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `UPDATE cygx_banner SET status=?, modify_time=NOW() WHERE banner_id=? `
- _, err = o.Raw(sql, status, banneId).Exec()
- return
- }
- // 获取数量
- func GetCygxBannerCount(condition string, pars []interface{}) (count int, err error) {
- sqlCount := ` SELECT COUNT(1) AS count FROM cygx_banner as art WHERE 1= 1 `
- if condition != "" {
- sqlCount += condition
- }
- o := orm.NewOrmUsingDB("hz_cygx")
- err = o.Raw(sqlCount, pars).QueryRow(&count)
- return
- }
- // 列表
- func GetCygxBannerList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxBannerResp, err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `SELECT * FROM cygx_banner as art WHERE 1= 1 `
- if condition != "" {
- sql += condition
- }
- sql += ` LIMIT ?,? `
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- type CygxBannerListResp struct {
- Paging *paging.PagingItem `description:"分页数据"`
- List []*CygxBannerResp
- }
- // 移动列数并修改排序
- func EditCygxBannerMove(sort, banneId int, listType string) (err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- to, err := o.Begin()
- if err != nil {
- return
- }
- defer func() {
- if err != nil {
- _ = to.Rollback()
- } else {
- _ = to.Commit()
- }
- }()
- //更改上一个节点的排序
- sql := `UPDATE cygx_banner SET sort = sort +1 WHERE status = 1 AND sort <=? AND list_type =? `
- _, err = to.Raw(sql, sort, listType).Exec()
- if err != nil {
- return
- }
- //更改下一个节点的排序
- sql = `UPDATE cygx_banner SET sort = sort +3 WHERE status = 1 AND sort >? AND list_type =? `
- _, err = to.Raw(sql, sort, listType).Exec()
- if err != nil {
- return
- }
- //更改移动对象的排序
- sql = `UPDATE cygx_banner SET sort = ?, list_type =?, modify_time=NOW() WHERE banner_id=? `
- _, err = to.Raw(sql, sort+2, listType, banneId).Exec()
- if err != nil {
- return
- }
- return
- }
- // 移动列数并修改排序
- func UpdateCygxBannerlistType(sort, banneId int, listType string) (err error) {
- o := orm.NewOrmUsingDB("hz_cygx")
- sql := `UPDATE cygx_banner SET sort = ?, list_type =?, modify_time=NOW() WHERE banner_id=? `
- _, err = o.Raw(sql, sort, listType, banneId).Exec()
- return
- }
|