edusoho兑换码功能二次开发

功能描述:兑换码,是由一串数字或字母的组合,用户可使用兑换码去兑换网校课程。网校可通过其它流量平台售卖兑换码、印制线下礼品卡等方式,将兑换码发送给用户;
在这里插入图片描述
场景示例:某网校想要拓宽自己的销售渠道,使用兑换码功能,将课程加入到兑换码中,放在淘宝天猫店铺内售卖,用户获得兑换码即可兑换网校课程,网校借助淘宝天猫平台的流量为网校引流,提高销量;

技术支持二次开发QQ: 
<?php

namespace CouponPlugin\Controller;

use AppBundle\Common\ArrayToolkit;
use AppBundle\Common\Paginator;
use AppBundle\Controller\BaseController;
use Biz\Coupon\Service\CouponService;
use Codeages\Biz\Order\Service\OrderService;
use CouponPlugin\Biz\Coupon\Service\CouponBatchService;
use Symfony\Component\HttpFoundation\Request;

class CouponBatchController extends BaseController
{
    public function appendAction(Request $request, $batchId)
    {
        $batch = $this->getCouponBatchService()->getBatch($batchId);

        if ($request->isMethod('POST')) {
            $data = $request->request->all();
            $data['batch'] = $batch;

            $appendBatch = $this->getCouponBatchService()->appendCoupon($batch['id'], $data);
            $data = array(
                'url' => $this->generateUrl('admin_coupon_batch_create', array('batchId' => $batch['id'])),
                'num' => $appendBatch['generatedNum'] - $batch['generatedNum'],
            );

            return $this->createJsonResponse($data);
        }

        return $this->render('CouponPlugin::batch-append-coupon-modal.html.twig', array(
            'batch' => $batch,
        ));
    }

    public function checkNumAction(Request $request, $batchId)
    {
        $appendNum = $request->query->get('value');

        $batch = $this->getCouponBatchService()->getBatch($batchId);
        $remain = CouponBatchService::BATCH_COUPON_MAX_NUM - $batch['generatedNum'];

        if ($appendNum > $remain) {
            $response = array('success' => false, 'message' => '当前批次优惠券数量已达到最大值,请重新创建优惠券批次');
        } else {
            $response = array('success' => true, 'message' => '');
        }

        return $this->createJsonResponse($response);
    }

    public function detailAction(Request $request, $batchId)
    {
        $count = $this->getCouponService()->searchCouponsCount(array('batchId' => $batchId));

        $batch = $this->getCouponBatchService()->getBatch($batchId);

        $paginator = new Paginator($this->get('request'), $count, 20);

        $coupons = $this->getCouponService()->searchCoupons(
            array('batchId' => $batchId),
            array('orderTime' => 'DESC', 'id' => 'ASC'),
            $paginator->getOffsetCount(),
            $paginator->getPerPageCount()
        );
        $users = $this->getUserService()->findUsersByIds(ArrayToolkit::column($coupons, 'userId'));

        $orders = $this->getOrderService()->findOrdersByIds(ArrayToolkit::column($coupons, 'orderId'));

        return $this->render('CouponPlugin:coupon:coupon-modal.html.twig', array(
            'coupons' => $coupons,
            'batch' => $batch,
            'paginator' => $paginator,
            'users' => $users,
            'orders' => ArrayToolkit::index($orders, 'id'),
        ));
    }

    public function logAction(Request $request, $batchId)
    {
        $count = $this->getCouponBatchService()->countBatchLog(array('batchId' => $batchId));

        $paginator = new Paginator($this->get('request'), $count, 20);

        $batchLogs = $this->getCouponBatchService()->searchBatchLog(
            array('batchId' => $batchId),
            array('createdTime' => 'DESC'),
            $paginator->getOffsetCount(),
            $paginator->getPerPageCount()
        );

        $users = $this->getUserService()->findUsersByIds(ArrayToolkit::column($batchLogs, 'userId'));

        return $this->render('CouponPlugin:coupon:coupon-log-tab.html.twig', array(
            'batchLogs' => $batchLogs,
            'paginator' => $paginator,
            'users' => $users,
        ));
    }

    /**
     * @return CouponService
     */
    private function getCouponService()
    {
        return $this->createService('Coupon:CouponService');
    }

    /**
     * @return CouponBatchService
     */
    protected function getCouponBatchService()
    {
        return $this->createService('CouponPlugin:Coupon:CouponBatchService');
    }

    /**
     * @return OrderService
     */
    private function getOrderService()
    {
        return $this->createService('Order:OrderService');
    }
}

在这里插入图片描述

技术交流 QQ扫一扫:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linlinlove2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值