123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Description: 项目下任务分类模型
  4. // +----------------------------------------------------------------------
  5. // | Author: yykun
  6. // +----------------------------------------------------------------------
  7. namespace app\work\model;
  8. use app\admin\controller\ApiCommon;
  9. use think\Db;
  10. use think\Model;
  11. use think\Request;
  12. class WorkClass extends Model
  13. {
  14. /**
  15. * 为了数据库的整洁,同时又不影响Model和Controller的名称
  16. * 我们约定每个模块的数据表都加上相同的前缀,比如微信模块用weixin作为数据表前缀
  17. */
  18. protected $name = 'work_task_class';
  19. protected $createTime = 'create_time';
  20. protected $updateTime = false;
  21. protected $autoWriteTimestamp = true;
  22. protected $insert = [
  23. 'status' => 1,
  24. ];
  25. /**
  26. * [getDataList 列表]
  27. * @AuthorHTL
  28. * @param [string] $map [查询条件]
  29. * @param [number] $page [当前页数]
  30. * @param [number] $limit [每页数量]
  31. * @return [array] [description]
  32. */
  33. public function getDataList($work_id='')
  34. {
  35. $map['status'] = 1;
  36. if ($work_id) {
  37. $map['work_id'] = $work_id;
  38. }
  39. $dataCount = $this->where($map)->count();
  40. $list = $this->where($map)->order('order_id asc')->field('class_id,name')->select();
  41. $data = [];
  42. $data['list'] = $list ? : [];
  43. $data['dataCount'] = $dataCount ? : 0;
  44. return $data;
  45. }
  46. /**
  47. * 创建
  48. * @author yykun
  49. * @param
  50. * @return
  51. */
  52. public function createData($param)
  53. {
  54. //获取最大order_id
  55. $max_order_id = $this->where(['work_id' => $param['work_id'],'status' => 1])->max('order_id');
  56. $this->startTrans();
  57. try {
  58. $data['create_time'] = time();
  59. $data['create_user_id'] = $param['create_user_id'];
  60. $data['name'] = $param['name'];
  61. $data['work_id'] = $param['work_id'];
  62. $data['status'] = 1;
  63. $data['order_id'] = $max_order_id ? $max_order_id+1 : 0;
  64. $this->insert($data);
  65. $this->commit();
  66. RecordActionLog( $param['create_user_id'], 'work', 'save',$param['name'], '','','添加了任务分类:'.$param['name']);
  67. return true;
  68. } catch(\Exception $e) {
  69. $this->rollback();
  70. $this->error = '添加失败';
  71. return false;
  72. }
  73. }
  74. /**
  75. * 重命名
  76. * @author yykun
  77. * @param
  78. * @return
  79. */
  80. public function rename($param)
  81. {
  82. $map['class_id'] = $param['class_id'];
  83. $classInfo = db('work_task_class')->where(['class_id' => $param['class_id']])->find();
  84. $flag = $this->where($map)->update(['name' => $param['name']]);
  85. if (!$flag) {
  86. $this->error = '重命名失败';
  87. return false;
  88. }
  89. RecordActionLog($param['create_user_id'], 'work', 'save',$classInfo['name'], '','','编辑了任务分类:'.$classInfo['name']);
  90. return true;
  91. }
  92. /**
  93. * 删除分类 该分类下所有任务删除
  94. * @author yykun
  95. * @param
  96. * @return
  97. */
  98. public function deleteById($param)
  99. {
  100. $map['class_id'] = $param['class_id'];
  101. $this->startTrans();
  102. try {
  103. $taskData = [];
  104. $taskData['ishidden'] = 1;
  105. $taskData['hidden_time'] = time();
  106. $flag = Db::name('Task')->where($map)->update($taskData);
  107. $ret = $this->where($map)->update(['status' => 0]);
  108. if ($ret) {
  109. $this->commit();
  110. return true;
  111. } else {
  112. $this->rollback();
  113. $this->error = '删除失败';
  114. return false;
  115. }
  116. } catch (\Exception $e) {
  117. $this->rollback();
  118. $this->error = '删除失败';
  119. return false;
  120. }
  121. }
  122. }