$this->member_miniapp_id])->where(['uid' => $this->user->id])->find(); $view['title'] = '合伙人'; $view['weconfig'] = WechatMp::jsApiList($this->member_miniapp_id); $view['workerOnStore'] = WorkerStoreOrder::where(['member_miniapp_id' => $this->member_miniapp_id, 'uid' => $this->user->id, 'pay_state' => 0])->where(['uid' => $this->user->id])->find(); $view['member_miniapp_id'] = $this->member_miniapp_id; $view['setting'] = model('AllwinConfig')->getConfig($this->member_miniapp_id); $allWinConfig = AllwinConfig::where(['member_miniapp_id' => $this->member_miniapp_id])->find(); $view['sla'] = json_decode($allWinConfig->sla); $this->view->engine->layout(false); return view()->assign($view); } /** * @return \think\response\Json * @throws \think\exception\DbException * tabar1数据 */ public function myStore(){ $worker = Worker::where(['member_miniapp_id' => $this->member_miniapp_id])->where(['uid' => $this->user->id])->find(); if ($worker) { $list = AllwinStore::where(['member_miniapp_id' => $this->member_miniapp_id])->whereIn('id', $worker->store_ids)->order('create_time desc')->paginate(10, false)->toArray(); if (count($list['data']) == 0) { return enjson(204); } return enjson(200, '', $list); } else { return enjson(204); } } /** * @return \think\response\Json * @throws \think\exception\DbException * tabar3全部帐单 */ public function allBill(int $type = 1){ $condition[] = ['member_miniapp_id', '=', $this->member_miniapp_id]; if ($type) { switch ($type) { case 2: list($start, $end) = Time::yesterday(); break; case 3: list($start, $end) = $this->beforeYesterday(2); break; default: list($start, $end) = Time::today(); break; } $condition[] = ['update_time', '>=', $start]; $condition[] = ['update_time', '<=', $end]; } $list = BankBill::where($condition)->where(['user_id' => $this->user->id])->order('update_time desc')->paginate(10, false)->toArray(); if (count($list['data']) == 0) { return enjson(204); } return enjson(200, '', $list); } /** * @return \think\response\Json * tabar3账单总金额 */ public function allBillSum(){ $worker = Worker::where(['member_miniapp_id' => $this->member_miniapp_id])->where(['uid' => $this->user->id])->find(); $data = [ 'worker' => $worker, 'user' => SystemUser::where(['member_miniapp_id' => $this->member_miniapp_id, 'id' => $this->user->id])->find(), 'storeNum' => AllwinStore::where(['member_miniapp_id' => $this->member_miniapp_id])->where(['is_lock' => 0])->whereIn('id', $worker->store_ids)->count(), 'sum' => BankBill::where(['member_miniapp_id' => $this->member_miniapp_id])->where(['user_id' => $this->user->id])->sum('money'), 'vipNum' => AllwinUser::where('store_id', '>', 0)->whereIn('store_id', $worker->store_ids)->count(), 'bank' => Bank::where(['member_miniapp_id' => $this->member_miniapp_id, 'user_id' => $this->user->id])->find(), ]; return enjson(200, '', $data); } /** * @param int $id * @return \think\response\Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * tabar1修改时所需 */ public function getDataById(int $id = 0){ $store = AllwinStore::where(['member_miniapp_id' => $this->member_miniapp_id, 'id' => $id])->find(); $data = [ 'store' => $store, 'user' => SystemUser::where(['member_miniapp_id' => $this->member_miniapp_id, 'id' => $store->manage_uid])->find() ]; return enjson(200, '', $data); } /** * @param $id * @return \think\response\Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * tabar1单个店铺帐单总计 */ public function getStoreBill(int $id = 0){ $storeStats = StoreStats::where(['member_miniapp_id' => $this->member_miniapp_id, 'store_id' => $id])->find(); return enjson(200, '', $storeStats); } /** * @param $id * @param $type * @return \think\response\Json * @throws \think\exception\DbException * tabar1单个店铺帐单列表 */ public function storeBillList(int $id = 0,int $type = 1){ $condition[] = ['member_miniapp_id', '=', $this->member_miniapp_id]; if ($type) { switch ($type) { case 2: list($start, $end) = Time::yesterday(); break; case 3: list($start, $end) = $this->beforeYesterday(2); break; default: list($start, $end) = Time::today(); break; } $condition[] = ['update_time', '>=', $start]; $condition[] = ['update_time', '<=', $end]; } $list = StoreBill::where($condition)->where(['store_id' => $id])->order('update_time desc')->paginate(10, false)->toArray(); if (count($list['data']) == 0) { return enjson(204); } return enjson(200, '', $list); } /** * @param string $name * @return \think\response\Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\ModelNotFoundException * @throws \think\exception\DbException * tabar2获取用户数据 */ public function getUser($key = ''){ $user = SystemUser::where(['member_miniapp_id' => $this->member_miniapp_id])->where('nickname|phone_uid', 'like','%' . $key . '%','or')->find(); if ($user) { $store = AllwinStore::where(['member_miniapp_id' => $this->member_miniapp_id, 'manage_uid' => $user->id])->find(); if ($store) { return enjson(0, '该店长已绑定其他店铺'); } else { return enjson(200, '', $user); } } else { return enjson(0, '该用户不存在'); } } /** * @return \think\response\Json * 上传图片 */ public function upImg(){ if (request()->isPost()) { $rel = Upload::index(); if ($rel['error'] == 0) { return json(['code' => 200, 'msg' => 'success', 'data' => $rel['url']]); } else { return json(['code' => 204, 'msg' => 'error']); } } } /** * @return \think\response\Json * 修改保存 */ public function edit(){ $worker = Worker::where(['member_miniapp_id' => $this->member_miniapp_id])->where(['uid' => $this->user->id])->find(); $data = [ 'member_miniapp_id' => $this->member_miniapp_id, 'uid' => $this->user->id, 'id' => input('post.id/d'), 'manage_uid' => input('post.manage_uid/d'), 'charges' => input('post.charges/d'), 'work_time' => input('post.work_time/s'), 'name' => input('post.name/s'), 'address' => input('post.address/s'), 'telphone' => input('post.telphone/s'), 'tags' => input('post.tags/s'), 'img' => input('post.img/s') ]; if ($data['id'] > 0) { $store = AllwinStore::where(['member_miniapp_id' => $this->member_miniapp_id,'id' => $data['id']])->find(); if($store){ $workerStoreOrder = WorkerStoreOrder::where(['member_miniapp_id' => $this->member_miniapp_id, 'store_id' => $store->id])->find(); if($workerStoreOrder){ if(isset($workerStoreOrder->pay_state) && $workerStoreOrder->pay_state != 0 && $store->is_lock == 1){ return enjson(0, '该数据禁止修改'); } }else{ return enjson(0, '数据访问错误'); } }else{ return enjson(0, '数据访问错误'); } } if ($data['manage_uid'] == 0) { return enjson(0, '好店店长不存在'); } $validate = $this->validate($data, 'Store.wechatedit'); if (true !== $validate) { return enjson(0, $validate); } if ($data['charges'] > 0 && $data['charges'] <= 30) { return enjson(0, '抱歉~交易服务费禁止小于30‰'); } $store_id = AllwinStore::wechatEdit($data); $workerStoreOrder = WorkerStoreOrder::where(['member_miniapp_id' => $this->member_miniapp_id, 'store_id' => $store_id])->find(); if(!empty($workerStoreOrder) && $workerStoreOrder->pay_state == 1){ return enjson(200,'操作成功',$store_id); } $setting = model('AllwinConfig')->getConfig($this->member_miniapp_id); $order_no = $this->user->invite_code . order_no(); $data['store_id'] = $store_id; $data['order_no'] = $order_no; $data['uid'] = $this->user->id; $data['total_price'] = $setting->workers_on_store; $data['price'] = $setting->workers_discount >0 ? $setting->workers_discount/100 * $setting->workers_on_store : $setting->workers_on_store; $data['member_miniapp_id'] = $this->member_miniapp_id; if(!empty($setting) && isset($setting->workers_on_store) && $setting->workers_on_store > 0){ $data['pay_state'] = 0; $result = WorkerStoreOrder::createOrder($data); $unorder['miniapp_id'] = $this->member_miniapp_id; $unorder['name'] = '开通好店费用'; $unorder['order_no'] = $order_no; $unorder['notify_url'] = api(3,'allwin/Partnershipnotify/onStoreNotify',$this->member_miniapp_id);; $unorder['total_fee'] = $data['price'] * 100; if ($setting->is_psp == 1) { $mid = MchId::getMch(0, $this->member_miniapp_id); $unorder['mchid'] = $mid->mchid; } $unorder['openid'] = $this->user->official_uid; $ispay = WechatPay::orderPay($unorder,true); if ($ispay['code'] == 0) { return json(['code' => 0, 'return_code' => 'FAIL', 'msg' => $ispay['msg']]); } return enjson(206,'操作成功', $ispay['data']); }else{ $data['pay_state'] = 2; $result = WorkerStoreOrder::createOrder($data); return enjson(200,'操作成功',$store_id); } } /** * @param int $day * @return array * 获取前天时间 */ public function beforeYesterday(int $day) { $yesterday = date('d') - $day; return [ mktime(0, 0, 0, date('m'), $yesterday, date('Y')), mktime(23, 59, 59, date('m'), $yesterday, date('Y')) ]; } /** * @param $uid * @return \think\response\Json * 下单 */ public function pay(){ $order_no = $this->user->invite_code . order_no(); $data['id'] = Request::param('id/d'); $data['order_no'] = $order_no; $data['uid'] = $this->user->id; $data['member_miniapp_id'] = $this->member_miniapp_id; $unorder['miniapp_id'] = $this->member_miniapp_id; $unorder['name'] = '开通合伙人费用'; $unorder['order_no'] = $order_no; $unorder['notify_url'] = api(4,'allwin/Partnershipnotify/workerNotify',$this->member_miniapp_id); $setting = model('AllwinConfig')->getConfig($this->member_miniapp_id); $unorder['total_fee'] = $setting->workers_on_amount ? $setting->workers_on_amount * 100 : 100; $data['price'] = $unorder['total_fee']/100; $result = Worker::createOrder($data); if ($setting->is_psp == 1) { $mid = MchId::getMch(0, $this->member_miniapp_id); $unorder['mchid'] = $mid->mchid; } $unorder['openid'] = $this->user->official_uid; $ispay = WechatPay::orderPay($unorder,true); if ($ispay['code'] == 0) { return json(['code' => 0, 'return_code' => 'FAIL', 'msg' => $ispay['msg']]); } return json(['code' => 200, 'msg' => '操作成功', 'data' => $ispay['data']]); } }