|
|
@@ -0,0 +1,673 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+namespace app\controller;
|
|
|
+
|
|
|
+
|
|
|
+use app\business\GoodsBusiness;
|
|
|
+use app\business\StreamBusiness;
|
|
|
+use Illuminate\Support\Arr;
|
|
|
+use Respect\Validation\Validator;
|
|
|
+use support\Db;
|
|
|
+use support\Request;
|
|
|
+use hg\apidoc\annotation as Apidoc;
|
|
|
+use function Symfony\Component\String\s;
|
|
|
+
|
|
|
+#[Apidoc\Title("项目管理")]
|
|
|
+#[Apidoc\Group("Goods")]
|
|
|
+#[Apidoc\Sort(3)]
|
|
|
+class GoodsController
|
|
|
+{
|
|
|
+ #[Apidoc\Title("列表")]
|
|
|
+ #[Apidoc\Url("api/goods/charity.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Param("page", type: "int", require: true, desc: "页面", mock: 1)]
|
|
|
+ #[Apidoc\Param("limit", type: "int", require: true, desc: "输出条数", mock: 10)]
|
|
|
+ #[Apidoc\Param("type", type: "int", require: true, desc: "类型:1=中国供销", mock: 1)]
|
|
|
+ #[Apidoc\Returned(name: "id", type: "int", require: true, desc: '产品ID', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '名称', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "pay_price", type: "string", require: true, desc: '支付金额', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "bonus", type: "string", require: true, desc: '每日分红', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "balance", type: "string", require: true, desc: '股权数量', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "gift_money", type: "string", require: true, desc: '股权价值', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "daily_limit", type: "string", require: true, desc: '日限额', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "monthly_limit", type: "string", require: true, desc: '月限额', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "is_buy", type: "string", require: true, desc: '是否认购专属股权:true false', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "is_apply_for", type: "string", require: true, desc: '是否已经申请:true=正在邮寄 false=申请邮寄 ', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "img", type: "string", require: true, desc: '图片', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "total_num", type: "int", require: true, desc: '总数', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "num", type: "int", require: true, desc: '剩余数量', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "is_restore", type: "int", require: true, desc: '是否恢复过,0=未恢复,1=已恢复', default: '')]
|
|
|
+ public function charity(Request $request)
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+
|
|
|
+ $data = Db::table('wa_goods')
|
|
|
+ ->where(function ($query) use ($param) {
|
|
|
+ $query->where('state', 1);
|
|
|
+ if (Arr::get($param, 'type')) {
|
|
|
+ $query->where('type', $param['type']);
|
|
|
+ } else {
|
|
|
+ $query->where('type', 1);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ->orderBy('sort')
|
|
|
+ ->paginate(Arr::get($param, 'limit', 10))
|
|
|
+ ->toArray();
|
|
|
+ foreach ($data['data'] as $k => $v) {
|
|
|
+ $data['data'][$k]->img = imageToBase64($v->img);
|
|
|
+ $is_buy = Db::table('wa_payorder')
|
|
|
+ ->where('user_id', $request->user_data['id'])
|
|
|
+ ->where('is_pay', 2)
|
|
|
+ ->where('goods_id', $v->id)
|
|
|
+ ->exists();
|
|
|
+ $data['data'][$k]->is_buy = $is_buy ? true : false;
|
|
|
+ $is_apply_for = Db::table('wa_sign_record')
|
|
|
+ ->where('uid', $request->user_data['id'])
|
|
|
+ ->where('goods_id', $v->id)
|
|
|
+ ->exists();
|
|
|
+ $is_record = Db::table('wa_sign_record')
|
|
|
+ ->where('uid', $request->user_data['id'])
|
|
|
+ ->where('goods_id', $v->id)
|
|
|
+ ->where('is_restore', 1)
|
|
|
+ ->first();
|
|
|
+ if ($is_record) {
|
|
|
+ $data['data'][$k]->is_restore = 1;
|
|
|
+ } else {
|
|
|
+ $data['data'][$k]->is_restore = 0;
|
|
|
+ }
|
|
|
+ $data['data'][$k]->is_apply_for = $is_apply_for ? true : false;
|
|
|
+
|
|
|
+ }
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ return success($data);
|
|
|
+ }
|
|
|
+
|
|
|
+ #[Apidoc\Title("支付")]
|
|
|
+ #[Apidoc\Url("api/goods/charity_buy.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param(name: "id", type: "int", require: true, desc: '产品ID', default: '')]
|
|
|
+ #[Apidoc\Param(name: "pay_characteristic", type: "int", require: true, desc: '支付通道标识', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "num", type: "int", require: true, desc: '购买数量:默认1', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "name", type: "string", require: true, desc: '姓名', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "mobile", type: "string", require: true, desc: '手机号', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "number", type: "string", require: true, desc: '身份证', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "address", type: "string", require: true, desc: '地址', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "restore_array", type: "string", require: true, desc: '恢复银行卡ID字符串,逗号隔开', default: '1')]
|
|
|
+ #[Apidoc\Returned(name: "type", type: "int", require: true, desc: '类型 1直接购买 2支付通道', default: 2)]
|
|
|
+ #[Apidoc\Returned(name: "url", type: "string", require: true, desc: '支付地址', default: 'https://www.baidu.com/')]
|
|
|
+ #[Apidoc\Returned(name: "payOrderId", type: "string", require: true, desc: '订单号', default: '111')]
|
|
|
+ public function charityBuy(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+ $param['url'] = $request->header('origin');
|
|
|
+ $param['user_data'] = $request->user_data;
|
|
|
+ $param['num'] = Arr::get($param, 'num', 1);
|
|
|
+ Validator::input($param, [
|
|
|
+ 'id' => Validator::notEmpty()->intType()->setName('产品标识'),
|
|
|
+ 'pay_characteristic' => Validator::notEmpty()->setName('支付标识'),
|
|
|
+ ]);
|
|
|
+ $goods = Db::table('wa_goods')->where('id', $param['id'])->first();
|
|
|
+ if (empty($goods)) {
|
|
|
+ throw new \Exception('产品不存在!');
|
|
|
+ }
|
|
|
+ if ($goods->type == 4) {
|
|
|
+ Validator::input($param, [
|
|
|
+ 'restore_array' => Validator::notEmpty()->setName('未选择对应恢复银行卡'),
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+
|
|
|
+ $arr = GoodsBusiness::buyType1($param);
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success($arr, '购买成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ #[Apidoc\Title("上传支付凭证")]
|
|
|
+ #[Apidoc\Url("api/goods/voucher_add.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param("pay_order_id", type: "int", require: true, desc: "订单ID", mock: 1)]
|
|
|
+ #[Apidoc\Param("img", type: "int", require: true, desc: "凭证图片", mock: 10)]
|
|
|
+ public function voucher_add(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+
|
|
|
+ $param = Arr::only($request->all(), ['pay_order_id', 'img']);
|
|
|
+ Validator::input($param, [
|
|
|
+ 'pay_order_id' => Validator::notEmpty()->setName('订单ID'),
|
|
|
+ 'img' => Validator::notEmpty()->setName('图片'),
|
|
|
+ ]);
|
|
|
+ $base64Image = $param['img']; // 获取Base64字符串
|
|
|
+ $imageData = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $base64Image)); // 移除数据URL的前缀并解码
|
|
|
+ $imageName = $request->user_data['id'] . time() . '.png'; // 生成一个唯一的文件名
|
|
|
+
|
|
|
+ $data = '/upload/img/' . date('Ymd');
|
|
|
+ $relative_dir = ltrim($data, '\\/');
|
|
|
+ $admin_public_path = rtrim(config('app.public_path', ''), '\\/');
|
|
|
+ $base_dir = $admin_public_path ? $admin_public_path . DIRECTORY_SEPARATOR : base_path() . '/plugin/admin/public/';
|
|
|
+ $full_dir = $base_dir . $relative_dir;
|
|
|
+ if (!is_dir($full_dir)) {
|
|
|
+ mkdir($full_dir, 0777, true);
|
|
|
+ }
|
|
|
+ $imagePath = '/upload/img/' . date('Ymd') . '/' . $imageName; // 指定保存路径和文件名
|
|
|
+
|
|
|
+ // 保存图片到服务器
|
|
|
+ file_put_contents($base_dir . $imagePath, $imageData);
|
|
|
+
|
|
|
+ $orderdata = Db::table('wa_payorder')->where('id', $param['pay_order_id'])->first();
|
|
|
+ if (empty($orderdata)) {
|
|
|
+ throw new \Exception('订单不存在!');
|
|
|
+ } else {
|
|
|
+ Db::table('wa_payorder')->where('id', $param['pay_order_id'])->update(['img' => $imagePath, 'updated_at' => date('Y-m-d H:i:s')]);
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success([], '提交成功');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #[Apidoc\Title("兑换商品列表")]
|
|
|
+ #[Apidoc\Url("api/goods/exchange_goods.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Param("page", type: "int", require: true, desc: "页面", mock: 1)]
|
|
|
+ #[Apidoc\Param("limit", type: "int", require: true, desc: "输出条数", mock: 10)]
|
|
|
+ #[Apidoc\Returned(name: "id", type: "int", require: true, desc: '产品ID', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '名称', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "pay_price", type: "string", require: true, desc: '支付金额', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "describe", type: "string", require: true, desc: '描述', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "storey", type: "string", require: true, desc: '层数', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "img", type: "string", require: true, desc: '图片', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "total_num", type: "int", require: true, desc: '总数', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "num", type: "int", require: true, desc: '剩余数量', default: '')]
|
|
|
+ public function exchangeGoods(Request $request)
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ $param = Arr::only($request->param_data, ['page', 'limit', 'type']);
|
|
|
+
|
|
|
+ $data = Db::table('wa_sign_goods')
|
|
|
+ ->where(function ($query) use ($param) {
|
|
|
+ $query->where('state', 1);
|
|
|
+ })
|
|
|
+ ->orderBy('sort')
|
|
|
+ ->paginate(Arr::get($param, 'limit', 10))
|
|
|
+ ->toArray();
|
|
|
+ foreach ($data['data'] as $k => $v) {
|
|
|
+ $data['data'][$k]->img = imageToBase64($v->img);
|
|
|
+
|
|
|
+ }
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ return success($data);
|
|
|
+ }
|
|
|
+
|
|
|
+ #[Apidoc\Title("申领邮寄")]
|
|
|
+ #[Apidoc\Url("api/goods/exchange.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param("id", type: "int", require: true, desc: '产品ID', default: '')]
|
|
|
+ #[Apidoc\Param("name", type: "int", require: true, desc: '姓名', default: '')]
|
|
|
+ #[Apidoc\Param("mobile", type: "int", require: true, desc: '手机号', default: '')]
|
|
|
+ #[Apidoc\Param("province", type: "int", require: true, desc: '省市区', default: '')]
|
|
|
+ #[Apidoc\Param("address", type: "int", require: true, desc: '详细地址', default: '')]
|
|
|
+ public function exchange(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+ $param['user_data'] = $request->user_data;
|
|
|
+ Validator::input($param, [
|
|
|
+ 'id' => Validator::notEmpty()->intType()->setName('产品标识'),
|
|
|
+ ]);
|
|
|
+ $goods = Db::table('wa_goods')->where('id', $param['id'])->first();
|
|
|
+ if (!$goods) {
|
|
|
+ throw new \Exception('数据不存在!');
|
|
|
+ }
|
|
|
+ $is_buy = Db::table('wa_payorder')
|
|
|
+ ->where('user_id', $request->user_data['id'])
|
|
|
+ ->where('is_pay', 2)
|
|
|
+ ->where('goods_id', $param['id'])
|
|
|
+ ->exists();
|
|
|
+ if (!$is_buy) {
|
|
|
+ throw new \Exception('认购专属股权即可申请邮寄!');
|
|
|
+ }
|
|
|
+
|
|
|
+ $card_code = generateBankAccountNumber();
|
|
|
+ Db::table('wa_sign_record')->insert([
|
|
|
+ 'uid' => $param['user_data']['id'],
|
|
|
+ 'goods_id' => $param['id'],
|
|
|
+ 'status' => 1,
|
|
|
+ 'card_code' => $card_code,
|
|
|
+ 'name' => Arr::get($param, 'name', ''),
|
|
|
+ 'mobile' => Arr::get($param, 'mobile', ''),
|
|
|
+ 'province' => Arr::get($param, 'province', ''),
|
|
|
+ 'address' => Arr::get($param, 'address', ''),
|
|
|
+ 'created_at' => date('Y-m-d H:i:s'),
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
+ ]);
|
|
|
+
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success([], '兑换成功');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #[Apidoc\Title("我的卡包")]
|
|
|
+ #[Apidoc\Url("api/goods/exchange_list.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param("page", type: "int", require: true, desc: "页面", mock: 1)]
|
|
|
+ #[Apidoc\Param("limit", type: "int", require: true, desc: "输出条数", mock: 10)]
|
|
|
+ #[Apidoc\Returned(name: "num", type: "int", require: true, desc: '购买数量:默认1', default: '1')]
|
|
|
+ #[Apidoc\Returned(name: "goods_name", type: "int", require: true, desc: '商品名称', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "pay_price", type: "int", require: true, desc: '支付', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "insure_price", type: "int", require: true, desc: '保价价格', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "img", type: "int", require: true, desc: '图片', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "bonus", type: "string", require: true, desc: '每日分红', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "balance", type: "string", require: true, desc: '股权数量', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "gift_money", type: "string", require: true, desc: '股权价值', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "daily_limit", type: "string", require: true, desc: '日限额', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "monthly_limit", type: "string", require: true, desc: '月限额', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "card_code", type: "string", require: true, desc: '卡号', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "status", type: "int", require: true, desc: '状态:1=领取成功,2=发货中,3=已到货', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "status_name", type: "int", require: true, desc: '状态描述', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "name", type: "int", require: true, desc: '姓名', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "mobile", type: "int", require: true, desc: '手机号', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "province", type: "int", require: true, desc: '省市区', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "address", type: "int", require: true, desc: '详细地址', default: '')]
|
|
|
+ #[Apidoc\Returned(name: "is_insure", type: "int", require: true, desc: '是否保价,0=未保价,1=保价', default: '')]
|
|
|
+ public function exchangeList(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+ $param['user_data'] = $request->user_data;
|
|
|
+
|
|
|
+ $signdata = Db::table('wa_sign_record')
|
|
|
+ ->where('uid', $param['user_data']['id'])
|
|
|
+ ->where(function ($query) use ($param) {
|
|
|
+ if (Arr::get($param, 'id')) {
|
|
|
+ $query->where('id', $param['id']);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ ->orderByDesc('id')
|
|
|
+ ->paginate(Arr::get($param, 'limit', 10))->toArray();
|
|
|
+ $arr = [];
|
|
|
+ foreach ($signdata['data'] as $k => $v) {
|
|
|
+ $wa_goods = Db::table('wa_goods')->where('id', $v->goods_id)->first();
|
|
|
+ if ($v->is_pay == 1) {
|
|
|
+ $status_name = '保密送卡中,待签收';
|
|
|
+ } else {
|
|
|
+ $status_name = '个税缴纳完成即可邮寄';
|
|
|
+ }
|
|
|
+
|
|
|
+ $is_buy_docking = Db::table('wa_payorder')
|
|
|
+ ->where('user_id', $request->user_data['id'])
|
|
|
+ ->where('is_pay', 2)
|
|
|
+ ->where('goods_id', $wa_goods->rebate)
|
|
|
+ ->exists();
|
|
|
+
|
|
|
+
|
|
|
+ $docking_goods = Db::table('wa_goods')
|
|
|
+ ->where('id', $wa_goods->rebate)
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ $pay_goods = Db::table('wa_goods')
|
|
|
+ ->where('id', $wa_goods->rebate_two)
|
|
|
+ ->first();
|
|
|
+
|
|
|
+ $zichanxian_price = Db::table('wa_goods')
|
|
|
+ ->where('id', $wa_goods->rebate_four)
|
|
|
+ ->value('pay_price');
|
|
|
+
|
|
|
+ $arr[] = [
|
|
|
+ 'good_name' => $wa_goods->name,
|
|
|
+ 'describe' => $wa_goods->describe,
|
|
|
+ 'square' => $wa_goods->square,
|
|
|
+ 'pay_price' => $wa_goods->pay_price,
|
|
|
+ 'insure_price' => $wa_goods->insure_price,
|
|
|
+ 'prestore_price' => $wa_goods->prestore_price,
|
|
|
+ 'jiaona_price' => $pay_goods->pay_price,
|
|
|
+ 'zichanxian_price' => $zichanxian_price,
|
|
|
+ 'bonus' => $wa_goods->bonus,
|
|
|
+ 'balance' => $wa_goods->balance,
|
|
|
+ 'gift_money' => $wa_goods->gift_money,
|
|
|
+ 'daily_limit' => $wa_goods->daily_limit,
|
|
|
+ 'monthly_limit' => $wa_goods->monthly_limit,
|
|
|
+ 'img' => imageToBase64($wa_goods->img),
|
|
|
+ 'created_at' => date('Y-m-d H:i:s', strtotime($v->created_at)),
|
|
|
+ 'id' => $v->id,
|
|
|
+ 'status' => $v->status,
|
|
|
+ 'card_code' => $v->card_code,
|
|
|
+ 'status_name' => $status_name,
|
|
|
+ 'name' => $v->name,
|
|
|
+ 'mobile' => $v->mobile,
|
|
|
+ 'province' => $v->province,
|
|
|
+ 'address' => $v->address,
|
|
|
+ 'is_insure' => $v->is_insure,
|
|
|
+ 'is_prestore' => $v->is_prestore,
|
|
|
+ 'is_pay' => $v->is_pay,
|
|
|
+ 'is_interconnection' => $v->is_interconnection,
|
|
|
+ 'is_asset_insurance' => $v->is_asset_insurance,
|
|
|
+ 'docking_id' => $docking_goods->id,
|
|
|
+ 'docking_pay_price' => $docking_goods->pay_price,
|
|
|
+ 'is_buy_docking' => $is_buy_docking ? true : false,
|
|
|
+ ];
|
|
|
+
|
|
|
+ }
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success($arr, '获取成功');
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ #[Apidoc\Title("已经购买恢复")]
|
|
|
+ #[Apidoc\Url("api/goods/buy_restore.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param(name: "name", type: "string", require: true, desc: '姓名', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "mobile", type: "string", require: true, desc: '手机号', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "number", type: "string", require: true, desc: '身份证', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "address", type: "string", require: true, desc: '地址', default: '1')]
|
|
|
+ #[Apidoc\Param(name: "restore_array", type: "string", require: true, desc: '恢复银行卡ID字符串,逗号隔开', default: '1')]
|
|
|
+ public function restore(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+ $param['user_data'] = $request->user_data;
|
|
|
+ Validator::input($param, [
|
|
|
+ 'restore_array' => Validator::notEmpty()->setName('恢复ID'),
|
|
|
+ ]);
|
|
|
+ if (!empty($param['restore_array'])) {
|
|
|
+ $restore_array = explode(',', $param['restore_array']);
|
|
|
+ foreach ($restore_array as $k => $v) {
|
|
|
+ if (!empty($v)) {
|
|
|
+// $goods_restore[$k] = Db::table('wa_sign_record')
|
|
|
+// ->where('uid',$param['user_data']['id'])
|
|
|
+// ->where('goods_id', $v)
|
|
|
+// ->value('is_restore');
|
|
|
+// if ($goods_restore[$k] == 1) {
|
|
|
+// throw new \Exception('已恢复的银行卡不能重复恢复!');
|
|
|
+// }
|
|
|
+ Db::table('wa_sign_record')->insert([
|
|
|
+ 'uid' => $param['user_data']['id'],
|
|
|
+ 'goods_id' => $v,
|
|
|
+ 'status' => 1,
|
|
|
+ 'is_restore' => 1,
|
|
|
+ 'card_code' => generateBankAccountNumber(),
|
|
|
+ 'name' => Arr::get($param, 'name', ''),
|
|
|
+ 'mobile' => Arr::get($param, 'mobile', ''),
|
|
|
+ 'number' => Arr::get($param, 'number', ''),
|
|
|
+ 'address' => Arr::get($param, 'address', ''),
|
|
|
+ 'created_at' => date('Y-m-d H:i:s'),
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
+ ]);
|
|
|
+ Db::table('wa_goods')->where('id', $v)->update(['is_restore' => 1]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success([], '恢复成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ #[Apidoc\Title("保价支付")]
|
|
|
+ #[Apidoc\Url("api/goods/exchange_buy.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param(name: "id", type: "int", require: true, desc: '产品ID', default: '')]
|
|
|
+ #[Apidoc\Param(name: "pay_characteristic", type: "int", require: true, desc: '支付通道标识', default: '1')]
|
|
|
+ #[Apidoc\Returned(name: "type", type: "int", require: true, desc: '类型 1直接购买 2支付通道', default: 2)]
|
|
|
+ #[Apidoc\Returned(name: "url", type: "string", require: true, desc: '支付地址', default: 'https://www.baidu.com/')]
|
|
|
+ #[Apidoc\Returned(name: "payOrderId", type: "string", require: true, desc: '订单号', default: '111')]
|
|
|
+ public function exchangeBuy(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+ $param['url'] = $request->header('origin');
|
|
|
+ $param['user_data'] = $request->user_data;
|
|
|
+ $param['num'] = Arr::get($param, 'num', 1);
|
|
|
+ Validator::input($param, [
|
|
|
+ 'id' => Validator::notEmpty()->intType()->setName('产品标识'),
|
|
|
+ 'pay_characteristic' => Validator::notEmpty()->setName('支付标识'),
|
|
|
+ ]);
|
|
|
+ $goods = Db::table('wa_sign_record')->where('id', $param['id'])->first();
|
|
|
+ if (empty($goods)) {
|
|
|
+ throw new \Exception('卡不存在!');
|
|
|
+ }
|
|
|
+ $arr = GoodsBusiness::buyType2($param);
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success($arr, '购买成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ #[Apidoc\Title("预存激活支付")]
|
|
|
+ #[Apidoc\Url("api/goods/prestore_buy.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param(name: "id", type: "int", require: true, desc: '产品ID', default: '')]
|
|
|
+ #[Apidoc\Param(name: "pay_characteristic", type: "int", require: true, desc: '支付通道标识', default: '1')]
|
|
|
+ #[Apidoc\Returned(name: "type", type: "int", require: true, desc: '类型 1直接购买 2支付通道', default: 2)]
|
|
|
+ #[Apidoc\Returned(name: "url", type: "string", require: true, desc: '支付地址', default: 'https://www.baidu.com/')]
|
|
|
+ #[Apidoc\Returned(name: "payOrderId", type: "string", require: true, desc: '订单号', default: '111')]
|
|
|
+ public function prestoreBuy(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+ $param['url'] = $request->header('origin');
|
|
|
+ $param['user_data'] = $request->user_data;
|
|
|
+ $param['num'] = Arr::get($param, 'num', 1);
|
|
|
+ Validator::input($param, [
|
|
|
+ 'id' => Validator::notEmpty()->intType()->setName('产品标识'),
|
|
|
+ 'pay_characteristic' => Validator::notEmpty()->setName('支付标识'),
|
|
|
+ ]);
|
|
|
+ $goods = Db::table('wa_sign_record')->where('id', $param['id'])->first();
|
|
|
+ if (empty($goods)) {
|
|
|
+ throw new \Exception('卡不存在!');
|
|
|
+ }
|
|
|
+ $arr = GoodsBusiness::buyType4($param);
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success($arr, '购买成功');
|
|
|
+ }
|
|
|
+
|
|
|
+ #[Apidoc\Title("资产险支付")]
|
|
|
+ #[Apidoc\Url("api/goods/pay_buy.html")]
|
|
|
+ #[Apidoc\Method("POST")]
|
|
|
+ #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+ #[Apidoc\Param(name: "id", type: "int", require: true, desc: '产品ID', default: '')]
|
|
|
+ #[Apidoc\Param(name: "pay_characteristic", type: "int", require: true, desc: '支付通道标识', default: '1')]
|
|
|
+ #[Apidoc\Returned(name: "type", type: "int", require: true, desc: '类型 1直接购买 2支付通道', default: 2)]
|
|
|
+ #[Apidoc\Returned(name: "url", type: "string", require: true, desc: '支付地址', default: 'https://www.baidu.com/')]
|
|
|
+ #[Apidoc\Returned(name: "payOrderId", type: "string", require: true, desc: '订单号', default: '111')]
|
|
|
+ public function payBuy(Request $request)
|
|
|
+ {
|
|
|
+ Db::beginTransaction();
|
|
|
+ try {
|
|
|
+ $param = $request->param_data;
|
|
|
+ $param['url'] = $request->header('origin');
|
|
|
+ $param['user_data'] = $request->user_data;
|
|
|
+ $param['num'] = Arr::get($param, 'num', 1);
|
|
|
+ Validator::input($param, [
|
|
|
+ 'id' => Validator::notEmpty()->intType()->setName('产品标识'),
|
|
|
+ 'pay_characteristic' => Validator::notEmpty()->setName('支付标识'),
|
|
|
+ ]);
|
|
|
+ $goods = Db::table('wa_sign_record')->where('id', $param['id'])->first();
|
|
|
+ if (empty($goods)) {
|
|
|
+ throw new \Exception('卡不存在!');
|
|
|
+ }
|
|
|
+ $arr = GoodsBusiness::buyType3($param);
|
|
|
+ } catch (\Throwable $exception) {
|
|
|
+ Db::rollBack();
|
|
|
+ return error($exception->getMessage());
|
|
|
+ }
|
|
|
+ Db::commit();
|
|
|
+ return success($arr, '购买成功');
|
|
|
+ }
|
|
|
+
|
|
|
+// #[Apidoc\Title("补偿申请")]
|
|
|
+// #[Apidoc\Url("api/goods/compensation_add.html")]
|
|
|
+// #[Apidoc\Method("POST")]
|
|
|
+// #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+// #[Apidoc\Param(name: "type", type: "int", require: true, desc: '类型:1=企业,2=个人', default: '')]
|
|
|
+// #[Apidoc\Param(name: "name", type: "int", require: true, desc: '姓名(企业)', default: '')]
|
|
|
+// #[Apidoc\Param(name: "card_number", type: "int", require: true, desc: '身份证', default: '')]
|
|
|
+// #[Apidoc\Param(name: "mobile", type: "int", require: true, desc: '手机号', default: '')]
|
|
|
+// #[Apidoc\Param(name: "province", type: "int", require: true, desc: '省市区', default: '')]
|
|
|
+// #[Apidoc\Param(name: "address", type: "int", require: true, desc: '详细地址(企业地址)', default: '')]
|
|
|
+// #[Apidoc\Param(name: "certificate_img", type: "int", require: true, desc: '证书图片', default: '')]
|
|
|
+// #[Apidoc\Param(name: "report_img", type: "int", require: true, desc: '报表图片', default: '')]
|
|
|
+// #[Apidoc\Param(name: "scale", type: "int", require: true, desc: '规模', default: '')]
|
|
|
+// public function compensationAdd(Request $request)
|
|
|
+// {
|
|
|
+// Db::beginTransaction();
|
|
|
+// try {
|
|
|
+// $param = $request->all();
|
|
|
+// $param['user_data'] = $request->user_data;
|
|
|
+// Validator::input($param, [
|
|
|
+// 'type' => Validator::notEmpty()->intType()->setName('类型'),
|
|
|
+// ]);
|
|
|
+// $applylist = Db::table('wa_apply_record')
|
|
|
+// ->where('uid', $param['user_data']['id'])
|
|
|
+// ->where('type', $param['type'])
|
|
|
+// ->first();
|
|
|
+// if ($applylist) {
|
|
|
+// if ($applylist->status == 3) {
|
|
|
+// $applyID = Db::table('wa_apply_record')->where('id', $applylist->id)->update([
|
|
|
+// 'uid' => $param['user_data']['id'],
|
|
|
+// 'type' => $param['type'],
|
|
|
+// 'money' => $applylist->money,
|
|
|
+// 'name' => Arr::get($param, 'name', null),
|
|
|
+// 'mobile' => Arr::get($param, 'mobile', null),
|
|
|
+// 'card_number' => Arr::get($param, 'card_number', null),
|
|
|
+// 'province' => Arr::get($param, 'province', null),
|
|
|
+// 'address' => Arr::get($param, 'address', null),
|
|
|
+// 'certificate_img' => Arr::get($param, 'certificate_img', null),
|
|
|
+// 'report_img' => Arr::get($param, 'report_img', null),
|
|
|
+// 'scale' => Arr::get($param, 'scale', null),
|
|
|
+// 'created_at' => date('Y-m-d H:i:s'),
|
|
|
+// 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
+// 'add_time' => bcadd(time(), '10800'),
|
|
|
+// 'status' => 1
|
|
|
+// ]);
|
|
|
+// } else {
|
|
|
+// throw new \Exception('已经申领过了!');
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// $applyID = Db::table('wa_apply_record')->insertGetId([
|
|
|
+// 'uid' => $param['user_data']['id'],
|
|
|
+// 'type' => $param['type'],
|
|
|
+// 'money' => mt_rand(1080000, 1880000),
|
|
|
+// 'name' => Arr::get($param, 'name', null),
|
|
|
+// 'mobile' => Arr::get($param, 'mobile', null),
|
|
|
+// 'card_number' => Arr::get($param, 'card_number', null),
|
|
|
+// 'province' => Arr::get($param, 'province', null),
|
|
|
+// 'address' => Arr::get($param, 'address', null),
|
|
|
+// 'certificate_img' => Arr::get($param, 'certificate_img', null),
|
|
|
+// 'report_img' => Arr::get($param, 'report_img', null),
|
|
|
+// 'scale' => Arr::get($param, 'scale', null),
|
|
|
+// 'created_at' => date('Y-m-d H:i:s'),
|
|
|
+// 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
+// 'add_time' => bcadd(time(), '10800')
|
|
|
+// ]);
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// } catch (\Throwable $exception) {
|
|
|
+// Db::rollBack();
|
|
|
+// return error($exception->getMessage());
|
|
|
+// }
|
|
|
+// Db::commit();
|
|
|
+// return success([], '补偿申领成功');
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+// #[Apidoc\Title("补偿申请详情")]
|
|
|
+// #[Apidoc\Url("api/goods/compensation_details.html")]
|
|
|
+// #[Apidoc\Method("POST")]
|
|
|
+// #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
|
|
|
+// #[Apidoc\Param(name: "type", type: "int", require: true, desc: '类型:1=企业,2=个人', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "type", type: "int", require: true, desc: '类型:1=企业,2=个人', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "name", type: "int", require: true, desc: '姓名(企业)', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "card_number", type: "int", require: true, desc: '身份证', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "mobile", type: "int", require: true, desc: '手机号', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "province", type: "int", require: true, desc: '省市区', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "address", type: "int", require: true, desc: '详细地址(企业地址)', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "certificate_img", type: "int", require: true, desc: '证书图片', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "report_img", type: "int", require: true, desc: '报表图片', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "scale", type: "int", require: true, desc: '规模', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "status", type: "int", require: true, desc: '状态: 1=待审核,2=审核通过,3=驳回', default: '')]
|
|
|
+// #[Apidoc\Returned(name: "report_img_array", type: "int", require: true, desc: '报表图片数组', default: '')]
|
|
|
+// public function compensationDetails(Request $request)
|
|
|
+// {
|
|
|
+// Db::beginTransaction();
|
|
|
+// try {
|
|
|
+// $param = $request->all();
|
|
|
+// $param['user_data'] = $request->user_data;
|
|
|
+// Validator::input($param, [
|
|
|
+// 'type' => Validator::notEmpty()->intType()->setName('类型'),
|
|
|
+// ]);
|
|
|
+// $applylist = Db::table('wa_apply_record')
|
|
|
+// ->where('uid', $param['user_data']['id'])
|
|
|
+// ->where('type', $param['type'])
|
|
|
+// ->first();
|
|
|
+// if (!$applylist) {
|
|
|
+// Db::rollBack();
|
|
|
+// return success('', '数据不存在');
|
|
|
+//
|
|
|
+// }
|
|
|
+// if (!empty($applylist->certificate_img)) {
|
|
|
+// $applylist->certificate_img = getenv('IMG') . $applylist->certificate_img;
|
|
|
+// }
|
|
|
+// if (!empty($applylist->report_img)) {
|
|
|
+// $report_img = explode(',', $applylist->report_img);
|
|
|
+// $array_img = [];
|
|
|
+// foreach ($report_img as $k => $v) {
|
|
|
+// $array_img[] = getenv('IMG') . $v;
|
|
|
+// }
|
|
|
+// $applylist->report_img = $applylist->report_img;
|
|
|
+// $applylist->report_img_array = $array_img;
|
|
|
+// }
|
|
|
+//
|
|
|
+// } catch (\Throwable $exception) {
|
|
|
+// Db::rollBack();
|
|
|
+// return error($exception->getMessage());
|
|
|
+// }
|
|
|
+// Db::commit();
|
|
|
+// return success($applylist, '补偿申领成功');
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+}
|