|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace Modules\Manage\Http\Controllers;
|
|
|
|
|
|
+use Catch\Exceptions\FailedException;
|
|
|
use Illuminate\Routing\Controller;
|
|
|
use Catch\Base\CatchController;
|
|
|
use Illuminate\Http\Request;
|
|
@@ -23,7 +24,7 @@ class MiniprogramController extends CatchController
|
|
|
use UserTrait;
|
|
|
public function __construct(protected readonly Miniprogram $miniprogram,protected readonly UserHasMiniprograms $userHasMiniprograms)
|
|
|
{
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
const COMPANY_ROLE = 'company';
|
|
@@ -45,13 +46,13 @@ class MiniprogramController extends CatchController
|
|
|
$page_size = $request->input('limit', 15);
|
|
|
$where = [];
|
|
|
if($name){
|
|
|
- $where[] = ['name','like','%'.$name.'%'];
|
|
|
+ $where[] = ['name','like','%'.$name.'%'];
|
|
|
}
|
|
|
if($play_name){
|
|
|
- $where[] = ['play_name','like','%'.$play_name.'%'];
|
|
|
+ $where[] = ['play_name','like','%'.$play_name.'%'];
|
|
|
}
|
|
|
if($company){
|
|
|
- $where[] = ['company','like','%'.$company.'%'];
|
|
|
+ $where[] = ['company','like','%'.$company.'%'];
|
|
|
}
|
|
|
|
|
|
if($type){
|
|
@@ -67,10 +68,11 @@ class MiniprogramController extends CatchController
|
|
|
->select('miniprogram.*')
|
|
|
->paginate($page_size);
|
|
|
}
|
|
|
-
|
|
|
foreach($result as $item){
|
|
|
$item->type_name = MiniprogramType::from($item->type)->name();
|
|
|
$item->status_name = $item->status == 1 ?'启用':'禁用';
|
|
|
+ $item->pay_merchant_name = getProp($item->pay_merchant_info,'name','-');
|
|
|
+ unset($item->pay_merchant_info);
|
|
|
}
|
|
|
return $result;
|
|
|
}
|
|
@@ -85,6 +87,28 @@ class MiniprogramController extends CatchController
|
|
|
{
|
|
|
$validate_result = $request->validated();
|
|
|
$validate_result['remark'] = $request->post('remark','') ?? '';
|
|
|
+ if (getProp($validate_result,'pay_merchant_id',0)){
|
|
|
+ $info = DB::table('pay_merchants')->where('id',$validate_result['pay_merchant_id'])->first();
|
|
|
+ if (empty($info)){
|
|
|
+ throw new FailedException("支付方式不存在");
|
|
|
+ }
|
|
|
+ if ($info->miniprogram_type != $validate_result['type']){
|
|
|
+ throw new FailedException("小程序类型和支付的小程序类型不匹配");
|
|
|
+ }
|
|
|
+ $validate_result['pay_merchant_info'] = [
|
|
|
+ 'pay_merchant_id' => $info->id,
|
|
|
+ 'name' => $info->name,
|
|
|
+ 'pay_type' => $info->pay_type,
|
|
|
+ 'payee_name' => $info->payee_name,
|
|
|
+ 'miniprogram_type' => $info->miniprogram_type,
|
|
|
+ 'pay_appid' => $info->pay_appid,
|
|
|
+ ];
|
|
|
+
|
|
|
+ }else{
|
|
|
+ $validate_result['pay_merchant_id'] = 0;
|
|
|
+ $validate_result['pay_merchant_info'] = [];
|
|
|
+ }
|
|
|
+
|
|
|
return $this->miniprogram->create($validate_result)->toArray();
|
|
|
|
|
|
}
|
|
@@ -113,6 +137,27 @@ class MiniprogramController extends CatchController
|
|
|
if($request->post('remark','')){
|
|
|
$validate_result['remark'] = $request->post('remark','');
|
|
|
}
|
|
|
+ if (getProp($validate_result,'pay_merchant_id',0)){
|
|
|
+ $info = DB::table('pay_merchants')->where('id',$validate_result['pay_merchant_id'])->first();
|
|
|
+ if (empty($info)){
|
|
|
+ throw new FailedException("支付方式不存在");
|
|
|
+ }
|
|
|
+ if ($info->miniprogram_type != $validate_result['type']){
|
|
|
+ throw new FailedException("小程序类型和支付的小程序类型不匹配");
|
|
|
+ }
|
|
|
+ $validate_result['pay_merchant_info'] = [
|
|
|
+ 'pay_merchant_id' => $info->id,
|
|
|
+ 'name' => $info->name,
|
|
|
+ 'pay_type' => $info->pay_type,
|
|
|
+ 'payee_name' => $info->payee_name,
|
|
|
+ 'miniprogram_type' => $info->miniprogram_type,
|
|
|
+ 'pay_appid' => $info->pay_appid,
|
|
|
+ ];
|
|
|
+
|
|
|
+ }else{
|
|
|
+ $validate_result['pay_merchant_id'] = 0;
|
|
|
+ $validate_result['pay_merchant_info'] = [];
|
|
|
+ }
|
|
|
$this->miniprogram->where('id',$id)->update($validate_result);
|
|
|
return [];
|
|
|
}
|
|
@@ -143,10 +188,10 @@ class MiniprogramController extends CatchController
|
|
|
|
|
|
/**
|
|
|
* 绑定小程序和投放公司的关系 或者投放公司把小程序分配给优化师
|
|
|
- * @param [type] $miniprogram_id
|
|
|
+ * @param [type] $miniprogram_id
|
|
|
* @param Request $request uid=2,3,4,5 actison=on|off on:分配,off取消分配
|
|
|
* @return array
|
|
|
- *
|
|
|
+ *
|
|
|
*/
|
|
|
public function allocationStore($miniprogram_id,Request $request)
|
|
|
{
|
|
@@ -202,12 +247,12 @@ class MiniprogramController extends CatchController
|
|
|
* response = [
|
|
|
* 'on'=>[ ['id'=>1,'username'=>'公司1','user_has_miniprogram'=>1],[] ],
|
|
|
* 'off'=>[['id'=>1,'username'=>'公司1','user_has_miniprogram'=>0],[]],
|
|
|
- * 'all'=>[
|
|
|
+ * 'all'=>[
|
|
|
* ['id'=>1,'username'=>'公司1','user_has_miniprogram'=>1],
|
|
|
- * ['id'=>2,'username'=>'公司1','user_has_miniprogram'=>0]
|
|
|
+ * ['id'=>2,'username'=>'公司1','user_has_miniprogram'=>0]
|
|
|
* ]
|
|
|
* ]
|
|
|
- *
|
|
|
+ *
|
|
|
*/
|
|
|
public function getAllocationInfo($miniprogram_id){
|
|
|
$uid = $this->getLoginUser()->id;
|
|
@@ -216,7 +261,7 @@ class MiniprogramController extends CatchController
|
|
|
}else{
|
|
|
$all_company_account = UserService::getOptimizers($uid,['users.username','users.id']);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$result = $all_company_account->map(function ($item,$key) use($miniprogram_id) {
|
|
|
$info = $this->userHasMiniprograms->where('uid',$item->id)->where('miniprogram_id',$miniprogram_id)->where('is_enabled',1)->count();
|
|
|
if($info){
|