|
@@ -0,0 +1,114 @@
|
|
|
+<?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->getMemberInfo(['member_mobile' => $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;
|
|
|
+ }
|
|
|
+}
|