123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- package models
- import (
- "eta/eta_mini_api/utils"
- "fmt"
- "github.com/beego/beego/v2/client/orm"
- "strings"
- "time"
- )
- // Users 用户表
- type Users struct {
- UserId int `orm:"column(user_id);pk"`
- RealName string `description:"用户姓名"`
- Mobile string `description:"手机号"`
- AreaCode string `description:"区号"`
- SellerId int `description:"销售ID"`
- SellerName string `description:"销售名称"`
- SysUserId int `description:"操作人ID"`
- SysUserRealName string `description:"操作人姓名"`
- CompanyId int `description:"所属机构ID"`
- CompanyName string `description:"所属机构名称"`
- Status int `description:"用户类型:1-试用用户;2-正式用户"`
- AuthStatus int `description:"权限状态:0-关闭;1-开启"`
- IsRegistered int `description:"注册状态:0-未注册;1-已注册"`
- RegisterTime time.Time `description:"注册时间"`
- Subscribe int `description:"是否关注公众号:0-未关注;1-已关注"`
- LastReadTime time.Time `description:"最后一次阅读时间"`
- ReadTimes int `description:"阅读次数"`
- OpenId string `description:"open_id"`
- UnionId string `description:"用户统一标识"`
- IsDeleted int `description:"删除状态:0-正常;1-已删除"`
- CreateTime time.Time `description:"创建时间"`
- ModifyTime time.Time `description:"修改时间"`
- }
- func (m *Users) TableName() string {
- return "users"
- }
- type UsersCols struct {
- PrimaryId string
- RealName string
- Mobile string
- AreaCode string
- SellerId string
- SellerName string
- SysUserId string
- SysUserRealName string
- CompanyId string
- CompanyName string
- Status string
- AuthStatus string
- IsRegistered string
- RegisterTime string
- Subscribe string
- LastReadTime string
- ReadTimes string
- OpenId string
- UnionId string
- IsDeleted string
- CreateTime string
- ModifyTime string
- }
- func (m *Users) Cols() UsersCols {
- return UsersCols{
- PrimaryId: "user_id",
- RealName: "real_name",
- Mobile: "mobile",
- AreaCode: "area_code",
- SellerId: "seller_id",
- SellerName: "seller_name",
- SysUserId: "sys_user_id",
- SysUserRealName: "sys_user_real_name",
- CompanyId: "company_id",
- CompanyName: "company_name",
- Status: "status",
- AuthStatus: "auth_status",
- IsRegistered: "is_registered",
- RegisterTime: "register_time",
- Subscribe: "subscribe",
- LastReadTime: "last_read_time",
- ReadTimes: "read_times",
- OpenId: "open_id",
- UnionId: "union_id",
- IsDeleted: "is_deleted",
- CreateTime: "create_time",
- ModifyTime: "modify_time",
- }
- }
- func (m *Users) Create() (err error) {
- o := orm.NewOrm()
- id, err := o.Insert(m)
- if err != nil {
- return
- }
- m.UserId = int(id)
- return
- }
- func (m *Users) Update(cols []string) (err error) {
- o := orm.NewOrm()
- _, err = o.Update(m, cols...)
- return
- }
- func (m *Users) GetItemById(id int) (item *Users, err error) {
- o := orm.NewOrm()
- sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = %d AND %s = ? LIMIT 1`, m.TableName(), m.Cols().IsDeleted, RowDeletedDefault, m.Cols().PrimaryId)
- err = o.Raw(sql, id).QueryRow(&item)
- return
- }
- func (m *Users) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *Users, err error) {
- o := orm.NewOrm()
- order := ``
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = %d %s %s LIMIT 1`, m.TableName(), m.Cols().IsDeleted, RowDeletedDefault, condition, order)
- err = o.Raw(sql, pars).QueryRow(&item)
- return
- }
- func (m *Users) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
- o := orm.NewOrm()
- sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE %s = %d %s`, m.TableName(), m.Cols().IsDeleted, RowDeletedDefault, condition)
- err = o.Raw(sql, pars).QueryRow(&count)
- return
- }
- func (m *Users) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*Users, err error) {
- o := orm.NewOrm()
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE %s = %d %s %s`, fields, m.TableName(), m.Cols().IsDeleted, RowDeletedDefault, condition, order)
- _, err = o.Raw(sql, pars).QueryRows(&items)
- return
- }
- func (m *Users) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*Users, err error) {
- o := orm.NewOrm()
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := fmt.Sprintf(`ORDER BY %s DESC`, m.Cols().CreateTime)
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE %s = %d %s %s LIMIT ?,?`, fields, m.TableName(), m.Cols().IsDeleted, RowDeletedDefault, condition, order)
- _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
- return
- }
- // UsersItem 用户信息
- type UsersItem struct {
- UserId int `description:"用户ID"`
- RealName string `description:"用户姓名"`
- Mobile string `description:"手机号"`
- MobileHidden string `description:"手机号(隐藏中间四位)"`
- AreaCode string `description:"区号"`
- SellerName string `description:"销售名称"`
- CompanyName string `description:"所属机构名称"`
- Status int `description:"用户类型:1-试用用户;2-正式用户"`
- AuthStatus int `description:"权限状态:0-关闭;1-开启"`
- IsRegistered int `description:"注册状态:0-未注册;1-已注册"`
- RegisterTime string `description:"注册时间"`
- Subscribe int `description:"是否关注公众号:0-未关注;1-已关注"`
- LastReadTime string `description:"最后一次阅读时间"`
- ReadTimes int `description:"阅读次数"`
- TrialExpired bool `description:"试用到期:true-已到期"`
- CreateTime string `description:"创建时间"`
- ModifyTime string `description:"修改时间"`
- }
- func (m *Users) Format2Item() (item *UsersItem) {
- item = new(UsersItem)
- item.UserId = m.UserId
- item.RealName = m.RealName
- item.Mobile = m.Mobile
- item.MobileHidden = utils.HideMobileMiddle(m.Mobile)
- item.AreaCode = m.AreaCode
- item.SellerName = m.SellerName
- item.CompanyName = m.CompanyName
- item.Status = m.Status
- item.AuthStatus = m.AuthStatus
- item.IsRegistered = m.IsRegistered
- item.RegisterTime = utils.TimeTransferString(utils.FormatDateTime, m.RegisterTime)
- item.Subscribe = m.Subscribe
- item.LastReadTime = utils.TimeTransferString(utils.FormatDateTime, m.LastReadTime)
- item.ReadTimes = m.ReadTimes
- // 试用到期
- if m.Status == UserStatusTrial && !m.RegisterTime.IsZero() {
- expiredTime := m.RegisterTime.Add(3 * 24 * time.Hour)
- if expiredTime.Before(time.Now().Local()) {
- item.TrialExpired = true
- }
- }
- item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, m.CreateTime)
- item.ModifyTime = utils.TimeTransferString(utils.FormatDateTime, m.ModifyTime)
- return
- }
- func (m *Users) UpdateUserReadTimes(userId int) (err error) {
- o := orm.NewOrm()
- sql := fmt.Sprintf(`UPDATE %s SET %s = %s + 1, %s = NOW() WHERE %s = ? LIMIT 1`, m.TableName(), m.Cols().ReadTimes, m.Cols().ReadTimes, m.Cols().LastReadTime, m.Cols().PrimaryId)
- _, err = o.Raw(sql, userId).Exec()
- return
- }
|