123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- <?php
- /**
- * Created by PhpStorm.
- * User: stanley-king
- * Date: 2018/1/15
- * Time: 下午9:12
- */
- require_once(BASE_ROOT_PATH . '/data/meeting/award.php');
- require_once(BASE_ROOT_PATH . '/helper/fcode/operator.php');
- require_once(BASE_ROOT_PATH . '/helper/fcode/mfcode.php');
- require_once(BASE_ROOT_PATH . '/helper/session_helper.php');
- class employee_award
- {
- public function send($no,$sworkno)
- {
- if(empty($sworkno) || empty($no)) return false;
- Log::record("{$no} 等奖,人员: {$sworkno}",Log::DEBUG);
- $worknos = explode(',',$sworkno);
- $members = $this->members($worknos);
- $award_params = get_award($no);
- foreach($award_params as $param)
- {
- $type = $param['type'];
- if($type == 'fcode')
- {
- foreach ($members as $member) {
- $mobile = $member['mobile'];
- $ret = $this->send_fcode($param['command_id'],$param['batch_code'],$mobile);
- if(!$ret) {
- Log::record(" send fcode to {$mobile} fail",Log::ERR);
- }
- }
- }
- elseif($type == 'bonus')
- {
- $uids = [];
- foreach ($members as $user) {
- $uid = intval($user['member_id']);
- if($uid > 0) $uids[]= $uid;
- }
- $type_sn = $param['type_sn'];
- $ret = bonus_helper::send($type_sn,$uids);
- if($ret == false) {
- Log::record("send bonus error",Log::ERR);
- }
- }
- else {
- Log::record("error type",Log::ERR);
- }
- }
- return true;
- }
- private function members($worknos)
- {
- $mod_member = Model('member');
- $mod_employees = Model();
- $items = $mod_employees->table('employee')->where(['workno' => ['in',$worknos]])->select();
- foreach ($items as &$item)
- {
- $member_id = intval($item['member_id']);
- $mobile = $item['mobile'];
- if($member_id <= 0)
- {
- $info = $mod_member->getBindedMemberByMobile($mobile);
- if(!empty($info)) {
- $item['member_id'] = $info['member_id'];
- }
- }
- }
- return $items;
- }
- private function send_fcode($cid,$batch_code,$mobile)
- {
- if(empty($mobile) || $this->can_send($cid,$batch_code,$mobile) == false)
- return false;
- $oper = new fcode\operator($cid,$batch_code,$mobile,'');
- if($oper->grabed() == false)
- {
- $fcode = $oper->grab();
- if($fcode != false) {
- return true;
- }
- }
- return false;
- }
- private function can_send($cid,$batch_code,$mobile)
- {
- $key = "{$cid}.{$batch_code}";
- $mod_fcode = Model('goods_fcode');
- $codes = $mod_fcode->getFcodeList(['mobile' => $mobile]);
- $user_fcodes = [];
- foreach ($codes as $item)
- {
- $fcoder = new fcode\mfcode($item);
- $cid = $fcoder->commonid();
- $bcode = $fcoder->batch_code();
- $user_fcodes[] = "{$cid}.{$bcode}";
- }
- sort($user_fcodes);
- $out = algorithm::set_intersection($user_fcodes,[$key]);
- return empty($out) ? true : false;
- }
- }
|