diff --git a/app/admin/controller/merchat/MerchantController.php b/app/admin/controller/merchat/MerchantController.php index d555250..688ea9b 100644 --- a/app/admin/controller/merchat/MerchantController.php +++ b/app/admin/controller/merchat/MerchantController.php @@ -91,5 +91,12 @@ class MerchantController extends BaseAdminController return $this->data($result); } - + public function bind_goods(){ + $params = (new MerchantValidate())->post()->goCheck('detail'); + $result = MerchantLogic::bindGoods($params); + if (true === $result) { + return $this->success('绑定成功', [], 1, 1); + } + return $this->fail(MerchantLogic::getError()); + } } \ No newline at end of file diff --git a/app/admin/logic/merchant/MerchantLogic.php b/app/admin/logic/merchant/MerchantLogic.php index b7e7adf..ab3597b 100644 --- a/app/admin/logic/merchant/MerchantLogic.php +++ b/app/admin/logic/merchant/MerchantLogic.php @@ -117,6 +117,35 @@ class MerchantLogic extends BaseLogic return false; } } + + /** + * @notes 商户绑定商品 + * @param array $params + * @return bool + * @author likeadmin + * @date 2024/04/23 16:35 + */ + public static function bindGoods(array $params): bool + { + Db::startTrans(); + try { + $data = []; + foreach ($params['bind_data'] as $v){ + $data[] = [ + 'mer_id' => $params['mer_id'], + 'goods_id' => $v['goods_id'], + 'nums' => $v['nums'] + ]; + } + Db::name('merchant_bind_goods')->insertAll($data); + Db::commit(); + return true; + } catch (\Exception $e) { + Db::rollback(); + self::setError($e->getMessage()); + return false; + } + } /** diff --git a/app/admin/validate/merchant/MerchantValidate.php b/app/admin/validate/merchant/MerchantValidate.php index 0861466..0146896 100644 --- a/app/admin/validate/merchant/MerchantValidate.php +++ b/app/admin/validate/merchant/MerchantValidate.php @@ -4,6 +4,7 @@ namespace app\admin\validate\merchant; use app\common\validate\BaseValidate; +use function Symfony\Component\Translation\t; /** @@ -34,6 +35,7 @@ class MerchantValidate extends BaseValidate 'mer_money' => 'require|float', 'commission_switch' => 'in:0,1', 'financial_type' => 'in:1,2,3', + 'bind_data' => 'require|checkBindData' ]; @@ -57,6 +59,7 @@ class MerchantValidate extends BaseValidate 'mer_money' => '商户余额', 'commission_switch' => '商户手续费单独设置', 'financial_type' => '默认使用类型', + 'bind_data' => '绑定商品数据' ]; @@ -68,7 +71,7 @@ class MerchantValidate extends BaseValidate */ public function sceneAdd() { - return $this->remove('mer_id',true); + return $this->remove('mer_id',true)->remove('bind_data',true); } @@ -79,7 +82,9 @@ class MerchantValidate extends BaseValidate * @date 2024/04/23 16:35 */ public function sceneEdit() - {} + { + return $this->remove('bind_data',true); + } /** @@ -104,5 +109,12 @@ class MerchantValidate extends BaseValidate { return $this->only(['mer_id']); } + + public function checkBindData($value){ + if(!is_array($value)){ + return '数据格式错误'; + } + return true; + } } \ No newline at end of file