123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- package model
- import (
- "database/sql/driver"
- "encoding/json"
- "errors"
- "fmt"
- model2 "gas-cylinder-api/common/model"
- "gorm.io/gorm"
- "time"
- )
- const (
- TypeStore = 1 // 销售门店
- TypeTruckEnterprise = 2 // 运输企业
- )
- // 省平台运输企业
- type PROVTruckEnterprise struct {
- SocialCode string `json:"socialCode,omitempty" gorm:"size:32;"` // 社会信用代码
- Name string `json:"name,omitempty" gorm:"size:32;"` // 企业名称
- EnterPhone string `json:"enterPhone,omitempty" gorm:"size:32;"` // 企业联系电话
- Address string `json:"address,omitempty" gorm:"size:255;"` // 联系地址
- LicenceNo string `json:"licenceNo,omitempty" gorm:"size:32;"` // 运管许可证号
- IssueAuthority string `json:"issueAuthority,omitempty" gorm:"size:128;"` // 发证单位
- IssueTime string `json:"issueTime,omitempty" gorm:"size:10;"` // 发证日期
- BusinessScope string `json:"businessScope,omitempty" gorm:"size:255;"` // 经营范围
- QualifyImg string `json:"qualifyImg,omitempty" gorm:"size:255;"` // 资质图片
- QualifyStartTime string `json:"qualifyStartTime,omitempty" gorm:"size:10;"` // 资质开始时间
- QualifyEndTime string `json:"qualifyEndTime,omitempty" gorm:"size:10;"` // 资质截止时间
- LegalPerson string `json:"legalPerson,omitempty" gorm:"size:64;"` // 法人代表
- LegalPersonPhone string `json:"legalPersonPhone,omitempty" gorm:"size:32;"` // 法人代表电话
- SecurityPerson string `json:"securityPerson,omitempty" gorm:"size:64;"` // 安全管理员
- SecurityPersonPhone string `json:"securityPersonPhone,omitempty" gorm:"size:32;"` // 安全管理员电话
- City string `json:"city,omitempty" gorm:"size:6;"` // 所在地市
- Area string `json:"area,omitempty" gorm:"size:6;"` // 所在区/县
- EnterAccount string `json:"enterAccount,omitempty" gorm:"size:36;"` // 账号 (非必填)
- Remark string `json:"remark,omitempty" gorm:"size:255;"` // 备注 (非必填)
- }
- // 省平台销售门店
- type PROVStore struct {
- CmpCode string `json:"cmpCode,omitempty" gorm:"size:4;"` // 所属企业登记编码(社会信用代码)
- Name string `json:"name,omitempty" gorm:"size:128;"` // 门店名称
- Contact string `json:"contact,omitempty" gorm:"size:128;"` // 联系人
- ContactPhone string `json:"contactPhone,omitempty" gorm:"size:32;"` // 联系人电话
- City string `json:"city,omitempty" gorm:"size:6;"` // 所在地市
- District string `json:"district,omitempty" gorm:"size:6;"` // 所在区/县
- Address string `json:"address,omitempty" gorm:"size:128;"` // 地址
- Lng float64 `json:"lng,omitempty" gorm:"size:9;"` // 经度
- Lat float64 `json:"lat,omitempty" gorm:"size:9;"` // 纬度
- CertificateNo string `json:"certificateNo,omitempty" gorm:"size:32;"` // 许可证编号
- Type int `json:"type,omitempty" gorm:"size:4;"` // 经营类别
- BusinessArea string `json:"businessArea,omitempty" gorm:"size:128;"` // 经营区域
- LegalPerson string `json:"legalPerson,omitempty" gorm:"size:64;"` // 法人姓名
- IssueAuthority string `json:"issueAuthority,omitempty" gorm:"size:64;"` // 发证部门
- IssueTime string `json:"issueTime,omitempty" gorm:"size:10;"` // 发证时间
- StartTime string `json:"startTime,omitempty" gorm:"size:10;"` // 开始时间
- ExpireTime string `json:"expireTime,omitempty" gorm:"size:10;"` // 证件有效期
- Description string `json:"description,omitempty" gorm:"size:255;"` // 描述
- }
- type SysDept struct {
- model2.Model
- ParentId int `json:"parentId" gorm:""` // 上级部门
- Path string `json:"path" gorm:"size:255;" swaggerignore:"true"` // 路径
- Name string `json:"name" gorm:"size:128;"` // 部门名称
- Sort int `json:"sort" gorm:"size:4;"` // 排序
- Status int `json:"status" gorm:"size:4;"` // 状态 1-停用 2-正常
- ProvStore PROVStore `json:"store,omitempty" gorm:"type:json;comment:'省平台销售门店信息'"` // 销售门店
- ProvTruckEnterprise PROVTruckEnterprise `json:"truckEnterprise,omitempty" gorm:"type:json;comment:'省平台运输企业信息'"` // 运输企业
- Children []SysDept `json:"children" gorm:"-"`
- UploadTime time.Time `json:"uploadTime" gorm:"size:128;"` // 省平台上传时间
- Type int `json:"type" gorm:"size:4;"` // 1-销售门店 2-运输企业
- CmpCode string `json:"cmpCode" gorm:"size:128;"` // 运输企业在省中心唯一编码
- StoreCode string `json:"storeCode" gorm:"size:128;"` //销售门店在省中心唯一编码
- model2.ControlBy
- model2.ModelTime
- }
- func (SysDept) TableName() string {
- return "sys_dept"
- }
- func (e *SysDept) Generate() model2.ActiveRecord {
- o := *e
- return &o
- }
- func (e *SysDept) GetId() interface{} {
- return e.Id
- }
- func (e PROVTruckEnterprise) Value() (driver.Value, error) {
- d, err := json.Marshal(e)
- return string(d), err
- }
- func (e *PROVTruckEnterprise) Scan(src interface{}) error {
- return json.Unmarshal(src.([]byte), e)
- }
- func (e PROVStore) Value() (driver.Value, error) {
- d, err := json.Marshal(e)
- return string(d), err
- }
- func (e *PROVStore) Scan(src interface{}) error {
- return json.Unmarshal(src.([]byte), e)
- }
- func (e *SysDept) BeforeDelete(_ *gorm.DB) (err error) {
- if e.Id == 1 {
- return errors.New("禁止删除系统部门")
- }
- return
- }
- func GetEnterDeptCacheKey(userId int) string {
- return fmt.Sprintf("enter-dept-%d", userId)
- }
- func GetEnterDeptNameCacheKey(userId int) string {
- return fmt.Sprintf("enter-dept-name-%d", userId)
- }
|