ZenBaseService.kt 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. package com.gxzc.zen.persistence
  2. import com.baomidou.kisso.SSOHelper
  3. import com.baomidou.kisso.security.token.SSOToken
  4. import com.baomidou.mybatisplus.plugins.Page
  5. import com.baomidou.mybatisplus.service.IService
  6. import org.apache.commons.lang3.StringUtils
  7. import org.springframework.beans.factory.annotation.Autowired
  8. import java.util.*
  9. import javax.servlet.http.HttpServletRequest
  10. /**
  11. * Created by mgr on 2018/1/23.
  12. */
  13. //interface ZenBaseService<T> : IService<T>
  14. abstract class ZenBaseService<T: ZenBaseModel,D: ZenBaseMapper<T>> {
  15. @Autowired
  16. protected val dao:D?=null
  17. fun finds(params:Map<String, Any?>): List<Long>?{
  18. return dao?.finds(params)
  19. }
  20. fun findList(params:Map<String, Any?>): List<T>?{
  21. return dao?.findList(params)
  22. }
  23. fun findOne(params:Map<String, Any?>):T?{
  24. val list=findList(params)
  25. if(list!!.size>0)
  26. return list.get(0)
  27. return null
  28. }
  29. fun findID(id:String?):T?{
  30. if(StringUtils.isBlank(id))return null
  31. return dao?.selectById(id)
  32. // return findOne(mapOf("id" to id))
  33. }
  34. fun findIDNum(idnum:Long?):T?{
  35. if(idnum==null)return null
  36. return findOne(mapOf("idnum" to idnum))
  37. }
  38. fun findPage(params: Map<String, Any?>): Page<T> {
  39. val page=getPage(params)
  40. val list=findList(params)
  41. page.setRecords(list).setTotal(list!!.size)
  42. return page
  43. }
  44. fun save(entity:T?):Int?{
  45. return save(entity,null)
  46. }
  47. fun save(entity:T?,req: HttpServletRequest):Int?{
  48. val token= SSOHelper.attrToken<SSOToken>(req)
  49. return save(entity,token?.id)
  50. }
  51. fun save(entity:T?,ren:String?):Int?{
  52. entity?.preHandle()
  53. if(entity?.id==null||entity.id!!<=0) {
  54. entity?.createBy=ren
  55. entity?.createTime= Date()
  56. return dao?.insert(entity) ?: -1
  57. }else {
  58. entity.updateBy=ren
  59. entity.updateTime= Date()
  60. return dao?.updateById(entity) ?: -1
  61. }
  62. }
  63. /** 分页查询 */
  64. fun getPage(params: Map<String, Any?>): Page<T> {
  65. var current = 1
  66. var size = 10
  67. try {
  68. if (params.containsKey("pageNum"))
  69. current = params["pageNum"] as Int
  70. if (params.containsKey("pageSize"))
  71. size = params["pageSize"] as Int
  72. }catch (e:Exception) { }
  73. if (size < 0) {
  74. val page = Page<T>()
  75. page.isAsc = false
  76. return page
  77. }
  78. val page = Page<T>(current, size)
  79. page.isAsc = false
  80. return page
  81. }
  82. }