eta_business.go 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. package system
  2. import (
  3. "eta/eta_forum_admin/utils"
  4. "fmt"
  5. "github.com/beego/beego/v2/client/orm"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. "strings"
  8. "time"
  9. )
  10. const (
  11. EtaBusinessSigningStatusFirst = iota + 1
  12. EtaBusinessSigningStatusContinue
  13. EtaBusinessSigningStatusTerminate
  14. EtaBusinessSigningStatusWait
  15. )
  16. type EtaBusiness struct {
  17. EtaBusinessId int `orm:"column(eta_business_id);pk"`
  18. BusinessName string `description:"商家名称"`
  19. BusinessCode string `description:"商家编码"`
  20. CodeEncrypt string `description:"商家编码加密"`
  21. CreditCode string `description:"社会统一信用码"`
  22. RegionType string `description:"所属区域:国内;海外"`
  23. Province string `description:"省份"`
  24. City string `description:"城市"`
  25. Address string `description:"商家地址"`
  26. CreateTime time.Time `description:"创建时间"`
  27. ModifyTime time.Time `description:"更新时间"`
  28. }
  29. func (m *EtaBusiness) TableName() string {
  30. return "eta_business"
  31. }
  32. func (m *EtaBusiness) PrimaryId() string {
  33. return EtaBusinessColumns.EtaBusinessId
  34. }
  35. var EtaBusinessColumns = struct {
  36. EtaBusinessId string
  37. BusinessName string
  38. BusinessCode string
  39. CreditCode string
  40. RegionType string
  41. Province string
  42. City string
  43. Address string
  44. CreateTime string
  45. ModifyTime string
  46. }{
  47. EtaBusinessId: "eta_business_id",
  48. BusinessName: "business_name",
  49. BusinessCode: "business_code",
  50. CreditCode: "credit_code",
  51. RegionType: "region_type",
  52. Province: "province",
  53. City: "city",
  54. Address: "address",
  55. CreateTime: "create_time",
  56. ModifyTime: "modify_time",
  57. }
  58. func (m *EtaBusiness) Create() (err error) {
  59. o := orm.NewOrm()
  60. id, err := o.Insert(m)
  61. if err != nil {
  62. return
  63. }
  64. m.EtaBusinessId = int(id)
  65. return
  66. }
  67. func (m *EtaBusiness) CreateMulti(items []*EtaBusiness) (err error) {
  68. if len(items) == 0 {
  69. return
  70. }
  71. o := orm.NewOrm()
  72. _, err = o.InsertMulti(len(items), items)
  73. return
  74. }
  75. func (m *EtaBusiness) Update(cols []string) (err error) {
  76. o := orm.NewOrm()
  77. _, err = o.Update(m, cols...)
  78. return
  79. }
  80. func (m *EtaBusiness) Del() (err error) {
  81. o := orm.NewOrm()
  82. sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  83. _, err = o.Raw(sql, m.EtaBusinessId).Exec()
  84. return
  85. }
  86. func (m *EtaBusiness) GetItemById(id int) (item *EtaBusiness, err error) {
  87. o := orm.NewOrm()
  88. sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
  89. err = o.Raw(sql, id).QueryRow(&item)
  90. return
  91. }
  92. func (m *EtaBusiness) GetItemByCondition(condition string, pars []interface{}) (item *EtaBusiness, err error) {
  93. o := orm.NewOrm()
  94. sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
  95. err = o.Raw(sql, pars).QueryRow(&item)
  96. return
  97. }
  98. func (m *EtaBusiness) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
  99. o := orm.NewOrm()
  100. sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
  101. err = o.Raw(sql, pars).QueryRow(&count)
  102. return
  103. }
  104. func (m *EtaBusiness) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EtaBusiness, err error) {
  105. o := orm.NewOrm()
  106. fields := strings.Join(fieldArr, ",")
  107. if len(fieldArr) == 0 {
  108. fields = `*`
  109. }
  110. order := `ORDER BY create_time DESC`
  111. if orderRule != "" {
  112. order = ` ORDER BY ` + orderRule
  113. }
  114. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
  115. _, err = o.Raw(sql, pars).QueryRows(&items)
  116. return
  117. }
  118. func (m *EtaBusiness) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*EtaBusiness, err error) {
  119. o := orm.NewOrm()
  120. fields := strings.Join(fieldArr, ",")
  121. if len(fieldArr) == 0 {
  122. fields = `*`
  123. }
  124. order := `ORDER BY create_time DESC`
  125. if orderRule != "" {
  126. order = ` ORDER BY ` + orderRule
  127. }
  128. sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
  129. _, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
  130. return
  131. }
  132. // EtaBusinessAddReq 新增商家请求体
  133. type EtaBusinessAddReq struct {
  134. BusinessName string `description:"商家名称"`
  135. CreditCode string `description:"社会统一信用码"`
  136. RegionType string `description:"所属区域:国内;海外"`
  137. Province string `description:"省份"`
  138. City string `description:"城市"`
  139. SellerId int `description:"销售ID"`
  140. SellerName string `description:"销售名称"`
  141. Leader string `description:"决策人"`
  142. IndustryId int `description:"行业ID"`
  143. IndustryName string `description:"行业名称"`
  144. CapitalScale string `description:"资金规模"`
  145. ResearchTeamSize string `description:"研究团队规模"`
  146. UserMax int `description:"用户上限"`
  147. SigningTime string `description:"签约时间"`
  148. ExpiredTime string `description:"到期时间"`
  149. IsCheck bool `description:"是否只做校验而不实际新增(业务操作上基础信息和签约时间分成两个步骤了)"`
  150. }
  151. // EtaBusinessEditReq 编辑商家请求体
  152. type EtaBusinessEditReq struct {
  153. EtaBusinessId int `description:"商家ID"`
  154. Province string `description:"省份"`
  155. City string `description:"城市"`
  156. Leader string `description:"决策人"`
  157. IndustryId int `description:"行业ID"`
  158. IndustryName string `description:"行业名称"`
  159. CapitalScale string `description:"资金规模"`
  160. ResearchTeamSize string `description:"研究团队规模"`
  161. UserMax int `description:"用户上限"`
  162. }
  163. // EtaBusinessSigningReq 商家签约请求体
  164. type EtaBusinessSigningReq struct {
  165. EtaBusinessId int `description:"商家ID"`
  166. SigningTime string `description:"当前合约的签约时间"`
  167. ExpiredTime string `description:"当前合约的到期时间"`
  168. }
  169. // EtaBusinessEnableReq 禁启用商家请求体
  170. type EtaBusinessEnableReq struct {
  171. EtaBusinessId int `description:"商家ID"`
  172. }
  173. // EtaBusinessMoveSellerReq 移动商家销售请求体
  174. type EtaBusinessMoveSellerReq struct {
  175. EtaBusinessId int `description:"商家ID"`
  176. SellerId int `description:"销售ID"`
  177. SellerName string `description:"销售名称"`
  178. }
  179. // CreateEtaBusinessCode 生成ETA商家编码
  180. func CreateEtaBusinessCode() (code string, err error) {
  181. var num int
  182. o := orm.NewOrm()
  183. sql := `SELECT COUNT(1) AS num FROM eta_business WHERE create_time >= ? `
  184. err = o.Raw(sql, time.Now().Format(utils.FormatDate)).QueryRow(&num)
  185. if err != nil {
  186. return
  187. }
  188. code = "E" + time.Now().Format("20060102") + fmt.Sprintf("%02d", num)
  189. return
  190. }
  191. // EtaBusinessListResp 商家分页列表响应体
  192. type EtaBusinessListResp struct {
  193. List []*EtaBusinessItem `description:"商家列表数据"`
  194. Paging *paging.PagingItem `description:"分页数据"`
  195. }
  196. // EtaBusinessItem ETA商家信息
  197. type EtaBusinessItem struct {
  198. EtaBusinessId int
  199. BusinessName string `description:"商家名称"`
  200. BusinessCode string `description:"商家编码"`
  201. CreditCode string `description:"社会统一信用码"`
  202. RegionType string `description:"所属区域:国内;海外"`
  203. Province string `description:"省份"`
  204. City string `description:"城市"`
  205. Address string `description:"商家地址"`
  206. SellerId int `description:"销售ID"`
  207. SellerName string `description:"销售名称"`
  208. Leader string `description:"决策人"`
  209. IndustryId int `description:"行业ID"`
  210. IndustryName string `description:"行业名称"`
  211. CapitalScale string `description:"资金规模"`
  212. ResearchTeamSize string `description:"研究团队规模"`
  213. UserMax int `description:"用户上限"`
  214. SigningStatus int `description:"签约状态:1-首次签约;2-续约中;3-已终止"`
  215. Enable int `description:"状态:0-禁用;1-启用"`
  216. ContractId int `description:"当前合约ID"`
  217. SigningTime string `description:"当前合约的签约时间"`
  218. ExpiredTime string `description:"当前合约的到期时间"`
  219. CreateTime string `description:"创建时间"`
  220. ModifyTime string `description:"更新时间"`
  221. }