123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- <?php
- declare(strict_types=1);
- namespace app\store\model;
- use app\common\model\ShopIdentity as ShopIdentityModel;
- use think\facade\Db;
- class ShopIdentity extends ShopIdentityModel
- {
- /**
- * 写入门店身份用户
- */
- public function addIdentityUser($shopId, $data)
- {
- Db::startTrans();
- try {
- // 写入门店身份用户
- if (!empty($data['identity_user'])) {
- // 判断门店身份用户是否重复
- if (count($data['identity_user']) != count(array_unique(array_column($data['identity_user'], 'mobile')))) {
- $this->error = "同一手机号码用户不能有多重身份";
- return false;
- }
- foreach ($data['identity_user'] as $item) {
- // 判断是否已添加过
- if (User::where('mobile', $item['mobile'])->where('shop_id', $shopId)->where('role', $item['role_id'])->find()) {
- $this->error = "该用户已存在,请勿重复添加";
- return false;
- }
- // 厨师不能同时在其他门店担任职务
- if (User::where('mobile', $item['mobile'])->where('role', '>', User::NORMAL_USER)->find()) {
- $this->error = "同一手机号码用户不能有多重身份";
- return false;
- }
- User::createUserByMobile(make_nickname($item['mobile']), $item['mobile'], $shopId, $item['role_id'], $shopId);
- }
- }
- Db::commit();
- return true;
- } catch (\Exception $e) {
- Db::rollback();
- $this->error = $e->getMessage();
- return false;
- }
- }
- /**
- * 写入门店身份配置
- */
- public function addShopIdentity($shopId, $data)
- {
- Db::startTrans();
- try {
- $shopModel = Shops::find($shopId);
- $shopModel->staff_percent = $data['staff_percent'] ?? 0;
- $shopModel->manager_percent = $data['manager_percent'] ?? 0;
- $shopModel->boss_percent = $data['boss_percent'] ?? 0;
- $shopModel->save();
- // 写入门店身份
- if (!empty($data['shop_identity'])) {
- foreach ($data['shop_identity'] as $item) {
- // 判断门店身份是否存在
- $shopIdentity = ShopIdentity::where('shop_id', $shopId)->where('role_id', $item['role_id'])->find();
- if (empty($shopIdentity)) {
- ShopIdentity::create([
- 'shop_id' => $shopId,
- 'role_id' => $item['role_id'],
- 'fc_percent' => $item['fc_percent'],
- ]);
- } else {
- $shopIdentity->fc_percent = $item['fc_percent'];
- $shopIdentity->save();
- }
- }
- }
- Db::commit();
- return true;
- } catch (\Exception $e) {
- Db::rollback();
- $this->error = $e->getMessage();
- return false;
- }
- }
- }
|