sysDeptModel_gen.go 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. // Code generated by goctl. DO NOT EDIT.
  2. // versions:
  3. // goctl version: 1.10.0
  4. package dept
  5. import (
  6. "context"
  7. "database/sql"
  8. "fmt"
  9. "strings"
  10. "github.com/zeromicro/go-zero/core/stores/builder"
  11. "github.com/zeromicro/go-zero/core/stores/cache"
  12. "github.com/zeromicro/go-zero/core/stores/sqlc"
  13. "github.com/zeromicro/go-zero/core/stores/sqlx"
  14. "github.com/zeromicro/go-zero/core/stringx"
  15. )
  16. var (
  17. sysDeptFieldNames = builder.RawFieldNames(&SysDept{})
  18. sysDeptRows = strings.Join(sysDeptFieldNames, ",")
  19. sysDeptRowsExpectAutoSet = strings.Join(stringx.Remove(sysDeptFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
  20. sysDeptRowsWithPlaceHolder = strings.Join(stringx.Remove(sysDeptFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
  21. cacheSysDeptIdPrefix = "cache:sysDept:id:"
  22. )
  23. type (
  24. sysDeptModel interface {
  25. Insert(ctx context.Context, data *SysDept) (sql.Result, error)
  26. InsertWithTx(ctx context.Context, session sqlx.Session, data *SysDept) (sql.Result, error)
  27. BatchInsert(ctx context.Context, dataList []*SysDept) error
  28. BatchInsertWithTx(ctx context.Context, session sqlx.Session, dataList []*SysDept) error
  29. TransactCtx(ctx context.Context, fn func(context.Context, sqlx.Session) error) error
  30. FindOne(ctx context.Context, id int64) (*SysDept, error)
  31. FindOneWithTx(ctx context.Context, session sqlx.Session, id int64) (*SysDept, error)
  32. Update(ctx context.Context, data *SysDept) error
  33. UpdateWithTx(ctx context.Context, session sqlx.Session, data *SysDept) error
  34. BatchUpdate(ctx context.Context, dataList []*SysDept) error
  35. BatchUpdateWithTx(ctx context.Context, session sqlx.Session, dataList []*SysDept) error
  36. Delete(ctx context.Context, id int64) error
  37. DeleteWithTx(ctx context.Context, session sqlx.Session, id int64) error
  38. BatchDelete(ctx context.Context, ids []int64) error
  39. BatchDeleteWithTx(ctx context.Context, session sqlx.Session, ids []int64) error
  40. TableName() string
  41. }
  42. defaultSysDeptModel struct {
  43. sqlc.CachedConn
  44. table string
  45. }
  46. SysDept struct {
  47. Id int64 `db:"id"` // ID
  48. ParentId int64 `db:"parentId"` // 父部门ID,0表示顶级部门
  49. Name string `db:"name"` // 部门名称
  50. Path string `db:"path"` // 层级路径,如 /1/3/7/ 用于快速判断祖先关系
  51. Sort int64 `db:"sort"` // 排序值
  52. DeptType string `db:"deptType"` // 部门类型 NORMAL普通 DEV研发
  53. Remark string `db:"remark"` // 备注
  54. Status int64 `db:"status"` // 状态 1启用 2禁用
  55. CreateTime int64 `db:"createTime"` // 创建时间
  56. UpdateTime int64 `db:"updateTime"` // 修改时间
  57. }
  58. )
  59. func newSysDeptModel(conn sqlx.SqlConn, c cache.CacheConf, cachePrefix string, opts ...cache.Option) *defaultSysDeptModel {
  60. if cachePrefix != "" {
  61. cacheSysDeptIdPrefix = cachePrefix + ":" + "cache:sysDept:id:"
  62. }
  63. return &defaultSysDeptModel{
  64. CachedConn: sqlc.NewConn(conn, c, opts...),
  65. table: "`sys_dept`",
  66. }
  67. }
  68. func (m *defaultSysDeptModel) Delete(ctx context.Context, id int64) error {
  69. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, id)
  70. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  71. query := fmt.Sprintf("DELETE FROM %s WHERE `id` = ?", m.table)
  72. return conn.ExecCtx(ctx, query, id)
  73. }, sysDeptIdKey)
  74. return err
  75. }
  76. func (m *defaultSysDeptModel) DeleteWithTx(ctx context.Context, session sqlx.Session, id int64) error {
  77. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, id)
  78. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  79. query := fmt.Sprintf("DELETE FROM %s WHERE `id` = ?", m.table)
  80. return session.ExecCtx(ctx, query, id)
  81. }, sysDeptIdKey)
  82. return err
  83. }
  84. func (m *defaultSysDeptModel) BatchDelete(ctx context.Context, ids []int64) error {
  85. if len(ids) == 0 {
  86. return nil
  87. }
  88. keys := make([]string, 0)
  89. for _, id := range ids {
  90. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, id)
  91. keys = append(keys, sysDeptIdKey)
  92. }
  93. placeholders := make([]string, 0, len(ids))
  94. args := make([]interface{}, 0, len(ids))
  95. for _, id := range ids {
  96. placeholders = append(placeholders, "?")
  97. args = append(args, id)
  98. }
  99. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  100. query := fmt.Sprintf("DELETE FROM %s WHERE `id` IN (%s)", m.table, strings.Join(placeholders, ","))
  101. return conn.ExecCtx(ctx, query, args...)
  102. }, keys...)
  103. return err
  104. }
  105. func (m *defaultSysDeptModel) BatchDeleteWithTx(ctx context.Context, session sqlx.Session, ids []int64) error {
  106. if len(ids) == 0 {
  107. return nil
  108. }
  109. keys := make([]string, 0)
  110. for _, id := range ids {
  111. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, id)
  112. keys = append(keys, sysDeptIdKey)
  113. }
  114. placeholders := make([]string, 0, len(ids))
  115. args := make([]interface{}, 0, len(ids))
  116. for _, id := range ids {
  117. placeholders = append(placeholders, "?")
  118. args = append(args, id)
  119. }
  120. query := fmt.Sprintf("DELETE FROM %s WHERE `id` IN (%s)", m.table, strings.Join(placeholders, ","))
  121. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  122. return session.ExecCtx(ctx, query, args...)
  123. }, keys...)
  124. return err
  125. }
  126. func (m *defaultSysDeptModel) FindOne(ctx context.Context, id int64) (*SysDept, error) {
  127. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, id)
  128. var resp SysDept
  129. err := m.QueryRowCtx(ctx, &resp, sysDeptIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
  130. query := fmt.Sprintf("SELECT %s FROM %s WHERE `id` = ? LIMIT 1", sysDeptRows, m.table)
  131. return conn.QueryRowCtx(ctx, v, query, id)
  132. })
  133. switch err {
  134. case nil:
  135. return &resp, nil
  136. case sqlc.ErrNotFound:
  137. return nil, ErrNotFound
  138. default:
  139. return nil, err
  140. }
  141. }
  142. func (m *defaultSysDeptModel) FindOneWithTx(ctx context.Context, session sqlx.Session, id int64) (*SysDept, error) {
  143. var resp SysDept
  144. query := fmt.Sprintf("SELECT %s FROM %s WHERE `id` = ? LIMIT 1", sysDeptRows, m.table)
  145. err := session.QueryRowCtx(ctx, &resp, query, id)
  146. switch err {
  147. case nil:
  148. return &resp, nil
  149. case sqlx.ErrNotFound:
  150. return nil, ErrNotFound
  151. default:
  152. return nil, err
  153. }
  154. }
  155. func (m *defaultSysDeptModel) Insert(ctx context.Context, data *SysDept) (sql.Result, error) {
  156. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  157. ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  158. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, sysDeptRowsExpectAutoSet)
  159. return conn.ExecCtx(ctx, query, data.ParentId, data.Name, data.Path, data.Sort, data.DeptType, data.Remark, data.Status, data.CreateTime, data.UpdateTime)
  160. }, sysDeptIdKey)
  161. return ret, err
  162. }
  163. func (m *defaultSysDeptModel) InsertWithTx(ctx context.Context, session sqlx.Session, data *SysDept) (sql.Result, error) {
  164. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  165. ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  166. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, sysDeptRowsExpectAutoSet)
  167. return session.ExecCtx(ctx, query, data.ParentId, data.Name, data.Path, data.Sort, data.DeptType, data.Remark, data.Status, data.CreateTime, data.UpdateTime)
  168. }, sysDeptIdKey)
  169. return ret, err
  170. }
  171. func (m *defaultSysDeptModel) BatchInsert(ctx context.Context, dataList []*SysDept) error {
  172. if len(dataList) == 0 {
  173. return nil
  174. }
  175. keys := make([]string, 0, len(dataList))
  176. valueSets := make([]string, 0, len(dataList))
  177. args := make([]interface{}, 0)
  178. for _, data := range dataList {
  179. valueSets = append(valueSets, "(?, ?, ?, ?, ?, ?, ?, ?, ?)")
  180. args = append(args, data.ParentId, data.Name, data.Path, data.Sort, data.DeptType, data.Remark, data.Status, data.CreateTime, data.UpdateTime)
  181. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  182. keys = append(keys, sysDeptIdKey)
  183. }
  184. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES %s", m.table, sysDeptRowsExpectAutoSet, strings.Join(valueSets, ","))
  185. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  186. return conn.ExecCtx(ctx, query, args...)
  187. }, keys...)
  188. return err
  189. }
  190. func (m *defaultSysDeptModel) BatchInsertWithTx(ctx context.Context, session sqlx.Session, dataList []*SysDept) error {
  191. if len(dataList) == 0 {
  192. return nil
  193. }
  194. keys := make([]string, 0, len(dataList))
  195. valueSets := make([]string, 0, len(dataList))
  196. args := make([]interface{}, 0)
  197. for _, data := range dataList {
  198. valueSets = append(valueSets, "(?, ?, ?, ?, ?, ?, ?, ?, ?)")
  199. args = append(args, data.ParentId, data.Name, data.Path, data.Sort, data.DeptType, data.Remark, data.Status, data.CreateTime, data.UpdateTime)
  200. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  201. keys = append(keys, sysDeptIdKey)
  202. }
  203. query := fmt.Sprintf("INSERT INTO %s (%s) VALUES %s", m.table, sysDeptRowsExpectAutoSet, strings.Join(valueSets, ","))
  204. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  205. return session.ExecCtx(ctx, query, args...)
  206. }, keys...)
  207. return err
  208. }
  209. func (m *defaultSysDeptModel) Update(ctx context.Context, data *SysDept) error {
  210. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  211. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  212. query := fmt.Sprintf("UPDATE %s SET %s WHERE `id` = ?", m.table, sysDeptRowsWithPlaceHolder)
  213. return conn.ExecCtx(ctx, query, data.ParentId, data.Name, data.Path, data.Sort, data.DeptType, data.Remark, data.Status, data.CreateTime, data.UpdateTime, data.Id)
  214. }, sysDeptIdKey)
  215. return err
  216. }
  217. func (m *defaultSysDeptModel) UpdateWithTx(ctx context.Context, session sqlx.Session, data *SysDept) error {
  218. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  219. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  220. query := fmt.Sprintf("UPDATE %s SET %s WHERE `id` = ?", m.table, sysDeptRowsWithPlaceHolder)
  221. return session.ExecCtx(ctx, query, data.ParentId, data.Name, data.Path, data.Sort, data.DeptType, data.Remark, data.Status, data.CreateTime, data.UpdateTime, data.Id)
  222. }, sysDeptIdKey)
  223. return err
  224. }
  225. func (m *defaultSysDeptModel) BatchUpdate(ctx context.Context, dataList []*SysDept) error {
  226. if len(dataList) == 0 {
  227. return nil
  228. }
  229. keys := make([]string, 0)
  230. for _, data := range dataList {
  231. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  232. keys = append(keys, sysDeptIdKey)
  233. }
  234. query, vals := m.buildBatchUpdateQuery(dataList)
  235. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  236. return conn.ExecCtx(ctx, query, vals...)
  237. }, keys...)
  238. return err
  239. }
  240. func (m *defaultSysDeptModel) BatchUpdateWithTx(ctx context.Context, session sqlx.Session, dataList []*SysDept) error {
  241. if len(dataList) == 0 {
  242. return nil
  243. }
  244. keys := make([]string, 0)
  245. for _, data := range dataList {
  246. sysDeptIdKey := fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, data.Id)
  247. keys = append(keys, sysDeptIdKey)
  248. }
  249. query, vals := m.buildBatchUpdateQuery(dataList)
  250. _, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
  251. return session.ExecCtx(ctx, query, vals...)
  252. }, keys...)
  253. return err
  254. }
  255. func (m *defaultSysDeptModel) buildBatchUpdateQuery(dataList []*SysDept) (string, []interface{}) {
  256. fields := strings.Split(strings.ReplaceAll(sysDeptRowsWithPlaceHolder, "=?", ""), ",")
  257. listValues := make([][]interface{}, 0, len(dataList))
  258. for _, data := range dataList {
  259. values := make([]interface{}, 0, len(fields)+1)
  260. values = append(values, data.ParentId, data.Name, data.Path, data.Sort, data.DeptType, data.Remark, data.Status, data.CreateTime, data.UpdateTime, data.Id)
  261. listValues = append(listValues, values)
  262. }
  263. vals := make([]interface{}, 0, len(dataList)*(len(fields)*2+1))
  264. setClauses := make([]string, len(fields))
  265. for i, field := range fields {
  266. caseClauses := make([]string, len(dataList))
  267. for j, item := range dataList {
  268. caseClauses[j] = "WHEN `id` = ? THEN ?"
  269. vals = append(vals, item.Id, listValues[j][i])
  270. }
  271. setClauses[i] = fmt.Sprintf("%s = CASE %s ELSE %s END", field, strings.Join(caseClauses, " "), field)
  272. }
  273. wherePlaceholders := make([]string, len(dataList))
  274. for i, item := range dataList {
  275. wherePlaceholders[i] = "?"
  276. vals = append(vals, item.Id)
  277. }
  278. query := fmt.Sprintf("UPDATE %s SET %s WHERE `id` IN (%s)", m.table, strings.Join(setClauses, ", "), strings.Join(wherePlaceholders, ","))
  279. return query, vals
  280. }
  281. func (m *defaultSysDeptModel) formatPrimary(primary any) string {
  282. return fmt.Sprintf("%s%v", cacheSysDeptIdPrefix, primary)
  283. }
  284. func (m *defaultSysDeptModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error {
  285. query := fmt.Sprintf("SELECT %s FROM %s WHERE `id` = ? LIMIT 1", sysDeptRows, m.table)
  286. return conn.QueryRowCtx(ctx, v, query, primary)
  287. }
  288. func (m *defaultSysDeptModel) TableName() string {
  289. return m.table
  290. }
  291. func (m *defaultSysDeptModel) findListByPrimaryKeys(ctx context.Context, ids []interface{}) ([]*SysDept, error) {
  292. if len(ids) == 0 {
  293. return []*SysDept{}, nil
  294. }
  295. placeholders := make([]string, len(ids))
  296. args := make([]interface{}, len(ids))
  297. for i, id := range ids {
  298. placeholders[i] = "?"
  299. args[i] = id
  300. }
  301. var resp []*SysDept
  302. query := fmt.Sprintf("SELECT %s FROM %s WHERE `id` IN (%s)", sysDeptRows, m.table, strings.Join(placeholders, ","))
  303. err := m.QueryRowsNoCacheCtx(ctx, &resp, query, args...)
  304. if err != nil {
  305. return nil, err
  306. }
  307. return resp, nil
  308. }
  309. func (m *defaultSysDeptModel) getPrimaryKeyValue(data *SysDept) interface{} {
  310. return data.Id
  311. }