123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- <?php
- declare(strict_types=1);
- namespace App\Controller\Api\v1;
- use App\Controller\AbstractController;
- use App\Model\Arts\CouponModel;
- use App\Model\Arts\UserAddressModel;
- use App\Model\Arts\UserCouponModel;
- use App\Model\Arts\UserModel;
- use App\Model\Arts\UserMoneyLogModel;
- use App\Model\Arts\UserWalletModel;
- use App\Request\Api\v1\User\AddressAddRequest;
- use App\Request\Api\v1\User\AddressDelRequest;
- use App\Request\Api\v1\User\AddressDetailRequest;
- use App\Request\Api\v1\User\AddressEditRequest;
- use App\Request\Api\v1\User\AddressListRequest;
- use App\Request\Api\v1\User\MoneyLogRequest;
- use App\Utils\AppResult;
- use App\Utils\Common;
- use App\Utils\Control\AuthUser;
- /**
- * 首页
- * UserController
- */
- class HomeController extends AbstractController
- {
- // 日志模块名称
- const LOG_MODULE = 'v1/HomeController';
- public function index()
- {
- $home_notice = site('home_notice');
- $home_notice = explode("\n", $home_notice);
- return AppResult::success('success', [
- 'home_notice' => $home_notice,
- 'home_invite_banner' => cdn_url(site('home_invite_banner'))
- ]);
- }
- /**
- * 邀请页面
- * @return \Psr\Http\Message\MessageInterface|\Psr\Http\Message\ResponseInterface
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function invite()
- {
- $user = AuthUser::getInstance()->get();
- if (empty($user['invite_code'])) {
- $user['invite_code'] = 'U' . Common::createRandomKeys($user['id']);
- UserModel::query()->where('id', $user['id'])->update(['invite_code' => $user['invite_code']]);
- }
- // 优惠券数量
- $list = (new UserCouponModel())->getList(
- params : [
- 'user_id' => $user['id'],
- 'is_use' => 0,
- 'valid' => 0
- ],
- orderBy: ['id' => 'desc']
- );
- $user_coupon_ids = array_column($list, 'coupon_id');
- $coupon_num = count($user_coupon_ids);
- // 邀请人数
- $invite_people_num = UserModel::query()->where('parent_id', $user['id'])->where('status', 1)->count();
- // 待领取优惠券
- // 未领取的优惠券
- $new_coupons = (new CouponModel())->query()->whereNotIn('id', $user_coupon_ids)->where(['status' => 1])->get()->toArray();
- return AppResult::success(result: [
- 'invite_code' => $user['invite_code'],
- 'coupon_num' => $coupon_num,
- 'invite_people_num' => $invite_people_num,
- 'coupons' => $new_coupons,
- ]);
- }
- /**
- * 领取优惠券
- * @return \Psr\Http\Message\MessageInterface|\Psr\Http\Message\ResponseInterface
- * @throws \Psr\Container\ContainerExceptionInterface
- * @throws \Psr\Container\NotFoundExceptionInterface
- */
- public function get_coupon()
- {
- $user = AuthUser::getInstance()->get();
- // 已领取的优惠券
- $user_coupon_ids = UserCouponModel::query()->where(['user_id' => $user['id']])->pluck('coupon_id')->toArray();
- // 未领取的优惠券
- $new_coupons = CouponModel::query()->whereNotIn('id', $user_coupon_ids)->where(['status' => 1])->get()->toArray();
- if (!$new_coupons) {
- return AppResult::success('暂无新的优惠券');
- }
- $time = time();
- $insert = [];
- foreach ($new_coupons as $key => $item) {
- $insert[] = [
- 'user_id' => $user['id'],
- 'coupon_id' => $item['id'],
- 'name' => $item['name'],
- 'type' => $item['type'],
- 'min_money' => $item['min_money'],
- 'money' => $item['money'],
- 'valid_at' => strtotime(date('Y-m-d 23:59:59', $time + ($item['valid_days'] * 24 * 60 * 60))),// 自领取之日起 计算过期时间
- 'remark' => $item['remark'],
- 'status' => 1,
- 'create_time' => $time
- ];
- }
- // 领取优惠券
- if (count($insert) > 0) {
- if (!UserCouponModel::query()->insert($insert)) {
- return AppResult::error('领取失败');
- }
- }
- return AppResult::success('领取成功');
- }
- }
|