| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 | <?php/** * Created by PhpStorm. * User: wuzhenke * Date: 2018/11/12 * Time: 10:24 */namespace App\Services\Common;use App\Repositories\CompanyRepository;use App\Repositories\MemberHandselRepository;use App\Repositories\MemberPointRepository;use App\Repositories\MembersChargeLogRepository;use App\Repositories\MemberSetmealRecordRepository;use App\Repositories\MemberSetmealRepository;use App\Repositories\SetmealRepository;use Illuminate\Contracts\Logging\Log;use Illuminate\Support\Facades\DB;class MembersSetmealService{    protected $memberSetmealRepository;    protected $setmealRepository;    protected $memberPointRepository;    protected $memberHandselRepository;    protected $companyRepository;    protected $membersChargeLogRepository;    protected $memberSetmealRecordRepository;    /**     * MembersSetmealService constructor.     * @param $memberSetmealRepository     * @param $setmealRepository     * @param $memberPointRepository     * @param $memberHandselRepository     * @param $companyRepository     * @param $membersChargeLogRepository     */    public function __construct(MemberSetmealRepository $memberSetmealRepository, MembersChargeLogRepository $membersChargeLogRepository, CompanyRepository $companyRepository, MemberHandselRepository $memberHandselRepository, MemberPointRepository $memberPointRepository, SetmealRepository $setmealRepository    ,MemberSetmealRecordRepository $memberSetmealRecordRepository)    {        $this->memberSetmealRepository = $memberSetmealRepository;        $this->setmealRepository = $setmealRepository;        $this->memberPointRepository = $memberPointRepository;        $this->memberHandselRepository = $memberHandselRepository;        $this->companyRepository = $companyRepository;        $this->membersChargeLogRepository = $membersChargeLogRepository;        $this->memberSetmealRecordRepository=$memberSetmealRecordRepository;    }    /**注册赠送套餐     * @param $user     * @param $setmeal_id     * @return array     * @throws \Prettus\Validator\Exceptions\ValidatorException     */    public function addMemberSetmeal($user, $setmeal_id)    {        $setsqlarr['uid']=$user->id;        $setmeal = $this->setmealRepository->find($setmeal_id);        $setsqlarr['expire']=0;        $setsqlarr['setmeal_id']=$setmeal->id;        $setsqlarr['setmeal_name']=$setmeal->setmeal_name;        $setsqlarr['starttime']=time();        $setsqlarr['days']=$setmeal->days;        if ($setmeal->days>0) {            $setsqlarr['endtime']=strtotime("".$setmeal->days." days");        } else {            $setsqlarr['endtime']=0;        }        $setsqlarr['expense']=$setmeal->expense;        $setsqlarr['jobs_meanwhile']=$setmeal->jobs_meanwhile;        $setsqlarr['refresh_jobs_free']=$setmeal->refresh_jobs_free;        $setsqlarr['download_resume']=$setmeal->download_resume;        $setsqlarr['download_resume_max']=$setmeal->download_resume_max;        $setsqlarr['jobfair_num']=$setmeal->jobfair_num;        $setsqlarr['added']=$setmeal->added;        $setsqlarr['setmeal_img']=$setmeal->setmeal_img;        $setsqlarr['show_apply_contact']=$setmeal->show_apply_contact;        $setsqlarr['show_contact_direct']=$setmeal->show_contact_direct;        $setsqlarr['is_free']=$setmeal->is_free;        $setsqlarr['discount_download_resume']=$setmeal->discount_download_resume;        $setsqlarr['discount_sms']=$setmeal->discount_sms;        $setsqlarr['discount_stick']=$setmeal->discount_stick;        $setsqlarr['discount_emergency']=$setmeal->discount_emergency;        $setsqlarr['discount_tpl']=$setmeal->discount_tpl;        $setsqlarr['discount_auto_refresh_jobs']=$setmeal->discount_auto_refresh_jobs;        if (false === $this->memberSetmealRepository->create($setsqlarr)) {            return array('state'=>false,'error'=>'数据添加失败');        } else {            //删除 是否过期 以及套餐图标            unset($setsqlarr['expire']);            unset($setsqlarr['setmeal_img']);            //往套餐记录里头添加            if($this->memberSetmealRecordRepository->create($setsqlarr)===false){                return array('state'=>false,'error'=>'添加记录失败!');            }            //如果套餐有赠送积分,则直接更新用户积分表            if ($setmeal->set_points) {                if ($this->memberPointRepository->reportDeal($user->id, 1, 1, $setmeal->set_points)) {                    // 写入会员积分操作日志                    $handsel['uid'] = $user->id;                    $handsel['htype'] = 'setmeal_gifts';                    $handsel['htype_cn'] = '套餐内赠送';                    $handsel['operate'] = 1;                    $handsel['points'] = $setmeal->set_points;                    $this->memberHandselRepository->addNew($handsel);                }            }            //如果套餐有赠送短信,则直接更新用户表的短信条数字段            if ($setmeal->set_sms) {                $this->companyRepository->updataSmsNum($user->id, 1, $setmeal->set_sms);            }            $this->companyRepository->companySave(['setmeal_id'=>$setmeal->id, 'setmeal_name'=>$setmeal->setmeal_name], $user->id);        }        if ($setmeal_id>0) {            // 套餐变更记录            $this->membersChargeLogRepository->createLog($user, '注册会员系统自动赠送:'.$setmeal->setmeal_name, '0.00', 1, 1, 2);        }        return array('state'=>true);    }    public function getUserSetmeal($user, $utype)    {        return $this->memberSetmealRepository->getSetmealByUid($user->id, $utype);    }    /**     * $uid 会员uid     * $actio 套餐项     * $type 套餐项加减 (主要针对 发布职位默认为1是加,2为减)     */    public function actionUserSetmeal($uid, $action, $type = 1, $num = 1)    {        if ($type==1) {            return $this->memberSetmealRepository->incrementData(array('uid'=>$uid), $action, $num);        } elseif ($type==2) {            $usersetmeal = $this->memberSetmealRepository->getSetmealByUid($uid, $num);            if ($usersetmeal->$action > 0) {                return $this->memberSetmealRepository->decrementData(array('uid'=>$uid), $action, $num);            } else {                return $this->memberSetmealRepository->updateSetmeal(array($action=>0), $usersetmeal->id);            }        }    }    public function getSetmealByUid($uid, $utype)    {        return $this->memberSetmealRepository->getSetmealByUid($uid, $utype);    }}
 |