| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575 |
- <?php
- namespace app\controller;
- use app\api\repositories\UsersRepositories;
- use app\business\BankCardBusiness;
- use app\business\LoginBusiness;
- use app\business\StreamBusiness;
- use app\business\UserIdentityBusiness;
- use Illuminate\Support\Arr;
- use Matrix\Exception;
- use Respect\Validation\Validator;
- use support\Db;
- use support\Redis;
- use support\Request;
- use hg\apidoc\annotation as Apidoc;
- use Throwable;
- use Webman\Captcha\CaptchaBuilder;
- use Webman\Captcha\PhraseBuilder;
- use function Symfony\Component\String\s;
- #[Apidoc\Title("用户信息")]
- #[Apidoc\Group("User")]
- #[Apidoc\Sort(5)]
- class UserController
- {
- #[Apidoc\Title("用户信息")]
- #[Apidoc\Url("api/user.html")]
- #[Apidoc\Method("POST")]
- #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
- #[Apidoc\Returned(name: "uuid", type: "int", require: true, desc: 'UUID', default: '100001')]
- #[Apidoc\Returned(name: "mobile", type: "string", require: true, desc: '账号', default: '15800000000')]
- #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '名称', default: '主号')]
- #[Apidoc\Returned(name: "money", type: "string", require: true, desc: '总资产', default: '0.00')]
- #[Apidoc\Returned(name: "money_one", type: "string", require: true, desc: '脱贫金', default: '0.00')]
- #[Apidoc\Returned(name: "money_two", type: "string", require: true, desc: '团队金', default: '0.00')]
- #[Apidoc\Returned(name: "money_four", type: "string", require: true, desc: '充值钱包', default: '0.00')]
- #[Apidoc\Returned(name: "card_code", type: "string", require: true, desc: '卡号', default: '0.00')]
- #[Apidoc\Returned(name: "total_sign", type: "int", require: true, desc: '签到总天数', default: '')]
- #[Apidoc\Returned(name: "day_is_sign", type: "int", require: true, desc: '今日是否签到', default: '')]
- #[Apidoc\Returned(name: "user_identity", type: "array", desc: '实名信息', default: '', children: [
- ['name' => "name", 'type' => 'string', 'require' => true, 'default' => '张三1', 'desc' => '姓名'],
- ['name' => "number", 'type' => 'string', 'require' => true, 'default' => '500221233312836451', 'desc' => '身份证号'],
- ])]
- #[Apidoc\Returned(name: "bank_card", type: "string", desc: '银行卡', default: '', children: [
- ['name' => "affiliated_bank", 'type' => 'string', 'require' => true, 'default' => '中国银行1', 'desc' => '归属银行'],
- ['name' => "account_holder", 'type' => 'string', 'require' => true, 'default' => '张三', 'desc' => '开户人'],
- ['name' => "card_number", 'type' => 'string', 'require' => true, 'default' => '500221233312836451', 'desc' => '卡号'],
- ])]
- #[Apidoc\Returned(name: "is_buy_sign", type: "string", desc: '是否签署承诺书', default: '', children: [
- ['name' => "has", 'type' => 'string', 'require' => true, 'default' => '1', 'desc' => '判断 1没有购买专属卡 需要提示跳转 2没有签署 3 已签署'],
- ['name' => "goods_data", 'type' => 'array', 'require' => true, 'default' => '张三', 'desc' => '产品信息'],
- ])]
- public function userData(Request $request)
- {
- //查询今日是否已签到
- $day_is_sign = Db::table('wa_stream')
- ->where('type', streamType2)
- ->whereBetween('add_time', [strtotime(date('Y-m-d')) . ' 00:00:00', strtotime(date('Y-m-d') . ' 23:59:59')])
- ->where('user_id', $request->user_data['id'])
- ->first();
- $total_sign = Db::table('wa_stream')->where('type', streamType2)->where('user_id', $request->user_data['id'])->count();
- $is_buy_card = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 1)
- ->exists();
- $is_buy_binding = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 3)
- ->exists();
- $is_buy_kaitong = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 5)
- ->exists();
- $is_buy_binding_mobile = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 6)
- ->exists();
- $is_buy_activate = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 8)
- ->exists();
- $is_buy_double = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 9)
- ->exists();
- $is_buy_fast = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 10)
- ->exists();
- $is_buy_stampduty = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 11)
- ->exists();
- $is_buy_packaging = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 12)
- ->exists();
- $is_buy_whitelist = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 13)
- ->exists();
- $is_buy_voucher = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_type', 14)
- ->exists();
- $buy_sign['has'] = 1;
- $buy_sign['goods_data'] = [];
- $wa_user_social_cark = Db::table('wa_user_social_cark')
- ->where('user_id', $request->user_data['id'])
- ->first();
- if (!empty($wa_user_social_cark->goods_id)) {
- $buy_sign['has'] = 2;
- $relevance_goods = Db::table('wa_goods')
- ->where('type', 4)
- ->where('relevance_goods_id', $wa_user_social_cark->goods_id)
- ->first();
- if (!empty($relevance_goods)) {
- $is_buy_sign = Db::table('wa_payorder')
- ->where('user_id', $request->user_data['id'])
- ->where('is_pay', 2)
- ->where('goods_id', $relevance_goods->id)
- ->where('goods_type', 4)
- ->exists();
- if (empty($is_buy_sign) && !empty($wa_user_social_cark->goods_id)) {
- $buy_sign['goods_data'] = $relevance_goods;
- } elseif (!empty($is_buy_sign)) {
- $buy_sign['has'] = 3;
- }
- }
- $binding_mobile = $wa_user_social_cark->binding_mobile;
- } else {
- $binding_mobile = '';
- }
- if ($is_buy_activate) {
- if (!empty(Redis::get('879' . $request->user_data['id']))) {
- $dynamic_pass = Redis::get('879' . $request->user_data['id']);
- } else {
- $conter = mt_rand(100000, 999999);
- Redis::setEx('879' . $request->user_data['id'], 600, $conter);
- $dynamic_pass = $conter;
- }
- } else {
- $dynamic_pass = '';
- }
- $arr = [
- 'img' => !empty($request->user_data['img']) ? imageToBase64($request->user_data['img']) : '',
- 'uuid' => $request->user_data['uuid'],
- 'mobile' => $request->user_data['mobile'],
- 'name' => $request->user_data['name'],
- 'is_autonym' => $request->user_data['is_autonym'],
- 'is_num' => $request->user_data['is_num'],
- 'money' => $request->user_data['money'],
- 'money_one' => $request->user_data['money_one'],
- 'money_two' => $request->user_data['money_two'],
- 'money_four' => $request->user_data['money_four'],
- 'card_code' => $request->user_data['card_code'],
- 'signature_time' => $request->user_data['signature_time'],
- 'front_ima' => imageToBase64($request->user_data['front_ima']),
- 'reverse_ima' => imageToBase64($request->user_data['reverse_ima']),
- 'day_is_sign' => $day_is_sign ? true : false,
- 'is_buy_card' => $is_buy_card ? true : false,
- 'is_buy_binding' => $is_buy_binding ? true : false,
- 'is_buy_kaitong' => $is_buy_kaitong ? true : false,
- 'is_buy_binding_mobile' => $is_buy_binding_mobile ? true : false,
- 'is_buy_activate' => $is_buy_activate ? true : false,
- 'is_buy_double' => $is_buy_double ? true : false,
- 'is_buy_fast' => $is_buy_fast ? true : false,
- 'is_buy_stampduty' => $is_buy_stampduty ? true : false,
- 'is_buy_packaging' => $is_buy_packaging ? true : false,
- 'is_buy_whitelist' => $is_buy_whitelist ? true : false,
- 'is_buy_voucher' => $is_buy_voucher ? true : false,
- 'is_buy_sign' => $buy_sign,
- 'total_sign' => $total_sign,
- 'dynamic_pass' => $dynamic_pass,
- 'binding_mobile' => $binding_mobile,
- 'user_identity' => UserIdentityBusiness::data(['uid' => $request->user_data['id']]),
- 'bank_card' => BankCardBusiness::data(['uid' => $request->user_data['id']]),
- ];
- return success($arr);
- }
- #[Apidoc\Title("签到列表")]
- #[Apidoc\Url("api/user/signlist.html")]
- #[Apidoc\Method("POST")]
- #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
- #[Apidoc\Returned(name: "money", type: "string", desc: '签到奖励', default: '')]
- #[Apidoc\Returned(name: "day", type: "string", desc: '天数', default: '')]
- #[Apidoc\Returned(name: "has", type: "string", desc: '是否签到', default: 'true 已签到 false 未签到')]
- #[Apidoc\Returned(name: "signcount", type: "string", desc: '累计签到', default: 'true 已签到 false 未签到')]
- #[Apidoc\Returned(name: "continuity", type: "string", desc: '连续签到', default: 'true 已签到 false 未签到')]
- #[Apidoc\Returned(name: "is_sign", type: "string", desc: '今日是否签到', default: 'true 已签到 false 未签到')]
- public function signlist(Request $request)
- {
- $system = Db::table('wa_system')->first();
- $arr[] = date('Y-m-d', strtotime('monday this week'));
- $arr[] = date('Y-m-d', strtotime('monday this week +1 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +2 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +3 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +4 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +5 day'));
- $arr[] = date('Y-m-d', strtotime('sunday this week'));
- $array = [];
- $money = 0;
- foreach ($arr as $k => $v) {
- $money = bcadd($money, 1000);
- $day = date('d', strtotime($v));
- $array[] = [
- 'money' => $money,
- 'day' => date('d', strtotime($v)),
- 'has' => Db::table('wa_stream')
- ->where('user_id', $request->user_data['id'])
- ->where('type', streamType2)
- ->whereBetween('add_time', [strtotime($v . ' 00:00:00'), strtotime($v . ' 23:59:59')])->exists()
- ];
- if ($money == 5000) {
- $money = 0;
- }
- }
- $signcount = Db::table('wa_stream')->where('type', streamType2)->where('user_id', $request->user_data['id'])->count();
- $is_sign = Db::table('wa_stream')
- ->where('user_id', $request->user_data['id'])
- ->where('type', streamType2)
- ->whereBetween('add_time', [strtotime(date('Y-m-d') . ' 00:00:00'), strtotime(date('Y-m-d') . ' 23:59:59')])
- ->exists();
- return success([
- 'list' => $array,
- 'signcount' => $signcount,
- 'continuity' => $request->user_data['continuity'],
- 'is_sign' => $is_sign,
- ]);
- // $param = $request->param_data;
- // $param['user_data'] = $request->user_data;
- // $month_num = date('t');
- // $res = [];
- // //查询当前用户当月签到记录
- // $this_month_sign = Db::table('wa_stream')
- // ->where('type', streamType2)
- // ->where('user_id', $param['user_data']['id'])
- // ->whereRaw("DATE_FORMAT(created_at,'%Y-%m')=?", date('Y-m'))
- // ->get();
- // $money = 0;
- // for ($i = 1; $i <= $month_num; $i++) {
- // $date = $i > 9 ? date('Y-m-') . $i : date('Y-m-') . '0' . $i;
- // $money = bcadd($money, 1000);
- // $res[] = [
- // 'day' => $i,
- // 'has' => Db::table('wa_stream')
- // ->where('user_id', $request->user_data['id'])
- // ->where('type', streamType2)
- // ->whereBetween('add_time', [strtotime($date . ' 00:00:00'), strtotime($date . ' 23:59:59')])
- // ->exists(),
- // 'money' => $money,
- // ];
- // if ($i % 5 == 0) {
- // $money = 0;
- // }
- // }
- // $signcount = Db::table('wa_stream')
- // ->where('type', streamType2)
- // ->where('user_id', $param['user_data']['id'])
- // ->count();
- // $is_sign = Db::table('wa_stream')
- // ->where('user_id', $param['user_data']['id'])
- // ->where('type', streamType2)
- // ->whereBetween('add_time', [strtotime(date('Y-m-d') . ' 00:00:00'), strtotime(date('Y-m-d') . ' 23:59:59')])
- // ->exists();
- // return success([
- // 'list' => $res,
- // 'signcount' => $signcount,
- // 'continuity' => $param['user_data']['continuity'],
- // 'is_sign' => $is_sign,
- // ]);
- }
- #[Apidoc\Title("签到")]
- #[Apidoc\Url("api/user/sign.html")]
- #[Apidoc\Method("POST")]
- #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
- #[Apidoc\Returned(name: "money", type: "string", desc: '奖励金额', default: '888')]
- #[Apidoc\Returned(name: "signcount", type: "string", desc: '累计签到天数', default: '888')]
- public function sign(Request $request)
- {
- Db::beginTransaction();
- try {
- $param = $request->param_data;
- $zuotian = Db::table('wa_stream')
- ->where('user_id', $request->user_data['id'])
- ->where('type', streamType2)
- ->whereBetween('add_time', [bcsub(strtotime(date('Y-m-d') . ' 00:00:00'), 86400), bcadd(strtotime(date('Y-m-d') . ' 23:59:59'), 86400)])
- ->exists();
- if ($zuotian) {
- $continuity = bcadd($request->user_data['continuity'], 1);
- } else {
- $continuity = 1;
- }
- $has = Db::table('wa_stream')
- ->where('user_id', $request->user_data['id'])
- ->where('type', streamType2)
- ->whereBetween('add_time', [strtotime(date('Y-m-d') . ' 00:00:00'), strtotime(date('Y-m-d') . ' 23:59:59')])
- ->exists();
- if ($has) {
- throw new \Exception('今日已签到,请不要重复签到');
- }
- $arr[] = date('Y-m-d', strtotime('monday this week'));
- $arr[] = date('Y-m-d', strtotime('monday this week +1 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +2 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +3 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +4 day'));
- $arr[] = date('Y-m-d', strtotime('monday this week +5 day'));
- $arr[] = date('Y-m-d', strtotime('sunday this week'));
- $day_money = 0;
- foreach ($arr as $k => $v) {
- $day_money = bcadd($day_money, 1000);
- $day = date('d', strtotime($v));
- if (date('d', time()) == $day) {
- $money = $day_money;
- }
- if ($day_money == 5000) {
- $day_money = 0;
- }
- }
- // $system = Db::table('wa_system')->first();
- // if (!empty($system->sign_award)) {
- // StreamBusiness::addStream($request->user_data['id'], $system->sign_award, streamType2, moldType2, moldTypefild2);
- // }
- StreamBusiness::addStream($request->user_data['id'], $money, streamType2, moldType2, moldTypefild2);
- Db::table('wa_users')->where(['id' => $request->user_data['id']])->update(['continuity' => $continuity]);
- $signcount = Db::table('wa_stream')->where('type', streamType2)->where('user_id', $request->user_data['id'])->count();
- } catch (\Throwable $exception) {
- Db::rollBack();
- return error($exception->getMessage());
- }
- Db::commit();
- return success([
- 'money' => $day_money,
- 'signcount' => $signcount
- ], '签到成功');
- }
- #[Apidoc\Title("我的团队头数据")]
- #[Apidoc\Url("api/user/team.html")]
- #[Apidoc\Method("POST")]
- #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
- #[Apidoc\Returned(name: "num", type: "int", require: true, desc: '团队总人数', default: '1')]
- #[Apidoc\Returned(name: "earnings", type: "int", require: true, desc: '总拥金收益', default: '0')]
- #[Apidoc\Returned(name: "dayearnings", type: "int", require: true, desc: '今日收益', default: '0')]
- #[Apidoc\Returned(name: "one", type: "int", require: true, desc: '一级人数', default: '0')]
- #[Apidoc\Returned(name: "two", type: "int", require: true, desc: '二级人数', default: '0')]
- #[Apidoc\Returned(name: "three", type: "int", require: true, desc: '三级人数', default: '0')]
- #[Apidoc\Returned(name: "rebate", type: "int", require: true, desc: '一级返佣', default: '0')]
- #[Apidoc\Returned(name: "rebate_one", type: "int", require: true, desc: '二级返佣', default: '0')]
- #[Apidoc\Returned(name: "rebate_two", type: "int", require: true, desc: '三级返佣', default: '0')]
- public function team(Request $request)
- {
- $param = $request->user_data;
- $data = Db::table('wa_users')->where(function ($query) use ($param) {
- $query->orWhere('pid', $param['id']);
- $query->orWhere('ppid', $param['id']);
- $query->orWhere('toppid', $param['id']);
- });
- $system = Db::table('wa_system')->first();
- /** @var $num 团队总人数 */
- $num = (clone $data)->count();
- // $stream = Db::table('wa_stream')
- // ->where('mold', moldType1)
- // ->where('type', streamType14)
- // ->where('user_id', $request->user_data['id']);
- return success([
- 'num' => $num,
- // 'earnings' => (clone $stream)->sum('money'),
- // 'dayearnings' => (clone $stream)
- // ->where('add_time', '>=', strtotime(date('Y-m-d')))
- // ->where('add_time', '<=', strtotime(date('Y-m-d 23:59:59')))
- // ->sum('money'),
- 'earnings' => '0.00',
- 'dayearnings' => '0.00',
- 'one' => Db::table('wa_users')->where('pid', $param['id'])->count(),
- 'two' => Db::table('wa_users')->where('ppid', $param['id'])->count(),
- 'three' => Db::table('wa_users')->where('toppid', $param['id'])->count(),
- 'rebate' => $system->rebate,
- 'rebate_one' => $system->rebate_one,
- 'rebate_two' => $system->rebate_two,
- ]);
- }
- #[Apidoc\Title("我的团队列表数据")]
- #[Apidoc\Url("api/user/team_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\Param("grade", type: "int", require: true, desc: "等级 1一级 2二级 3三级", mock: 1)]
- #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '名称', default: '未实名')]
- #[Apidoc\Returned(name: "mobile", type: "string", require: true, desc: '电话', default: '158****0002')]
- #[Apidoc\Returned(name: "join_time", type: "string", require: true, desc: '注册时间', default: '2024-07-08 01:20:47')]
- #[Apidoc\Returned(name: "invest_money", type: "string", require: true, desc: '消费金额', default: '0.00')]
- public function teamList(Request $request)
- {
- try {
- $param = $request->param_data;
- $param['user_data'] = $request->user_data;
- Validator::input($param, [
- 'page' => Validator::notEmpty()->intType()->setName('页面'),
- 'limit' => Validator::notEmpty()->intType()->setName('输出条数'),
- 'grade' => Validator::notEmpty()->intType()->setName('等级'),
- ]);
- $data = Db::table('wa_users')->where(function ($query) use ($param) {
- if (Arr::get($param, 'grade')) {
- if ($param['grade'] == 1) {
- $query->where('pid', $param['user_data']['id']);
- } elseif ($param['grade'] == 2) {
- $query->where('ppid', $param['user_data']['id']);
- } elseif ($param['grade'] == 3) {
- $query->where('toppid', $param['user_data']['id']);
- }
- } else {
- $query->where('pid', $param['user_data']['id']);
- }
- })->select(['name', 'mobile', 'join_time', 'invest_money'])
- ->orderByDesc('id')
- ->paginate(Arr::get($param, 'limit', 10), ['*'], 'page', Arr::get($param, 'page'))
- ->toArray();
- foreach ($data['data'] as $k => $v) {
- $data['data'][$k]->mobile = substr_replace($v->mobile, '****', 3, 4);
- }
- } catch (\Throwable $exception) {
- return new Exception($exception->getMessage());
- }
- return success($data['data'], '成功', 200, $data['total']);
- }
- // #[Apidoc\Title("我的投资")]
- // #[Apidoc\Url("api/user/mygoods")]
- // #[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: "id", type: "string", require: true, desc: '购买记录ID', default: '485')]
- // #[Apidoc\Returned(name: "goods_id", type: "string", require: true, desc: '产品ID', default: '5')]
- // #[Apidoc\Returned(name: "img", type: "string", require: true, desc: '封面图', default: '')]
- // #[Apidoc\Returned(name: "name", type: "string", require: true, desc: '产品名称', default: '')]
- // #[Apidoc\Returned(name: "type", type: "string", require: true, desc: '产品类型 1 慈善 2助力', default: '')]
- // #[Apidoc\Returned(name: "price", type: "string", require: true, desc: '价格', default: '')]
- // #[Apidoc\Returned(name: "pay_price", type: "string", require: true, desc: '通道支付金额', default: '')]
- // #[Apidoc\Returned(name: "period", type: "string", require: true, desc: '周期', default: '')]
- // #[Apidoc\Returned(name: "bl", type: "string", require: true, desc: '比例', default: '')]
- // #[Apidoc\Returned(name: "bonus", type: "string", require: true, desc: '每日分红金额', default: '')]
- // #[Apidoc\Returned(name: "predict", type: "string", require: true, desc: '预计收益', default: '')]
- // #[Apidoc\Returned(name: "created_at", type: "string", require: true, desc: '购买时间', default: '')]
- // #[Apidoc\Returned(name: "expiretime", type: "string", require: true, desc: '到期时间戳', default: '')]
- // #[Apidoc\Returned(name: "is_grant", type: "string", require: true, desc: '是否退本 1未退本 2已退本', default: '')]
- // public function mygoods(Request $request)
- // {
- // try {
- // $param = Arr::only($request->all(), ['page', 'limit', 'grade']);
- // $param['user_data'] = $request->user_data;
- // Validator::input($param, [
- // 'page' => Validator::notEmpty()->intType()->setName('页码'),
- // 'limit' => Validator::notEmpty()->intType()->setName('输出条数'),
- // ]);
- // $data = Db::table('wa_my_goods')
- // ->join('wa_goods', 'wa_goods.id', '=', 'wa_my_goods.goods_id')
- // ->where('wa_my_goods.user_id', $param['user_data']['id'])
- // ->select(['wa_my_goods.id', 'wa_my_goods.goods_id', 'wa_goods.img', 'wa_goods.type', 'wa_goods.pay_price', 'wa_goods.price', 'wa_goods.name', 'wa_goods.period', 'wa_goods.bl', 'wa_goods.bonus', 'wa_goods.predict', 'wa_goods.bonus', 'wa_my_goods.created_at', 'wa_my_goods.expiretime', 'wa_my_goods.is_grant'])
- // ->orderByDesc('wa_my_goods.id')
- // ->paginate(Arr::get($param, 'limit', 10))
- // ->toArray();
- // foreach ($data['data'] as $k => $v) {
- // $data['data'][$k]->img = getenv('IMG') . $v->img;
- // }
- // } catch (\Throwable $exception) {
- // return error($exception->getMessage());
- // }
- //
- // return success($data['data'], '成功', 200, $data['total']);
- // }
- #[Apidoc\Title("退出登录")]
- #[Apidoc\Url("api/user/quit.html")]
- #[Apidoc\Method("POST")]
- #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
- public function quit(Request $request)
- {
- Redis::del($request->user_data['id']);
- return success([], '已退出登录!');
- }
- #[Apidoc\Title("修改密码")]
- #[Apidoc\Url("api/user/save.html")]
- #[Apidoc\Method("POST")]
- #[Apidoc\Header("token", type: "string", require: true, desc: "身份令牌Token", mock: "@token")]
- #[Apidoc\Param("type", type: "int", require: true, desc: "类型 1修改名称 2 修改密码 ", mock: 1)]
- #[Apidoc\Param("name", type: "string", require: true, desc: "名称", mock: 1)]
- #[Apidoc\Param("old_password", type: "string", require: true, desc: "旧密码", mock: 1)]
- #[Apidoc\Param("password", type: "string", require: true, desc: "新密码", mock: 10)]
- public function save(Request $request)
- {
- Db::beginTransaction();
- try {
- $param = $request->param_data;
- Validator::input($param, [
- 'type' => Validator::notEmpty()->intType()->setName('操作类型'),
- ]);
- if (Arr::get($param, 'type') == 1) {
- Validator::input($param, [
- 'name' => Validator::notEmpty()->setName('操作类型'),
- ]);
- $arr['name'] = $param['name'];
- } elseif (Arr::get($param, 'type') == 2) {
- Validator::input($param, [
- 'old_password' => Validator::notEmpty()->setName('旧密码'),
- 'password' => Validator::notEmpty()->setName('新密码'),
- ]);
- if ($request->user_data['password'] != md5($param['old_password'])) {
- throw new \Exception('密码验证失败');
- }
- $arr['password'] = md5($param['password']);
- }
- if (empty($arr)) {
- throw new \Exception('非法操作');
- }
- Db::table('wa_users')->where('id', $request->user_data['id'])->update($arr);
- } catch (\Throwable $exception) {
- Db::rollBack();
- return error($exception->getMessage());
- }
- Db::commit();
- return success([], '修改成功');
- }
- }
|