From c911a4f9519825a6da5db2d229d7b66130230788 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Thu, 23 May 2024 09:57:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/merchat/MerchantController.php | 14 ++ app/admin/logic/merchant/MerchantLogic.php | 188 ++++++++++++------ app/admin/logic/supplier/SupplierLogic.php | 2 +- app/admin/validate/bank/BankValidate.php | 19 +- .../merchant/MerchantController.php | 2 +- app/api/controller/shop/IndexController.php | 4 +- .../service/JgPushService.php | 2 +- app/queue/redis/PushSupplierProductsSend.php | 19 +- 8 files changed, 180 insertions(+), 70 deletions(-) rename app/{admin => common}/service/JgPushService.php (97%) diff --git a/app/admin/controller/merchat/MerchantController.php b/app/admin/controller/merchat/MerchantController.php index f036d75..a021f2f 100644 --- a/app/admin/controller/merchat/MerchantController.php +++ b/app/admin/controller/merchat/MerchantController.php @@ -6,6 +6,7 @@ namespace app\admin\controller\merchat; use app\admin\controller\BaseAdminController; use app\admin\lists\merchant\MerchantLists; use app\admin\logic\merchant\MerchantLogic; +use app\admin\validate\bank\BankValidate; use app\admin\validate\merchant\MerchantValidate; use app\common\model\goods\Goods; use app\common\model\goods\GoodsLabel; @@ -164,6 +165,19 @@ class MerchantController extends BaseAdminController } return $this->fail('绑定失败'); } + /** + * @notes 绑定银行卡 + */ + public function bind_bank() + { + $params = (new BankValidate())->post()->goCheck('BindBank'); + $result = MerchantLogic::bind_bank($params); + if (true === $result) { + return $this->success('设置成功', [], 1, 1); + } + return $this->fail(MerchantLogic::getError()); + } + /** * @notes 绑定商品 diff --git a/app/admin/logic/merchant/MerchantLogic.php b/app/admin/logic/merchant/MerchantLogic.php index 3282885..f8a2063 100644 --- a/app/admin/logic/merchant/MerchantLogic.php +++ b/app/admin/logic/merchant/MerchantLogic.php @@ -3,12 +3,14 @@ namespace app\admin\logic\merchant; use app\admin\logic\user\UserLogic; -use app\admin\service\JgPushService; +use app\common\service\JgPushService; use app\common\enum\OrderEnum; use app\common\model\merchant\Merchant; use app\common\logic\BaseLogic; use app\common\model\financial\FinancialRecord; +use app\common\model\merchant\MerchantBank; use app\common\model\user\User; +use app\common\service\ThinkApi; use think\facade\Db; use support\exception\BusinessException; @@ -33,7 +35,7 @@ class MerchantLogic extends BaseLogic { Db::startTrans(); try { - $res= Merchant::create([ + $res = Merchant::create([ 'category_id' => $params['category_id'], 'type_id' => $params['type_id'] ?? '', 'mer_name' => $params['mer_name'], @@ -60,14 +62,14 @@ class MerchantLogic extends BaseLogic 'financial_alipay' => $params['financial_alipay'] ?? '', 'financial_type' => $params['financial_type'] ?? '', 'data_json' => json_encode([ - 'company_address' => $params['address'] ?? '', - 'company_nickname' => $params['company_nickname'] ?? '', - 'social_credit_code' => $params['social_credit_code'] ?? '', - 'company_name' => $params['company_name'] ?? '', - 'images'=>$params['images'][0] ?? '', + 'company_address' => $params['address'] ?? '', + 'company_nickname' => $params['company_nickname'] ?? '', + 'social_credit_code' => $params['social_credit_code'] ?? '', + 'company_name' => $params['company_name'] ?? '', + 'images' => $params['images'][0] ?? '', ]) ]); - Db::name('user_auth_shop')->insert(['pid'=>$res->id,'user_id'=>0,'shop_uid'=>$params['shop_user_id'],'status'=>0,'type'=>1,'create_time'=>time(),'jg_register_id'=>$params['jg_register_id']]); + Db::name('user_auth_shop')->insert(['pid' => $res->id, 'user_id' => 0, 'shop_uid' => $params['shop_user_id'], 'status' => 0, 'type' => 1, 'create_time' => time(), 'jg_register_id' => $params['jg_register_id']]); Db::commit(); return true; } catch (\Exception $e) { @@ -116,11 +118,11 @@ class MerchantLogic extends BaseLogic 'financial_alipay' => $params['financial_alipay'] ?? '', 'financial_type' => $params['financial_type'] ?? '', 'data_json' => json_encode([ - 'company_address' => $params['address'] ?? '', - 'company_nickname' => $params['company_nickname'] ?? '', - 'social_credit_code' => $params['social_credit_code'] ?? '', - 'company_name' => $params['company_name'] ?? '', - 'images'=>$params['images'][0] ?? '', + 'company_address' => $params['address'] ?? '', + 'company_nickname' => $params['company_nickname'] ?? '', + 'social_credit_code' => $params['social_credit_code'] ?? '', + 'company_name' => $params['company_name'] ?? '', + 'images' => $params['images'][0] ?? '', ]) ]); @@ -141,49 +143,49 @@ class MerchantLogic extends BaseLogic */ public static function status(array $params): bool { - $apply_info = Db::name('user_auth_shop')->where('id',$params['apply_id'])->findOrEmpty(); + $apply_info = Db::name('user_auth_shop')->where('id', $params['apply_id'])->findOrEmpty(); Db::startTrans(); try { - if($params['status']==1){ - $user=[ - 'real_name'=>$params['service_phone'], - 'nickname' => '用户'.$params['service_phone'], - 'account' => $params['service_phone'], - 'mobile' => $params['service_phone'], - 'password' => $params['service_phone'], - 'sex' => 0, - 'is_disable' => 0, - 'user_money' => 0 - - ]; - $res1=UserLogic::add($user); - if($res1==false){ - Db::rollback(); - throw new BusinessException(UserLogic::getError(), 0); - } - $data=[ - 'user_id'=>$res1['id'], - 'status'=>1, - 'apply_status'=>1, - 'pid'=>$params['mer_id'] + if ($params['status'] == 1) { + $user = [ + 'real_name' => $params['service_phone'], + 'nickname' => '用户' . $params['service_phone'], + 'account' => $params['service_phone'], + 'mobile' => $params['service_phone'], + 'password' => $params['service_phone'], + 'sex' => 0, + 'is_disable' => 0, + 'user_money' => 0 + ]; - Merchant::where('mer_id',$params['mer_id'])->update(['status'=>1,'uid'=>$res1['id']]); - Db::name('user_auth_shop')->where('id',$params['apply_id'])->update($data); - } - if($params['status']==0){ - $data=[ - 'mark'=>$params['mark']??'', - 'apply_status'=>-1 + $res1 = UserLogic::add($user); + if ($res1 == false) { + Db::rollback(); + throw new BusinessException(UserLogic::getError(), 0); + } + $data = [ + 'user_id' => $res1['id'], + 'status' => 1, + 'apply_status' => 1, + 'pid' => $params['mer_id'] ]; - Merchant::where('mer_id', $params['mer_id'])->update([ - 'status' => 0, - ]); - Db::name('user_auth_shop')->where('id',$params['apply_id'])->update($data); + Merchant::where('mer_id', $params['mer_id'])->update(['status' => 1, 'uid' => $res1['id']]); + Db::name('user_auth_shop')->where('id', $params['apply_id'])->update($data); + } + if ($params['status'] == 0) { + $data = [ + 'mark' => $params['mark'] ?? '', + 'apply_status' => -1 + ]; + Merchant::where('mer_id', $params['mer_id'])->update([ + 'status' => 0, + ]); + Db::name('user_auth_shop')->where('id', $params['apply_id'])->update($data); + } + + if (!empty($apply_info['jg_register_id'])) { + (new JgPushService())->sendMsg($apply_info['jg_register_id'], '您的经销入驻请求审核' . ($params['status'] == 1 ? '通过' : '被拒绝'), '/pages/bindDistribution/index'); } - - if(!empty($apply_info['jg_register_id'])){ - (new JgPushService()) -> sendMsg($apply_info['jg_register_id'],'您的经销入驻请求审核'.($params['status']==1?'通过':'被拒绝'),'/pages/bindDistribution/index'); - } Db::commit(); return true; } catch (\Exception $e) { @@ -192,18 +194,19 @@ class MerchantLogic extends BaseLogic return false; } } - /** + /** * @notes 设置余额 */ - public static function set_money($id,$set_money,$type=1){ + public static function set_money($id, $set_money, $type = 1) + { Db::startTrans(); try { - if($type==1){ - Merchant::where('mer_id',$id)->inc('mer_money',$set_money)->update(); + if ($type == 1) { + Merchant::where('mer_id', $id)->inc('mer_money', $set_money)->update(); $record = [ 'financial_record_sn' => time(), 'order_id' => 0, - 'number_sn' =>getNewOrderId('XTCZ') , + 'number_sn' => getNewOrderId('XTCZ'), 'user_id' => 0, 'financial_type' => OrderEnum::SYSTEM_SET, 'financial_pm' => OrderEnum::INCOME, @@ -213,18 +216,18 @@ class MerchantLogic extends BaseLogic 'mer_id' => $id, ]; FinancialRecord::create($record); - }else{ - $money=Merchant::where('mer_id',$id)->value('mer_money'); - if($money<$set_money){ + } else { + $money = Merchant::where('mer_id', $id)->value('mer_money'); + if ($money < $set_money) { Db::rollback(); self::setError('余额不足'); return false; } - Merchant::where('mer_id',$id)->dec('mer_money',$set_money)->update(); + Merchant::where('mer_id', $id)->dec('mer_money', $set_money)->update(); $record = [ 'financial_record_sn' => time(), 'order_id' => 0, - 'number_sn' =>getNewOrderId('XTJS') , + 'number_sn' => getNewOrderId('XTJS'), 'user_id' => 0, 'financial_type' => OrderEnum::SYSTEM_SET, 'financial_pm' => OrderEnum::EXPENDITURE, @@ -275,7 +278,68 @@ class MerchantLogic extends BaseLogic return false; } } - + /** + * @notes 商户绑定银行卡 + * @param array $params + * @return bool + * @date 2024/04/23 16:35 + */ + public static function bind_bank(array $params): bool + { + $merchant = Merchant::where('mer_id', $params['mer_id'])->findOrEmpty(); + $user=User::where('id',$merchant['uid'])->field('real_name','mobile')->find(); + if (!$merchant) { + self::setError('商户不存在'); + return false; + } + if(!$user){ + self::setError('没有绑定用户'); + return false; + } + if ($params['is_own'] == 0) { + $info = [ + 'name' => $params['name'], + 'idNum' => $params['id_card'], + 'cardNo' => $params['bank_code'], + 'mobile' => $user['mobile'], + ]; + $thinkApi = new ThinkApi(); + $result = $thinkApi->request('bankcard/auth', $info); + if ($result['code'] != 0 || empty($result['data'])) { + self::setError($result['message']); + return false; + } + //认证结果。01:一致 02:不一致 03:认证不确定 04:认证失败。01、02收费 + if ($result['data']['result'] == 4 || $result['data']['result'] == 2) { + self::setError('认证失败,请检查姓名,身份证,银行卡,银行预留手机号码是否正确'); + return false; + } + } + Db::startTrans(); + try { + $save_data = [ + 'mer_id' => $params['mer_id'], + 'name' => $params['name'], + 'bank_id' => $params['bank_id'], + 'bank_code' => $params['bank_code'], + 'bank_branch' => $params['bank_branch'], + 'phone' => $user['mobile'], + 'id_card' => $params['id_card'] ?? '', + 'financial_img' => $params['financial_img'], + 'is_own' => $params['is_own'], + 'is_check' => 1, + 'create_time' => time() + ]; + //写入数据 + (new MerchantBank)->save($save_data); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } /** * @notes 删除商户列表 diff --git a/app/admin/logic/supplier/SupplierLogic.php b/app/admin/logic/supplier/SupplierLogic.php index 7f22435..90c2841 100644 --- a/app/admin/logic/supplier/SupplierLogic.php +++ b/app/admin/logic/supplier/SupplierLogic.php @@ -3,7 +3,7 @@ namespace app\admin\logic\supplier; use app\admin\logic\user\UserLogic; -use app\admin\service\JgPushService; +use app\common\service\JgPushService; use app\common\enum\OrderEnum; use app\common\model\goods\GoodsLabel; use app\common\model\merchant\MerchantBank; diff --git a/app/admin/validate/bank/BankValidate.php b/app/admin/validate/bank/BankValidate.php index 38eab2d..be74b34 100644 --- a/app/admin/validate/bank/BankValidate.php +++ b/app/admin/validate/bank/BankValidate.php @@ -22,6 +22,10 @@ class BankValidate extends BaseValidate 'id' => 'require', 'name' => 'require', 'image' => 'require', + 'bank_id' => 'require', + 'bank_code' => 'require', + 'bank_branch' => 'require', + 'financial_img' => 'require', ]; @@ -33,9 +37,22 @@ class BankValidate extends BaseValidate 'id' => 'id', 'name' => '银行名称', 'image' => '银行图片', + 'bank_id' => '开户银行', + 'bank_code' => '银行账号', + 'bank_branch' => '开户网点', + 'financial_img' => '图片证明', ]; - + /** + * @notes 状态场景 + * @return MerchantValidate + * @author likeadmin + * @date 2024/04/23 16:35 + */ + public function sceneBindBank() + { + return $this->only(['name', 'bank_code','bank_id','bank_branch','financial_img']); + } /** * @notes 添加场景 * @return BankValidate diff --git a/app/api/controller/merchant/MerchantController.php b/app/api/controller/merchant/MerchantController.php index 0ac5144..ec49a1a 100644 --- a/app/api/controller/merchant/MerchantController.php +++ b/app/api/controller/merchant/MerchantController.php @@ -56,7 +56,7 @@ class MerchantController extends BaseApiController } /** - * 提现信息 + * 提现总次数和金额 */ public function taking_info() { diff --git a/app/api/controller/shop/IndexController.php b/app/api/controller/shop/IndexController.php index bb6918c..600be4b 100644 --- a/app/api/controller/shop/IndexController.php +++ b/app/api/controller/shop/IndexController.php @@ -24,7 +24,7 @@ class IndexController extends BaseApiController{ } $res=ShopLogic::auth($token,$jg_register_id); if(ShopLogic::hasError()||$res==false){ - return $this->fail('没有授权信息'); + return $this->success('没有授权信息'); }else{ return $this->success('ok',['token'=>$res]); } @@ -112,7 +112,7 @@ class IndexController extends BaseApiController{ } } } - return $this->fail('没有授权信息'); + return $this->success('没有授权信息'); } /** * 申请详情 diff --git a/app/admin/service/JgPushService.php b/app/common/service/JgPushService.php similarity index 97% rename from app/admin/service/JgPushService.php rename to app/common/service/JgPushService.php index a8ebad2..15c5e0b 100644 --- a/app/admin/service/JgPushService.php +++ b/app/common/service/JgPushService.php @@ -1,6 +1,6 @@ $arr) { OpurchaseclassLogic::createSupplierGoods($arr); } + $supplier_id_arr=OpurchaseGoodsOffer::where('order',$order_id)->whereDay('create_time')->column('supplier_id'); + if($supplier_id_arr){ + $supplier_id_arr=array_unique($supplier_id_arr); + foreach($supplier_id_arr as $key => $supplier_id){ + $jg_register_id=Db::name('user_auth_shop')-> where('pid',$supplier_id)->where('type',2)->value('jg_register_id'); + if($jg_register_id){ + (new JgPushService())->sendMsg($jg_register_id, '您有一笔新的报价清单,请及时处理', '/pages/quote/list',2); + + } + + } + } } public function onConsumeFailure(\Throwable $e, $package) {