|
@@ -6,8 +6,14 @@ import (
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
model2 "gas-cylinder-api/common/model"
|
|
|
+ "github.com/gin-gonic/gin"
|
|
|
+ log "gogs.baozhida.cn/zoie/OAuth-core/logger"
|
|
|
+ "gogs.baozhida.cn/zoie/OAuth-core/pkg/jwtauth/user"
|
|
|
+ "strings"
|
|
|
+
|
|
|
+ "gogs.baozhida.cn/zoie/OAuth-core/sdk"
|
|
|
+ "gogs.baozhida.cn/zoie/OAuth-core/sdk/config"
|
|
|
"gorm.io/gorm"
|
|
|
- "time"
|
|
|
)
|
|
|
|
|
|
const (
|
|
@@ -16,64 +22,63 @@ const (
|
|
|
)
|
|
|
|
|
|
// 省平台运输企业
|
|
|
-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 ProvTruckEnterprise struct {
|
|
|
+ SocialCode string `json:"socialCode,omitempty" gorm:"size:32;"` // 社会信用代码
|
|
|
+ Name string `json:"name,omitempty" gorm:"size:32;" vd:"@:len($)>0;msg:'运输企业名称不能为空'"` // 企业名称
|
|
|
+ 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 ProvStore struct {
|
|
|
+ CmpCode string `json:"cmpCode,omitempty" gorm:"size:4;"` // 所属企业登记编码(社会信用代码)
|
|
|
+ Name string `json:"name,omitempty" gorm:"size:128;" vd:"@:len($)>0;msg:'门店名称不能为空'"` // 门店名称
|
|
|
+ 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:'省平台运输企业信息'"` // 运输企业
|
|
|
+ ParentId int `json:"parentId" gorm:""` // 上级部门
|
|
|
+ Path string `json:"path,omitempty" gorm:"size:255;" swaggerignore:"true"` // 路径
|
|
|
+ Name string `json:"name" gorm:"size:128;"` // 部门名称
|
|
|
+ Sort int `json:"sort,omitempty" gorm:"size:4;"` // 排序
|
|
|
+ Status int `json:"status,omitempty" gorm:"size:4;"` // 状态 1-停用 2-正常
|
|
|
+ ProvStore ProvStore `json:"provStore,omitempty" gorm:"type:json;comment:省平台销售门店信息"` // 销售门店
|
|
|
+ ProvTruckEnterprise ProvTruckEnterprise `json:"provTruckEnterprise,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;"` //销售门店在省中心唯一编码
|
|
|
+ UploadTime model2.Time `json:"uploadTime,omitempty" gorm:"size:128;"` // 省平台上传时间
|
|
|
+ Type int `json:"type,omitempty" gorm:"size:4;"` // 1-销售门店 2-运输企业
|
|
|
+ CmpCode string `json:"cmpCode" gorm:"size:128;"` // 省中心唯一编码
|
|
|
model2.ControlBy
|
|
|
model2.ModelTime
|
|
|
}
|
|
@@ -82,6 +87,17 @@ func (SysDept) TableName() string {
|
|
|
return "sys_dept"
|
|
|
}
|
|
|
|
|
|
+type SysDeptOmit struct {
|
|
|
+ Id int `json:"id,omitempty"`
|
|
|
+ Path string `json:"path,omitempty"` // 路径
|
|
|
+ Name string `json:"name,omitempty"` // 部门名称
|
|
|
+ CmpCode string `json:"cmpCode,omitempty"` // 省中心唯一编码
|
|
|
+}
|
|
|
+
|
|
|
+func (SysDeptOmit) TableName() string {
|
|
|
+ return "sys_dept"
|
|
|
+}
|
|
|
+
|
|
|
func (e *SysDept) Generate() model2.ActiveRecord {
|
|
|
o := *e
|
|
|
return &o
|
|
@@ -91,21 +107,21 @@ func (e *SysDept) GetId() interface{} {
|
|
|
return e.Id
|
|
|
}
|
|
|
|
|
|
-func (e PROVTruckEnterprise) Value() (driver.Value, error) {
|
|
|
+func (e ProvTruckEnterprise) Value() (driver.Value, error) {
|
|
|
d, err := json.Marshal(e)
|
|
|
return string(d), err
|
|
|
}
|
|
|
|
|
|
-func (e *PROVTruckEnterprise) Scan(src interface{}) error {
|
|
|
+func (e *ProvTruckEnterprise) Scan(src interface{}) error {
|
|
|
return json.Unmarshal(src.([]byte), e)
|
|
|
}
|
|
|
|
|
|
-func (e PROVStore) Value() (driver.Value, error) {
|
|
|
+func (e ProvStore) Value() (driver.Value, error) {
|
|
|
d, err := json.Marshal(e)
|
|
|
return string(d), err
|
|
|
}
|
|
|
|
|
|
-func (e *PROVStore) Scan(src interface{}) error {
|
|
|
+func (e *ProvStore) Scan(src interface{}) error {
|
|
|
return json.Unmarshal(src.([]byte), e)
|
|
|
}
|
|
|
|
|
@@ -116,9 +132,42 @@ func (e *SysDept) BeforeDelete(_ *gorm.DB) (err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func GetEnterDeptCacheKey(userId int) string {
|
|
|
- return fmt.Sprintf("enter-dept-%d", userId)
|
|
|
+func GetEnterDeptCacheKey(c *gin.Context) string {
|
|
|
+ userId := user.GetUserId(c)
|
|
|
+ tokenId := ""
|
|
|
+ list := strings.Split(c.Request.Header.Get("Authorization"), ".")
|
|
|
+ if len(list) > 0 {
|
|
|
+ tokenId = list[len(list)-1]
|
|
|
+ }
|
|
|
+
|
|
|
+ return fmt.Sprintf("enter-dept-%s-%d", tokenId, userId)
|
|
|
+}
|
|
|
+func GetEnterDeptNameCacheKey(c *gin.Context) string {
|
|
|
+ userId := user.GetUserId(c)
|
|
|
+ tokenId := ""
|
|
|
+ list := strings.Split(c.Request.Header.Get("Authorization"), ".")
|
|
|
+ if len(list) > 0 {
|
|
|
+ tokenId = list[len(list)-1]
|
|
|
+ }
|
|
|
+ return fmt.Sprintf("enter-dept-name-%s-%d", tokenId, userId)
|
|
|
}
|
|
|
-func GetEnterDeptNameCacheKey(userId int) string {
|
|
|
- return fmt.Sprintf("enter-dept-name-%d", userId)
|
|
|
+
|
|
|
+func GetProvCode(id int) (SysDept, error) {
|
|
|
+ var err error
|
|
|
+ var deptModel SysDept
|
|
|
+ //准备db
|
|
|
+ db := sdk.Runtime.GetDbByKey(config.ApplicationConfig.Host)
|
|
|
+ if db == nil {
|
|
|
+ err = errors.New("db not exist")
|
|
|
+ log.Errorf("host[%s]'s %s", err.Error())
|
|
|
+ return deptModel, err
|
|
|
+ }
|
|
|
+ err = db.First(&deptModel, id).Error
|
|
|
+ if err != nil {
|
|
|
+ log.Errorf("db error: %s", err)
|
|
|
+ err = errors.New("获取企业信息失败")
|
|
|
+ return deptModel, err
|
|
|
+ }
|
|
|
+
|
|
|
+ return deptModel, nil
|
|
|
}
|