// +---------------------------------------------------------------------- namespace app\common\repositories\user; use app\common\model\user\UserPartner; use app\common\repositories\BaseRepository; use app\common\dao\user\UserPartnerDao as dao; use app\common\dao\system\admin\PartnerDao; use FormBuilder\Factory\Elm; use think\facade\Db; use think\facade\Route; /** * Class UserAddressRepository * @package app\common\repositories\user * @day 2020/6/3 * @mixin dao */ class UserPartnerRepository extends BaseRepository { /** * @var dao */ protected $dao; /** * UserAddressRepository constructor. * @param dao $dao */ public function __construct(dao $dao) { $this->dao = $dao; } /** * @param int $id * @param int $uid * @return bool * @author Qinii */ public function fieldExists(int $id, int $uid) { return $this->dao->userFieldExists($this->dao->getPk(), $id, $uid); } /** * @param $uid * @param $page * @param $limit * @return array * @author Qinii */ public function getList($uid) { $list = $this->dao->getAll($uid)->order('id desc')->select(); return compact('list'); } public function changePartnerForm($uid) { /** @var UserLabelRepository $make */ $list = $this->dao->getAll($uid)->column('partner_id') ?? []; $data = ['partner_id' => $list, 'uid' => $uid]; $url = 'sys/user/partner/' . $uid; $res = Elm::createForm($url, [ Elm::input('uid', '用户 ID', '')->disabled(true)->required(true), Elm::selectMultiple('partner_id', '用户合作人角色')->options(function () { $partnerForm = new PartnerDao(); $data = $partnerForm->getAll(); foreach ($data as $value => $label) { $name = (string)$label['id']; $value = $label['name']; $options[] = compact('value', 'name'); } return $options; }), ])->setTitle('编辑合作人角色')->formData($data); return $res; } public function editPartner(int $uid, array $user_role_id = []) { return Db::transaction(function () use ($uid, $user_role_id) { //先清空 UserPartner::getInstance()->where('uid', $uid)->update(['partner_id' => '']); //再更新 if (!empty($user_role_id)) { foreach ($user_role_id as $k => $v) { UserPartner::getInstance()->where('id', '=', $v) ->update(['uid' => $uid, 'create_time' => date("Y-m-d H:i:s")]); } } }); } }