// +---------------------------------------------------------------------- declare (strict_types=1); namespace app\services\wechat; use app\dao\wechat\WechatQrcodeCateDao; use app\services\BaseServices; use crmeb\exceptions\AdminException; use crmeb\services\FormBuilder as Form; use think\annotation\Inject; use think\facade\Route as Url; /** * * Class WechatQrcodeCateServices * @package app\services\wechat * @mixin WechatQrcodeCateDao * @method getCateList($where) 分组列表 */ class WechatQrcodeCateServices extends BaseServices { /** * @var WechatQrcodeCateDao */ #[Inject] protected WechatQrcodeCateDao $dao; /** * 添加编辑分组表单 * @param int $id * @return array * @throws \FormBuilder\Exception\FormBuilderException * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public function createForm($id = 0) { $info = []; $title = $id ? '编辑分组' : '添加分组'; if ($id) { $info = $this->dao->get($id); } $f[] = Form::hidden('id', $id); $f[] = Form::input('cate_name', '分组名称:', $info['cate_name'] ?? '')->maxlength(30)->required(); return create_form($title, $f, Url::buildUrl('/app/wechat_qrcode/cate/save'), 'POST'); } /** * 保存数据 * @param $data * @return bool */ public function saveData($data) { $id = $data['id']; $data['add_time'] = time(); if ($id) { unset($data['id']); $res = $this->dao->update($id, $data); } else { $res = $this->dao->save($data); } if (!$res) throw new AdminException('保存失败'); return true; } /** * 删除分组 * @param int $id * @return bool */ public function delCate(int $id = 0) { if (!$id) throw new AdminException('参数错误'); if ($this->dao->get($id)) { $qrcodeServices = app()->make(WechatQrcodeServices::class); if ($qrcodeServices->count(['cate_id' => $id, 'is_del'=>0])) { throw new AdminException('该分组下有渠道码,暂不能删除'); } $res = $this->dao->update($id, ['is_del' => 1]); if (!$res) throw new AdminException('删除失败'); } return true; } }