mySessionBase.go 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634
  1. // 业务逻辑服务基类,提供基本的添删改查功能
  2. //
  3. // 修改纪录
  4. // 2016.06.06 版本:1.0 yy 新建账户分表结构的处理
  5. package mydb
  6. import (
  7. "encoding/json"
  8. "fmt"
  9. "reflect"
  10. "strconv"
  11. . "dashoo.cn/utils/db"
  12. // "github.com/go-xorm/xorm"
  13. )
  14. type MySessionBase struct {
  15. SessionBase
  16. }
  17. //
  18. func (s *MySessionBase) GetPagingEntitiesWithOrderBytbl(AccCode string, pageIndex, itemsPerPage int64, order string, asc bool, entitiesPtr interface{}, where ...string) (total int64) {
  19. var err error
  20. var resultsSlice []map[string][]byte
  21. //获取表名
  22. tableName := AccCode + GetTableName(entitiesPtr)
  23. if len(where) == 0 {
  24. if asc {
  25. err = s.Session.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr)
  26. } else {
  27. err = s.Session.Table(tableName).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr)
  28. }
  29. //获取总记录数
  30. sql := "SELECT COUNT(*) AS total FROM " + tableName
  31. resultsSlice, err = s.Session.Query(sql)
  32. LogError(err)
  33. } else {
  34. if asc {
  35. err = s.Session.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Asc(order).Find(entitiesPtr)
  36. } else {
  37. err = s.Session.Table(tableName).Where(where[0]).Limit(int(itemsPerPage), (int(pageIndex)-1)*int(itemsPerPage)).Desc(order).Find(entitiesPtr)
  38. }
  39. sql := "SELECT COUNT(*) AS total FROM " + tableName + " where " + where[0]
  40. resultsSlice, err = s.Session.Query(sql)
  41. }
  42. LogError(err)
  43. if len(resultsSlice) > 0 {
  44. results := resultsSlice[0]
  45. for _, value := range results {
  46. total, err = strconv.ParseInt(string(value), 10, 64)
  47. LogError(err)
  48. break
  49. }
  50. }
  51. return total
  52. }
  53. //样本库分表
  54. func (s *MySessionBase) InsertEntityBytbl(tablename string, entity interface{}) (affected int64, err error) {
  55. affected, err = s.Session.Table(tablename).Insert(entity)
  56. LogError(err)
  57. return
  58. }
  59. func (s *MySessionBase) GetEntityByIdBytbl(tablename string, id interface{}, entityPtr interface{}) (has bool) {
  60. has, err := s.Session.Table(tablename).Id(id).Get(entityPtr)
  61. LogError(err)
  62. return
  63. }
  64. func (s *MySessionBase) GetEntityByWhere(tablename string, where string, entityPtr interface{}) (has bool) {
  65. has, err := s.Session.Table(tablename).Where(where).Get(entityPtr)
  66. LogError(err)
  67. return
  68. }
  69. func (s *MySessionBase) GetEntitysByWhere(tablename string, where string, entityPtr interface{}) {
  70. err := s.Session.Table(tablename).Where(where).Find(entityPtr)
  71. LogError(err)
  72. return
  73. }
  74. func (s *MySessionBase) GetEntitysByOrderbyWhere(tablename, where, orderby string, entityPtr interface{}) {
  75. err := s.Session.Table(tablename).Where(where).OrderBy(orderby).Find(entityPtr)
  76. LogError(err)
  77. return
  78. }
  79. //更新实体写入日志,会自动备份数据
  80. func (s *MySessionBase) UpdateEntityBytbl(tablename string, id interface{}, entity interface{}, cols []string) (err error) {
  81. //session := s.DBE.NewSession()
  82. //defer session.Close()
  83. //err = session.Begin()
  84. LogError(err)
  85. if err != nil {
  86. //s.Session.Rollback()
  87. return err
  88. }
  89. _, err = s.Session.Table(tablename).Id(id).Cols(cols...).Update(entity) //执行更新
  90. LogError(err)
  91. if err != nil {
  92. //s.Session.Rollback()
  93. return err
  94. }
  95. //err = s.Session.Commit()
  96. if err != nil {
  97. return err
  98. }
  99. return
  100. }
  101. //根据条件修改数据,不记录日志
  102. func (s *MySessionBase) UpdateEntityBywheretbl(tablename string, entity interface{}, cols []string, where string) (err error) {
  103. _, err = s.Session.Table(tablename).Where(where).Cols(cols...).Update(entity) //执行更新
  104. return err
  105. }
  106. //更新实体写入日志,会自动备份数据
  107. func (s *MySessionBase) UpdateDonorAndWriteLogBytbl(tablename string, tablelogname string, id interface{}, entity interface{}, entityEmpty interface{}, cols []string, userid, username, opdesc, acccode, sourcename string) (err error) {
  108. s.GetEntityByIdBytbl(tablename, id, entityEmpty)
  109. //session := s.Session.NewSession()
  110. //defer session.Close()
  111. //err = session.Begin()
  112. json, err := json.Marshal(entityEmpty)
  113. LogError(err)
  114. updatem := new(DonorsLog)
  115. //获取表名
  116. objT := reflect.TypeOf(entity)
  117. objT = objT.Elem()
  118. tableName := objT.Name()
  119. updatem.TableName = tableName
  120. updatem.AccCode = acccode
  121. updatem.OpDesc = opdesc
  122. updatem.OpType = 1
  123. updatem.SourceName = sourcename
  124. updatem.RecordId = fmt.Sprintf("%v", id)
  125. updatem.RecordData = string(json)
  126. updatem.CreateUserId = userid
  127. updatem.CreateBy = username
  128. _, err = s.Session.Table(tablelogname).Insert(updatem) //保存到更新历史表
  129. LogError(err)
  130. if err != nil {
  131. //s.Session.Rollback()
  132. return err
  133. }
  134. _, err = s.Session.Table(tablename).Id(id).Cols(cols...).Update(entity) //执行更新
  135. LogError(err)
  136. if err != nil {
  137. //s.Session.Rollback()
  138. return err
  139. }
  140. err = s.Session.Commit()
  141. if err != nil {
  142. return err
  143. }
  144. return
  145. }
  146. //删除实体并写入日志,会自动备份数据,entity为空的表结构
  147. func (s *MySessionBase) DeleteDonorAndWriteLogBytbl(tablename string, tablelogname string, id interface{}, entity interface{}, entityEmpty interface{}, userid, username, opdesc, acccode, sourcename string) (err error) {
  148. has := s.GetEntityByIdBytbl(tablename, id, entity)
  149. if has {
  150. //session := s.Session.NewSession()
  151. //defer session.Close()
  152. //err := session.Begin()
  153. json, err := json.Marshal(entity)
  154. LogError(err)
  155. deleted := new(DonorsLog)
  156. //获取表名
  157. objT := reflect.TypeOf(entity)
  158. objT = objT.Elem()
  159. tableName := objT.Name()
  160. deleted.TableName = tableName
  161. deleted.AccCode = acccode
  162. deleted.OpDesc = opdesc
  163. deleted.OpType = 2
  164. deleted.SourceName = sourcename
  165. deleted.RecordId = fmt.Sprintf("%v", id)
  166. deleted.RecordData = string(json)
  167. deleted.CreateUserId = userid
  168. deleted.CreateBy = username
  169. _, err = s.Session.Table(tablelogname).Insert(deleted) //保存到更新历史表
  170. LogError(err)
  171. if err != nil {
  172. //session.Rollback()
  173. return err
  174. }
  175. _, err = s.Session.Table(tablename).Id(id).Delete(entityEmpty) //执行删除
  176. LogError(err)
  177. if err != nil {
  178. //session.Rollback()
  179. return err
  180. }
  181. //err = session.Commit()
  182. if err != nil {
  183. return err
  184. }
  185. }
  186. return
  187. }
  188. //主信息不存在,首次添加样本
  189. func (s *MySessionBase) InsertSampleAndBuss(tblmain, tbldetail, tblbuss string, entitymain, entitydetail, entitybuss interface{}) (affected int64, err error) {
  190. //session := s.Session.NewSession()
  191. //defer session.Close()
  192. //err = session.Begin()
  193. affected, err = s.Session.Table(tblmain).Insert(entitymain)
  194. LogError(err)
  195. if err != nil {
  196. //session.Rollback()
  197. return 0, err
  198. }
  199. affected, err = s.Session.Table(tbldetail).Insert(entitydetail)
  200. if err != nil {
  201. //session.Rollback()
  202. return 0, err
  203. }
  204. affected, err = s.Session.Table(tblbuss).Insert(entitybuss)
  205. if err != nil {
  206. //session.Rollback()
  207. return 0, err
  208. }
  209. //err = session.Commit()
  210. if err != nil {
  211. return 0, err
  212. }
  213. return
  214. }
  215. //主信息已存在,添加分管信息
  216. func (s *MySessionBase) InsertOtherSampleAndBuss(tblmain, tbldetail, tblbuss string, entitymain, entitydetail, entitybuss interface{},
  217. cols []string, id interface{}, mainentityEmpty interface{}, tablelogname, acccode, userid, username, samplecode string, sampletype int) (affected int64, err error) {
  218. s.GetEntityByIdBytbl(tblmain, id, mainentityEmpty)
  219. //session := s.Session.NewSession()
  220. //defer session.Close()
  221. //err = session.Begin()
  222. json, err := json.Marshal(mainentityEmpty)
  223. LogError(err)
  224. updatem := new(SamplesLog)
  225. //获取表名
  226. objT := reflect.TypeOf(entitymain)
  227. objT = objT.Elem()
  228. tableName := objT.Name()
  229. updatem.TableName = tableName
  230. updatem.AccCode = acccode
  231. updatem.OpType = 3
  232. updatem.SampleCode = samplecode
  233. updatem.SampleType = sampletype
  234. updatem.MId = fmt.Sprintf("%v", id)
  235. updatem.RecordData = string(json)
  236. updatem.CreateUserId = userid
  237. updatem.CreateBy = username
  238. _, err = s.Session.Table(tablelogname).Insert(updatem) //保存到更新历史表
  239. LogError(err)
  240. if err != nil {
  241. //session.Rollback()
  242. return 0, err
  243. }
  244. _, err = s.Session.Table(tblmain).Id(id).Cols(cols...).Update(entitymain) //执行更新
  245. LogError(err)
  246. if err != nil {
  247. //session.Rollback()
  248. return 0, err
  249. }
  250. affected, err = s.Session.Table(tbldetail).Insert(entitydetail)
  251. if err != nil {
  252. //session.Rollback()
  253. return 0, err
  254. }
  255. affected, err = s.Session.Table(tblbuss).Insert(entitybuss)
  256. if err != nil {
  257. //session.Rollback()
  258. return 0, err
  259. }
  260. //err = session.Commit()
  261. if err != nil {
  262. return 0, err
  263. }
  264. return
  265. }
  266. //主信息不存在,首次添加样本 预录入新增,不写入buss
  267. func (s *MySessionBase) InsertSamplePre(tblmain, tbldetail string, entitymain, entitydetail interface{}) (affected int64, err error) {
  268. //session := s.Session.NewSession()
  269. //defer session.Close()
  270. //err = session.Begin()
  271. affected, err = s.Session.Table(tblmain).Insert(entitymain)
  272. LogError(err)
  273. if err != nil {
  274. //session.Rollback()
  275. return 0, err
  276. }
  277. affected, err = s.Session.Table(tbldetail).Insert(entitydetail)
  278. if err != nil {
  279. //session.Rollback()
  280. return 0, err
  281. }
  282. //err = session.Commit()
  283. if err != nil {
  284. return 0, err
  285. }
  286. return
  287. }
  288. //主信息已存在,添加分管信息 预录入新增,不写入buss
  289. func (s *MySessionBase) InsertOtherSamplePre(tblmain, tbldetail string, entitymain, entitydetail interface{},
  290. cols []string, id interface{}, mainentityEmpty interface{}, tablelogname, acccode, userid, username, samplecode string, sampletype int) (affected int64, err error) {
  291. s.GetEntityByIdBytbl(tblmain, id, mainentityEmpty)
  292. //session := s.Session.NewSession()
  293. //defer session.Close()
  294. //err = session.Begin()
  295. json, err := json.Marshal(mainentityEmpty)
  296. LogError(err)
  297. updatem := new(SamplesLog)
  298. //获取表名
  299. objT := reflect.TypeOf(entitymain)
  300. objT = objT.Elem()
  301. tableName := objT.Name()
  302. updatem.TableName = tableName
  303. updatem.AccCode = acccode
  304. updatem.OpType = 3
  305. updatem.SampleCode = samplecode
  306. updatem.SampleType = sampletype
  307. updatem.MId = fmt.Sprintf("%v", id)
  308. updatem.RecordData = string(json)
  309. updatem.CreateUserId = userid
  310. updatem.CreateBy = username
  311. _, err = s.Session.Table(tablelogname).Insert(updatem) //保存到更新历史表
  312. LogError(err)
  313. if err != nil {
  314. //session.Rollback()
  315. return 0, err
  316. }
  317. _, err = s.Session.Table(tblmain).Id(id).Cols(cols...).Update(entitymain) //执行更新
  318. LogError(err)
  319. if err != nil {
  320. //session.Rollback()
  321. return 0, err
  322. }
  323. affected, err = s.Session.Table(tbldetail).Insert(entitydetail)
  324. if err != nil {
  325. //session.Rollback()
  326. return 0, err
  327. }
  328. //err = session.Commit()
  329. if err != nil {
  330. return 0, err
  331. }
  332. return
  333. }
  334. //出入库信息。修改主表和从表,添加buss表
  335. func (s *MySessionBase) UpdateOtherSampleAndBuss(tblmain, tbldetail, tblbuss string, entitymain, entitydetail, entitybuss interface{},
  336. cols, colsdetail []string, id interface{}, mainentityEmpty, detailentityEmpty interface{}, tablelogname, acccode, userid, username, samplecode string) (affected int64, err error) {
  337. s.GetEntityByIdBytbl(tblmain, id, mainentityEmpty)
  338. //session := s.Session.NewSession()
  339. //defer session.Close()
  340. //err = session.Begin()
  341. json, err := json.Marshal(mainentityEmpty)
  342. LogError(err)
  343. updatem := new(SamplesLog)
  344. //获取表名
  345. objT := reflect.TypeOf(entitymain)
  346. objT = objT.Elem()
  347. tableName := objT.Name()
  348. updatem.TableName = tableName
  349. updatem.AccCode = acccode
  350. updatem.OpType = 1
  351. updatem.SampleCode = samplecode
  352. updatem.BarCode = samplecode
  353. updatem.RecordId = fmt.Sprintf("%v", id)
  354. updatem.RecordData = string(json)
  355. updatem.CreateUserId = userid
  356. updatem.CreateBy = username
  357. _, err = s.Session.Table(tablelogname).Insert(updatem) //保存到更新历史表
  358. LogError(err)
  359. if err != nil {
  360. //session.Rollback()
  361. return 0, err
  362. }
  363. _, err = s.Session.Table(tblmain).Id(id).Cols(cols...).Update(entitymain) //执行更新
  364. LogError(err)
  365. if err != nil {
  366. //session.Rollback()
  367. return 0, err
  368. }
  369. s.GetEntityByIdBytbl(tbldetail, id, detailentityEmpty)
  370. affected, err = s.Session.Table(tbldetail).Insert(entitydetail)
  371. if err != nil {
  372. //session.Rollback()
  373. return 0, err
  374. }
  375. affected, err = s.Session.Table(tblbuss).Insert(entitybuss)
  376. if err != nil {
  377. //session.Rollback()
  378. return 0, err
  379. }
  380. //err = session.Commit()
  381. if err != nil {
  382. return 0, err
  383. }
  384. return
  385. }
  386. //更改样本表
  387. func (s *MySessionBase) UpdateSample(tablename string, id interface{}, entity interface{}, cols []string) (err error) {
  388. // fmt.Println("=====")
  389. //session := s.Session.NewSession()
  390. //defer session.Close()
  391. //err = session.Begin()
  392. _, err = s.Session.Table(tablename).Id(id).Cols(cols...).Update(entity) //执行更新
  393. LogError(err)
  394. if err != nil {
  395. //session.Rollback()
  396. return err
  397. }
  398. //err = session.Commit()
  399. if err != nil {
  400. return err
  401. }
  402. return
  403. }
  404. //复苏分装提取信息。修改从表,添加buss表
  405. func (s *MySessionBase) UpdateDetailAndBuss(tbldetail, tblbuss string, id interface{}, entitydetail, entitybuss interface{}, colsdetail []string) (err error) {
  406. //session := s.Session.NewSession()
  407. //defer session.Close()
  408. //err = session.Begin()
  409. _, err = s.Session.Table(tbldetail).Id(id).Cols(colsdetail...).Update(entitydetail) //执行更新
  410. LogError(err)
  411. if err != nil {
  412. //session.Rollback()
  413. return err
  414. }
  415. _, err = s.Session.Table(tblbuss).Insert(entitybuss)
  416. if err != nil {
  417. //session.Rollback()
  418. return err
  419. }
  420. //err = session.Commit()
  421. if err != nil {
  422. return err
  423. }
  424. return
  425. }
  426. //更改样本表并写入日志
  427. func (s *MySessionBase) WriteSampleLog(tablelogname string, id interface{}, mid interface{}, entity interface{}, userid, username, acccode, samplecode, barcode string, sampletype int) (err error) {
  428. //session := s.Session.NewSession()
  429. //defer session.Close()
  430. //err = session.Begin()
  431. json, err := json.Marshal(entity)
  432. LogError(err)
  433. updatem := new(SamplesLog)
  434. //获取表名
  435. updatem.TableName = "SamplesInfoShow"
  436. updatem.AccCode = acccode
  437. updatem.OpType = 1
  438. updatem.SampleCode = samplecode
  439. updatem.BarCode = barcode
  440. updatem.RecordId = fmt.Sprintf("%v", id)
  441. updatem.MId = fmt.Sprintf("%v", mid)
  442. updatem.RecordData = string(json)
  443. updatem.CreateUserId = userid
  444. updatem.CreateBy = username
  445. updatem.SampleType = sampletype
  446. _, err = s.Session.Table(tablelogname).Insert(updatem) //保存到更新历史表
  447. LogError(err)
  448. if err != nil {
  449. //session.Rollback()
  450. return err
  451. }
  452. //err = session.Commit()
  453. if err != nil {
  454. return err
  455. }
  456. return
  457. }
  458. //写入样本删除日志
  459. func (s *MySessionBase) WriteDeleteSampleLog(tablelogname string, id interface{}, mid interface{}, entity interface{}, userid, username, acccode, samplecode, barcode string, sampletype int) (err error) {
  460. //session := s.Session.NewSession()
  461. //defer session.Close()
  462. //err = session.Begin()
  463. json, err := json.Marshal(entity)
  464. LogError(err)
  465. updatem := new(SamplesLog)
  466. //获取表名
  467. updatem.TableName = "SamplesInfoShow"
  468. updatem.AccCode = acccode
  469. updatem.OpType = 2
  470. updatem.SampleCode = samplecode
  471. updatem.BarCode = barcode
  472. updatem.RecordId = fmt.Sprintf("%v", id)
  473. updatem.MId = fmt.Sprintf("%v", mid)
  474. updatem.RecordData = string(json)
  475. updatem.CreateUserId = userid
  476. updatem.CreateBy = username
  477. updatem.SampleType = sampletype
  478. _, err = s.Session.Table(tablelogname).Insert(updatem) //保存到更新历史表
  479. LogError(err)
  480. if err != nil {
  481. //session.Rollback()
  482. return err
  483. }
  484. //err = session.Commit()
  485. if err != nil {
  486. return err
  487. }
  488. return
  489. }
  490. //更新实体写入日志,会自动备份数据
  491. func (s *MySessionBase) UpdateOperationAndWriteLogBytbl(tablename string, tablelogname string, id interface{}, entity interface{}, entityEmpty interface{}, cols []string, userid, username, opdesc, acccode, tabledesc string) (err error) {
  492. s.GetEntityByIdBytbl(tablename, id, entityEmpty)
  493. //session := s.Session.NewSession()
  494. //defer session.Close()
  495. //err = session.Begin()
  496. json, err := json.Marshal(entityEmpty)
  497. LogError(err)
  498. updatem := new(Base_OperationLog)
  499. //获取表名
  500. objT := reflect.TypeOf(entity)
  501. objT = objT.Elem()
  502. tableName := objT.Name()
  503. updatem.TableName = tableName
  504. updatem.AccCode = acccode
  505. updatem.OpDesc = opdesc
  506. updatem.OpTage = 1
  507. updatem.TableDesc = tabledesc
  508. updatem.RecordId = fmt.Sprintf("%v", id)
  509. updatem.RecordData = string(json)
  510. updatem.Createuserid = userid
  511. updatem.Createby = username
  512. _, err = s.Session.Table(tablelogname).Insert(updatem) //保存到更新历史表
  513. LogError(err)
  514. if err != nil {
  515. //session.Rollback()
  516. return err
  517. }
  518. _, err = s.Session.Table(tablename).Id(id).Cols(cols...).Update(entity) //执行更新
  519. LogError(err)
  520. if err != nil {
  521. //session.Rollback()
  522. return err
  523. }
  524. //err = session.Commit()
  525. if err != nil {
  526. return err
  527. }
  528. return
  529. }
  530. //删除实体并写入日志,会自动备份数据,entity为空的表结构
  531. func (s *MySessionBase) DeleteOperationAndWriteLogBytbl(tablename string, tablelogname string, id interface{}, entity interface{}, entityEmpty interface{}, userid, username, opdesc, acccode, tabledesc string) (err error) {
  532. has := s.GetEntityByIdBytbl(tablename, id, entity)
  533. if has {
  534. //session := s.Session.NewSession()
  535. //defer session.Close()
  536. //err := session.Begin()
  537. json, err := json.Marshal(entity)
  538. LogError(err)
  539. deleted := new(Base_OperationLog)
  540. //获取表名
  541. objT := reflect.TypeOf(entity)
  542. objT = objT.Elem()
  543. tableName := objT.Name()
  544. deleted.TableName = tableName
  545. deleted.AccCode = acccode
  546. deleted.OpDesc = opdesc
  547. deleted.OpTage = 2
  548. deleted.TableDesc = tabledesc
  549. deleted.RecordId = fmt.Sprintf("%v", id)
  550. deleted.RecordData = string(json)
  551. deleted.Createuserid = userid
  552. deleted.Createby = username
  553. _, err = s.Session.Table(tablelogname).Insert(deleted) //保存到更新历史表
  554. LogError(err)
  555. if err != nil {
  556. //session.Rollback()
  557. return err
  558. }
  559. _, err = s.Session.Table(tablename).Id(id).Delete(entityEmpty) //执行删除
  560. LogError(err)
  561. if err != nil {
  562. //session.Rollback()
  563. return err
  564. }
  565. //err = session.Commit()
  566. if err != nil {
  567. return err
  568. }
  569. }
  570. return
  571. }
  572. //根据条件删除数据,不记录日志
  573. func (s *MySessionBase) DeleteEntityBytbl(tablename string, where string) (err error) {
  574. if where == "" {
  575. where = "1=2"
  576. }
  577. sql := `delete from ` + tablename + ` where ` + where
  578. _, err = s.Session.Exec(sql)
  579. return
  580. }
  581. func (s *MySessionBase) GetTopNEntities(tablename string, topN int, where string, entitiesPtr interface{}) {
  582. err := s.Session.Table(tablename).Where(where).Limit(topN, 0).Find(entitiesPtr)
  583. LogError(err)
  584. return
  585. }