1, ]; /** * [getDataList 标签列表] * @AuthorHTL * @param [string] $map [查询条件] * @param [number] $page [当前页数] * @param [number] $limit [每页数量] * @return [array] [description] */ public function getDataList($userId) { $map['l.status'] = 1; $count = db('work_task_lable')->alias('l')->where($map)->count(); if (db('work_lable_order')->where('user_id', $userId)->count() > 0) { $map['o.user_id'] = $userId; $list = db('work_task_lable')->alias('l') ->join('__WORK_LABLE_ORDER__ o', 'o.lable_id = l.lable_id', 'LEFT') ->where($map)->order('o.order', 'asc')->select(); } else { $list = db('work_task_lable')->alias('l')->where($map)->select(); } $data['list'] = !empty($list) ? $list : []; $data['dataCount'] = $count; return $data; } /** * 创建标签 * @author yykun * @param * @return */ public function createData($param) { $this->startTrans(); try { $data['create_time'] = time(); $data['create_user_id'] = $param['create_user_id']; $data['name'] = $param['name']; $data['color'] = $param['color']; $data['status'] = 1; $this->insert($data); $lableId = $this->getLastInsID(); # 更新排序 $this->updateLableOrder($lableId, $param['create_user_id']); $this->commit(); return true; } catch(\Exception $e) { $this->rollback(); $this->error = '添加失败'; return false; } } /** * 更新标签排序 * * @param int $lableId 标签ID * @param int $userId 用户ID * @author fanqi * @since 2021-03-27 */ private function updateLableOrder($lableId, $userId) { $order = 0; $orderList = db('work_lable_order')->where('user_id', $userId)->select(); foreach ($orderList AS $key => $value) { if (!empty($value['order']) && $value['order'] > $order) $order = $value['order']; } if (!empty($order)) db('work_lable_order')->insert([ 'lable_id' => $lableId, 'user_id' => $userId, 'order' => $order + 1 ]); } /** * 编辑标签 * @author yykun * @param * @return */ public function updateDataById($param) { $map['lable_id'] = $param['lable_id']; unset($param['lable_id']); $flag = $this->where($map)->update($param); if ($flag) { return true; } else { $this->error = '操作失败'; return false; } } /** * 删除标签 * @author yykun * @param * @return */ public function delDataById($param) { $map['lable_id'] = $param['lable_id']; if (db('task')->where(['lable_id' => ['like','%,'.$param['lable_id'].',%']])->find()) { $this->error = '标签已被使用,无法删除!'; return false; } $this->startTrans(); try { $ret = $this->where($map)->setField('status',0); if ($ret) { $this->commit(); return true; } else { $this->rollback(); $this->error = '删除失败'; return false; } } catch (\Exception $e){ $this->rollback(); $this->error = '删除失败'; return false; } } /** * 任务标签 * * @param $idstr * @return array|bool|\PDOStatement|string|\think\Collection * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException */ public function getDataByStr($idstr) { $idstr = stringToArray($idstr); $list = Db::name('WorkTaskLable')->field('lable_id,name,color')->where(['lable_id' => ['in',$idstr],'status'=>1])->select(); return $list ? : []; } /** * 任务标签名称 * @author yykun * @param * @return */ public function getNameByIds($ids) { $list = Db::name('WorkTaskLable')->where(['lable_id' => ['in',$ids]])->column('name'); return $list ? : []; } /** * 标签排序 * * @param array $param user_id 用户ID; labelIds 标签ID * @author fanqi * @since 2021-03-27 */ public function updateOrder($param) { if (!empty($param['labelIds'])) { $data = []; foreach ($param['labelIds'] AS $key => $value) { $data[] = [ 'lable_id' => $value, 'user_id' => $param['user_id'], 'order' => $key + 1 ]; } # 先删除在添加 db('work_lable_order')->where('user_id', $param['user_id'])->delete(); db('work_lable_order')->insertAll($data); } } }