You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
simple-yewu/frontend/controllers/GiftController.php

1082 lines
42 KiB

<?php
namespace frontend\controllers;
use common\libs\MyLib;
use common\models\CarGiftT;
use common\models\EmsT;
use common\models\GiftT;
use common\models\GiftTicketTUse;
use common\models\GiftTypeT;
use common\models\GiftUseLogT;
use common\models\GroupT;
use common\models\InsurerTypeT;
use common\models\OrderT;
use common\models\StrategyT;
use common\models\UserT;
use Yii;
use yii\data\Pagination;
use yii\web\Response;
class GiftController extends \yii\web\Controller
{
public $my = null;
public $enableCsrfValidation = false;
public $layout = 'blue-main';
private $_outEncoding = "GB2312";
public function init()
{
parent::init();
$cookie = Yii::$app->request->cookies;
$user_id = MyLib::encrypt($cookie->get('aid'),'DECODE');
if($user_id != 0)
{
$this->my = UserT::findOne(['id'=>$user_id]);
} else {
Yii::$app->response->redirect('/common/login')->send();
exit;
}
}
public function actionIndex()
{
return $this->render('index');
}
public function actionIndexJson()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$type_id = $request->get('type_id');
$name = $request->get('name');
$offset = $request->get('offset',0);
$limit = $request->get('limit', 10);
$query = GiftT::find()
->where('is_delete=0');
if($type_id > 0) {
$query = $query->andWhere('typeid='.$type_id);
}
if($name != '') {
$query = $query->andWhere('name like "'.$name.'"');
}
$query = $query->orderBy('id desc');
$total = $query->count();
$query = $query->offset($offset)->limit($limit);
$items = $query->all();
$data = [];
$data['total'] = $total;
$data['rows'] = [];
foreach($items as $item) {
$row = $item->toArray();
$row['type'] = $item->getShowType();
$data['rows'][] = $row;
}
return $data;
}
public function actionEdit()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
if($id > 0) {
$info = GiftT::findOne(['id'=>$id]);
} else {
$info = new GiftT();
}
return $this->render('edit',[
'info' => $info
]);
}
public function actionSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '保存失败';
if($request->isPost) {
$id = $request->post('id',0);
$type_id = $request->post('type_id');
$name = $request->post('name');
$img = $request->post('img');
$price = $request->post('price');
$remark = $request->post('remark');
$use_num = (int)$request->post('use_num');
if($name == '') {
$result['msg'] = '请输入名称!';
return $result;
}
$pin_name=trim($this->getPinyin($name),' ');
$row = null;
if($id > 0) {
$row = GiftT::findOne(['id'=>$id]);
} else {
$row = new GiftT();
}
$row->type_id = $type_id;
$row->name = $name;
$row->price = $price;
$row->original_img = $img;
$row->remark = $remark;
$row->use_num = $use_num;
$row->pinyin_name = $pin_name;
$row->save();
$result['success'] = true;
$result['msg'] = '保存成功';
}
return $result;
}
public function actionDelete()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '删除失败';
if($request->isPost) {
$id = $request->post('id',0);
if($id > 0) {
$row = GiftT::findOne(['id'=>$id]);
$row->is_delete = 1;
$row->save();
$result['success'] = true;
$result['msg'] = '删除成功';
}
}
return $result;
}
public function actionCarAddSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '添加失败';
if($request->isPost) {
$car_id = $request->post('car_id');
$order_id = $request->post('order_id');
$gift_id = $request->post('gift_id');
if($gift_id == 0) {
$result['msg'] = '请选择礼品';
return $result;
}
$gift_info = new CarGiftT();
$gift_info->car_id = $car_id;
$gift_info->order_id = $order_id;
$gift_info->user_id = $this->my->id;
$gift_info->gift_id = $gift_id;
$gift_info->submit_time = time();
$gift_info->status = 0;
$gift_info->type = 2;
$gift_info->save();
$order_info = $gift_info->order;
$order_info->check_gift = 1;
$order_info->save();
$result['success'] = true;
$result['msg'] = '添加成功';
}
return $result;
}
public function actionCarDeleteSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '删除失败';
if($request->isPost) {
$gift_id = $request->post('gift_id');
$gift_info = CarGiftT::findOne(['id'=>$gift_id]);
if($gift_info->status == 0) {
$order_id = $gift_info->order_id;
$gift_info->delete();
$total = CarGiftT::find()
->where('order_id='.$order_id.' and (status=0 or status=2)')
->count();
if($total > 0) {
$order_info = OrderT::findOne(['id'=>$order_id]);
$order_info->check_gift = 1;
$order_info->save();
}
} else {
$gift_info->status = 2;
$gift_info->save();
$order_info = $gift_info->order;
$order_info->check_gift = 1;
$order_info->save();
}
$result['success'] = true;
$result['msg'] = '删除成功';
}
return $result;
}
public function actionAjaxCarIndex()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$car_id = $request->get('car_id');
$type = $request->get('type',0);
$result = array();
$result['success'] = false;
$result['msg'] = '读取失败';
$query = CarGiftT::find()
->where(['car_id'=>$car_id])
// ->andWhere('type=2')
->orderBy('id ASC');
if($type == 0)
$query = $query->andWhere('type=2');
$items = $query->all();
$html = $this->renderPartial('ajax-car-index',[
'car_id' => $car_id,
'items' => $items
]);
$result['success'] = true;
$result['html'] = $html;
return $result;
}
public function actionAjaxCompanyIndex()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$car_id = $request->get('car_id');
$order_id = $request->get('order_id');
$total1_clear = $request->get('total1_clear');
$type = $request->get('type',0);
$result = array();
$result['success'] = false;
$result['msg'] = '读取失败';
$order_info = OrderT::findOne(['id'=>$order_id]);
//处理全部范围,没有最低费用限制和最高消费
$query = StrategyT::find()
->where('min_money=0 and group_id=0 and max_money=0')
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
$items = $query->all();
if($total1_clear > 0) {
//处理全部范围,没有最低,只有最高消费
$query = StrategyT::find()
->where('min_money=0 and group_id=0 and max_money>='.$total1_clear)
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
if($query->count() > 0)
$items = array_merge($items,$query->all());
//处理全部范围,有最低,没有最高消费
$query = StrategyT::find()
->where('min_money>0 and min_money<='.$total1_clear.' and group_id=0 and max_money=0')
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
if($query->count() > 0)
$items = array_merge($items,$query->all());
//处理全部范围,有最低,有最高消费
$query = StrategyT::find()
->where('min_money>0 and min_money<='.$total1_clear.' and group_id=0 and max_money>='.$total1_clear)
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
if($query->count())
$items = array_merge($items,$query->all());
}
//处理指定范围,没有最低,没有最高消费
$query = StrategyT::find()
->where('min_money=0 and group_id>0 and max_money=0')
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
$tmp_items = $query->all();
foreach($tmp_items as $item) {
$group_info = GroupT::findOne(['id'=>$item->group_id]);
if($group_info->hasChild($order_info->user->group_id)) {
$items[] = $item;
}
if($group_info->id == $order_info->user->group_id) {
$items[] = $item;
}
}
if($total1_clear > 0) {
//处理指定范围,没有最低,有最高消费
$query = StrategyT::find()
->where('min_money=0 and group_id>0 and max_money>='.$total1_clear)
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
$tmp_items = $query->all();
foreach($tmp_items as $item) {
$group_info = GroupT::findOne(['id'=>$item->group_id]);
if($group_info->hasChild($order_info->user->group_id)) {
$items[] = $item;
}
if($group_info->id == $order_info->user->group_id) {
$items[] = $item;
}
}
//处理指定范围,有最低,没有最高消费
$query = StrategyT::find()
->where('min_money>0 and min_money<='.$total1_clear.' and group_id>0 and max_money=0')
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
$tmp_items = $query->all();
foreach($tmp_items as $item) {
$group_info = GroupT::findOne(['id'=>$item->group_id]);
if($group_info->hasChild($order_info->user->group_id)) {
$items[] = $item;
}
if($group_info->id == $order_info->user->group_id) {
$items[] = $item;
}
}
//处理指定范围,有最低,有最高消费
$query = StrategyT::find()
->where('min_money>0 and min_money<='.$total1_clear.' and group_id>0 and max_money>='.$total1_clear)
->orderBy('id ASC');
// echo $query->createCommand()->rawSql."\r\n";
$tmp_items = $query->all();
foreach($tmp_items as $item) {
$group_info = GroupT::findOne(['id'=>$item->group_id]);
if($group_info->hasChild($order_info->user->group_id)) {
$items[] = $item;
}
if($group_info->id == $order_info->user->group_id) {
$items[] = $item;
}
}
}
//获取已经得到的礼品
$tmp_query = CarGiftT::find()
->where('car_id='.$car_id.' and order_id='.$order_id.' and strategy_id>0');
// echo $tmp_query->createCommand()->rawSql."<br>";
$car_gift_items = $tmp_query->all();
$order_gift_items = array();
foreach($car_gift_items as $item) {
$order_gift_items[] = $item->strategy_id.'-'.$item->gift_id;
}
$html = $this->renderPartial('ajax-company-index',[
'car_id' => $car_id,
'order_id' => $order_id,
'items' => $items,
'order_gift_items' => $order_gift_items
]);
$result['success'] = true;
$result['html'] = $html;
return $result;
}
public function actionMngList()
{
$request = Yii::$app->request;
$car_man = $request->get('car_man');
$phone = $request->get('phone');
$car_no = $request->get('car_no');
$page = $request->get('page',1);
if($page < 1) $page = 1;
$query = OrderT::find()
->where('status_id>1 and check_gift=1')
->orderBy('submit_date DESC, id DESC');
if($car_man != '') {
$query = $query->andWhere('car_man="'.$car_man.'"');
}
if($phone != '') {
$query = $query->andWhere('link_phone="'.$phone.'"');
}
if($car_no != '') {
$query = $query->andWhere('car_no="'.$car_no.'"');
}
// echo $query->createCommand()->rawSql;
$total = $query->count();
$pagination = new Pagination(['totalCount' => $total,'pageSize'=>20]);
$pagination->setPage($page-1);
$query = $query->offset($pagination->offset)->limit($pagination->limit);
$items = $query->all();
$page_info = MyLib::getPageInfo($pagination);
return $this->render('mng-list',[
'items' => $items,
'car_man' => $car_man,
'phone' => $phone,
'car_no' => $car_no,
'page' => $page,
'page_info' => $page_info
]);
}
public function actionMngListInfo()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
$order_info = OrderT::findOne(['id'=>$id]);
$car_info = $order_info->car;
//快递
$ems_items = EmsT::find()
->where(['car_id'=>$car_info->id,'order_id'=>$order_info->id])
->orderBy('id ASC')
->all();
//礼品
$gift_items = CarGiftT::find()
->where('order_id='.$order_info->id)
->orderBy('strategy_id DESC')
->all();
$insurer_type_items = InsurerTypeT::find()
->all();
return $this->render('mng-list-info',[
'car_info' => $car_info,
'insurer_type_items' => $insurer_type_items,
'order_info' => $order_info,
'ems_items' => $ems_items,
'gift_items' => $gift_items
]);
}
public function actionOkSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '出库失败';
if($request->isPost) {
$gift_ids = $request->post('gift_ids',array());
$order_id = $request->post('order_id');
foreach($gift_ids as $id) {
$item = CarGiftT::findOne(['id'=>$id]);
if($item->status == 0) {
$item->status = 1;
$item->save();
}
}
$total = CarGiftT::find()
->where('order_id='.$order_id.' and status=0')
->count();
if($total == 0) {
$order_info = OrderT::findOne(['id'=>$order_id]);
$order_info->check_gift = 0;
$order_info->save();
}
$result['success'] = true;
$result['msg'] = '出库成功';
}
return $result;
}
public function actionCancelSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '退货失败';
if($request->isPost) {
$gift_ids = $request->post('gift_ids',array());
$order_id = $request->post('order_id');
foreach($gift_ids as $id) {
$item = CarGiftT::findOne(['id'=>$id]);
if($item->status == 2) {
$item->delete();
}
}
$total = CarGiftT::find()
->where('order_id='.$order_id.' and status=0')
->count();
if($total == 0) {
$order_info = OrderT::findOne(['id'=>$order_id]);
$order_info->check_gift = 0;
$order_info->save();
}
$result['success'] = true;
$result['msg'] = '退货成功';
}
return $result;
}
public function getPinyin($str,$pix=' ',$code = 'gb2312'){
$_DataKey = "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha" . "|chai|chan|chang|chao|che|chen|cheng|chi|chong|chou|chu|chuai|chuan|chuang|chui|chun|chuo|ci|cong|cou|cu|" . "cuan|cui|cun|cuo|da|dai|dan|dang|dao|de|deng|di|dian|diao|die|ding|diu|dong|dou|du|duan|dui|dun|duo|e|en|er" . "|fa|fan|fang|fei|fen|feng|fo|fou|fu|ga|gai|gan|gang|gao|ge|gei|gen|geng|gong|gou|gu|gua|guai|guan|guang|gui" . "|gun|guo|ha|hai|han|hang|hao|he|hei|hen|heng|hong|hou|hu|hua|huai|huan|huang|hui|hun|huo|ji|jia|jian|jiang" . "|jiao|jie|jin|jing|jiong|jiu|ju|juan|jue|jun|ka|kai|kan|kang|kao|ke|ken|keng|kong|kou|ku|kua|kuai|kuan|kuang" . "|kui|kun|kuo|la|lai|lan|lang|lao|le|lei|leng|li|lia|lian|liang|liao|lie|lin|ling|liu|long|lou|lu|lv|luan|lue" . "|lun|luo|ma|mai|man|mang|mao|me|mei|men|meng|mi|mian|miao|mie|min|ming|miu|mo|mou|mu|na|nai|nan|nang|nao|ne" . "|nei|nen|neng|ni|nian|niang|niao|nie|nin|ning|niu|nong|nu|nv|nuan|nue|nuo|o|ou|pa|pai|pan|pang|pao|pei|pen" . "|peng|pi|pian|piao|pie|pin|ping|po|pu|qi|qia|qian|qiang|qiao|qie|qin|qing|qiong|qiu|qu|quan|que|qun|ran|rang" . "|rao|re|ren|reng|ri|rong|rou|ru|ruan|rui|run|ruo|sa|sai|san|sang|sao|se|sen|seng|sha|shai|shan|shang|shao|" . "she|shen|sheng|shi|shou|shu|shua|shuai|shuan|shuang|shui|shun|shuo|si|song|sou|su|suan|sui|sun|suo|ta|tai|" . "tan|tang|tao|te|teng|ti|tian|tiao|tie|ting|tong|tou|tu|tuan|tui|tun|tuo|wa|wai|wan|wang|wei|wen|weng|wo|wu" . "|xi|xia|xian|xiang|xiao|xie|xin|xing|xiong|xiu|xu|xuan|xue|xun|ya|yan|yang|yao|ye|yi|yin|ying|yo|yong|you" . "|yu|yuan|yue|yun|za|zai|zan|zang|zao|ze|zei|zen|zeng|zha|zhai|zhan|zhang|zhao|zhe|zhen|zheng|zhi|zhong|" . "zhou|zhu|zhua|zhuai|zhuan|zhuang|zhui|zhun|zhuo|zi|zong|zou|zu|zuan|zui|zun|zuo";
$_DataValue = "-20319|-20317|-20304|-20295|-20292|-20283|-20265|-20257|-20242|-20230|-20051|-20036|-20032|-20026|-20002|-19990" . "|-19986|-19982|-19976|-19805|-19784|-19775|-19774|-19763|-19756|-19751|-19746|-19741|-19739|-19728|-19725" . "|-19715|-19540|-19531|-19525|-19515|-19500|-19484|-19479|-19467|-19289|-19288|-19281|-19275|-19270|-19263" . "|-19261|-19249|-19243|-19242|-19238|-19235|-19227|-19224|-19218|-19212|-19038|-19023|-19018|-19006|-19003" . "|-18996|-18977|-18961|-18952|-18783|-18774|-18773|-18763|-18756|-18741|-18735|-18731|-18722|-18710|-18697" . "|-18696|-18526|-18518|-18501|-18490|-18478|-18463|-18448|-18447|-18446|-18239|-18237|-18231|-18220|-18211" . "|-18201|-18184|-18183|-18181|-18012|-17997|-17988|-17970|-17964|-17961|-17950|-17947|-17931|-17928|-17922" . "|-17759|-17752|-17733|-17730|-17721|-17703|-17701|-17697|-17692|-17683|-17676|-17496|-17487|-17482|-17468" . "|-17454|-17433|-17427|-17417|-17202|-17185|-16983|-16970|-16942|-16915|-16733|-16708|-16706|-16689|-16664" . "|-16657|-16647|-16474|-16470|-16465|-16459|-16452|-16448|-16433|-16429|-16427|-16423|-16419|-16412|-16407" . "|-16403|-16401|-16393|-16220|-16216|-16212|-16205|-16202|-16187|-16180|-16171|-16169|-16158|-16155|-15959" . "|-15958|-15944|-15933|-15920|-15915|-15903|-15889|-15878|-15707|-15701|-15681|-15667|-15661|-15659|-15652" . "|-15640|-15631|-15625|-15454|-15448|-15436|-15435|-15419|-15416|-15408|-15394|-15385|-15377|-15375|-15369" . "|-15363|-15362|-15183|-15180|-15165|-15158|-15153|-15150|-15149|-15144|-15143|-15141|-15140|-15139|-15128" . "|-15121|-15119|-15117|-15110|-15109|-14941|-14937|-14933|-14930|-14929|-14928|-14926|-14922|-14921|-14914" . "|-14908|-14902|-14894|-14889|-14882|-14873|-14871|-14857|-14678|-14674|-14670|-14668|-14663|-14654|-14645" . "|-14630|-14594|-14429|-14407|-14399|-14384|-14379|-14368|-14355|-14353|-14345|-14170|-14159|-14151|-14149" . "|-14145|-14140|-14137|-14135|-14125|-14123|-14122|-14112|-14109|-14099|-14097|-14094|-14092|-14090|-14087" . "|-14083|-13917|-13914|-13910|-13907|-13906|-13905|-13896|-13894|-13878|-13870|-13859|-13847|-13831|-13658" . "|-13611|-13601|-13406|-13404|-13400|-13398|-13395|-13391|-13387|-13383|-13367|-13359|-13356|-13343|-13340" . "|-13329|-13326|-13318|-13147|-13138|-13120|-13107|-13096|-13095|-13091|-13076|-13068|-13063|-13060|-12888" . "|-12875|-12871|-12860|-12858|-12852|-12849|-12838|-12831|-12829|-12812|-12802|-12607|-12597|-12594|-12585" . "|-12556|-12359|-12346|-12320|-12300|-12120|-12099|-12089|-12074|-12067|-12058|-12039|-11867|-11861|-11847" . "|-11831|-11798|-11781|-11604|-11589|-11536|-11358|-11340|-11339|-11324|-11303|-11097|-11077|-11067|-11055" . "|-11052|-11045|-11041|-11038|-11024|-11020|-11019|-11018|-11014|-10838|-10832|-10815|-10800|-10790|-10780" . "|-10764|-10587|-10544|-10533|-10519|-10331|-10329|-10328|-10322|-10315|-10309|-10307|-10296|-10281|-10274" . "|-10270|-10262|-10260|-10256|-10254";
$_TDataKey = explode ( '|', $_DataKey );
$_TDataValue = explode ( '|', $_DataValue );
$data = (PHP_VERSION >= '5.0') ? array_combine ( $_TDataKey, $_TDataValue ) : $this->_Array_Combine( $_TDataKey, $_TDataValue );
arsort ( $data );
reset ( $data );
$str = $this->safe_encoding ( $str );
$_Res = '';
for($i = 0; $i < strlen ( $str ); $i ++) {
$_P = ord ( substr ( $str, $i, 1 ) );
if ($_P > 160) {
$_Q = ord ( substr ( $str, ++ $i, 1 ) );
$_P = $_P * 256 + $_Q - 65536;
}
$_Res .= $this->_Pinyin ( $_P, $data ).$pix;
}
return preg_replace ( "/[^a-z0-9".$pix."]*/", '', $_Res );
}
private function _Pinyin($_Num, $_Data) {
if ($_Num > 0 && $_Num < 160)
return chr ( $_Num );
elseif ($_Num < - 20319 || $_Num > - 10247)
return '';
else {
foreach ( $_Data as $k => $v ) {
if ($v <= $_Num)
break;
}
return $k;
}
}
public function getFirstChar($str=''){
if( !$str ) return null;
$fchar=ord($str{0});
if($fchar>=ord("A") and $fchar<=ord("z") )return strtoupper($str{0});
$s= $this->safe_encoding($str);
$asc=ord($s{0})*256+ord($s{1})-65536;
if($asc>=-20319 and $asc<=-20284)return "A";
if($asc>=-20283 and $asc<=-19776)return "B";
if($asc>=-19775 and $asc<=-19219)return "C";
if($asc>=-19218 and $asc<=-18711)return "D";
if($asc>=-18710 and $asc<=-18527)return "E";
if($asc>=-18526 and $asc<=-18240)return "F";
if($asc>=-18239 and $asc<=-17923)return "G";
if($asc>=-17922 and $asc<=-17418)return "H";
if($asc>=-17417 and $asc<=-16475)return "J";
if($asc>=-16474 and $asc<=-16213)return "K";
if($asc>=-16212 and $asc<=-15641)return "L";
if($asc>=-15640 and $asc<=-15166)return "M";
if($asc>=-15165 and $asc<=-14923)return "N";
if($asc>=-14922 and $asc<=-14915)return "O";
if($asc>=-14914 and $asc<=-14631)return "P";
if($asc>=-14630 and $asc<=-14150)return "Q";
if($asc>=-14149 and $asc<=-14091)return "R";
if($asc>=-14090 and $asc<=-13319)return "S";
if($asc>=-13318 and $asc<=-12839)return "T";
if($asc>=-12838 and $asc<=-12557)return "W";
if($asc>=-12556 and $asc<=-11848)return "X";
if($asc>=-11847 and $asc<=-11056)return "Y";
if($asc>=-11055 and $asc<=-10247)return "Z";
return null;
}
function safe_encoding($string) {
$encoding="UTF-8";
for($i=0;$i<strlen($string);$i++) {
if(ord($string{$i})<128) continue;
if((ord($string{$i})&224)==224) { //第一个字节判断通过
$char=$string{++$i};
if((ord($char)&128)==128) { //第二个字节判断通过
$char=$string{++$i};
if((ord($char)&128)==128) {
$encoding="UTF-8";
break;
}
}
}
if((ord($string{$i})&192)==192) { //第一个字节判断通过
$char=$string{++$i};
if((ord($char)&128)==128) { //第二个字节判断通过
$encoding="GB2312";
break;
}
}
}
if(strtoupper($encoding)==strtoupper($this->_outEncoding))
return $string;
else
return iconv($encoding,$this->_outEncoding,$string);
}
private function _Array_Combine($_Arr1, $_Arr2){
$_Res=array();
for($i = 0; $i < count ( $_Arr1 ); $i ++)
$_Res [$_Arr1 [$i]] = $_Arr2 [$i];
return $_Res;
}
public function actionStastics() {
return $this->render('stastics');
}
public function actionStasticsJson()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$offset = $request->get('offset',0);
$limit = $request->get('limit', 10);
$query = GiftT::find()
->where('is_delete=0');
$query = $query->orderBy('id desc');
$total = $query->count();
$query = $query->offset($offset)->limit($limit);
$items = $query->all();
$data = [];
$data['total'] = $total;
$data['rows'] = [];
foreach($items as $item) {
$row = $item->toArray();
$row['total'] = $item->getTicketsUse()->count();
$type_id = $item->type_id;
if($type_id ==1){//礼品
$row['out_total'] = $item->getTicketsUse()->where('status=3')->count();
$row['use_total'] = $item->getTicketsUse()->where('status=3')->count();
}elseif ($type_id==2){
$row['out_total'] = $item->getTicketsUse()->count();
$row['use_total'] = $item->getTicketsUse()->where('status>1')->count();
}
$data['rows'][] = $row;
}
return $data;
}
public function actionGiftOut() {
$type_items = GiftT::find()
->where(['type_id'=>1,'is_delete'=>0])
->all();
return $this->render('gift-out', [
'type_items' => $type_items
]);
}
public function actionGiftOutJson()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$code = $request->get('code');
$car_no = $request->get('car_no');
$username = $request->get('username');
$s_begin_date = $request->get('s_begin_date');
$s_end_date = $request->get('s_end_date');
$p_begin_date = $request->get('p_begin_date');
$p_end_date = $request->get('p_end_date');
$status = $request->get('status');
$frame_no = $request->get('frame_no');
$engine_no = $request->get('engine_no');
$insurer1_no = $request->get('insurer1_no');
$type_id = $request->get('type_id');
$offset = $request->get('offset',0);
$limit = $request->get('limit', 10);
$query = GiftTicketTUse::find()
->leftJoin('order_t','order_t.id=gift_ticket_t_use.order_id')
->leftJoin('gift_t','gift_t.id=gift_ticket_t_use.type_id')
->leftJoin('user_t','user_t.id=gift_ticket_t_use.user_id')
->where('gift_t.type_id=1')
->orderBy('id DESC');
if($code != '') {
$query = $query->andWhere('gift_ticket_t_use.code="'.$code.'"');
}
if($car_no != '') {
$query = $query->andWhere('gift_ticket_t_use.car_no like "'.$car_no.'"');
}
if($username != ''){
$user = UserT::find()->where('username="'.$username.'"')->andWhere('is_delete=0')->one();
$query = $query->andWhere('gift_ticket_t_use.op_id='.$user->id);
}
if($s_begin_date != ''){
$query = $query->andWhere('order_t.submit_date>="'.$s_begin_date.'"');
}
if($s_end_date != ''){
$query = $query->andWhere('order_t.submit_date<="'.$s_begin_date.'"');
}
if($p_begin_date != ''){
$query = $query->andWhere('order_t.print_date>="'.$p_begin_date.'"');
}
if($p_end_date != ''){
$query = $query->andWhere('order_t.print_date<="'.$p_begin_date.'"');
}
if ($status == 1) {//礼券未使用
$query = $query->andWhere('gift_t.type_id=2 and gift_ticket_t_use.status=1');
} elseif ($status == 2) {//礼券使用中
$query = $query->andWhere('gift_t.type_id=2 and gift_ticket_t_use.status=2');
}
if ($status == 3) {//礼券使用完
$query = $query->andWhere('gift_t.type_id=2 and gift_ticket_t_use.status=3');
}
if ($status == 4) {//礼品未出库
$query = $query->andWhere('gift_t.type_id=1 and gift_ticket_t_use.status=1');
}
if ($status == 5) {//礼品已出库
$query = $query->andWhere('gift_t.type_id=1 and gift_ticket_t_use.status=3');
}
if($frame_no != '') {
$query = $query->andWhere('order_t.car_frame_no="'.$frame_no.'"');
}
if($engine_no != '') {
$query = $query->andWhere('order_t.engine_no="'.$engine_no.'"');
}
if($insurer1_no != '') {
$query = $query->andWhere('order_t.insurer1_no='.$insurer1_no);
}
if($type_id > 0) {
$query = $query->andWhere('gift_ticket_t_use.type_id='.$type_id);
}
// echo $query->createCommand()->rawSql;
$total = $query->count();
$items = $query->offset($offset)->limit($limit)->all();
$data = [];
$data['total'] = $total;
$data['rows'] = [];
foreach($items as $item) {
$order_info = $item->order;
$gift_info = $item->typeNew;
$row = $item->toArray();
$row['name'] = $gift_info->name;
$row['car_no'] = $item->car_no;
$row['car_frame_no'] = $order_info->car_no;
$row['op'] = $item->op?$item->op->getShowName():'';
$row['finished_date'] = $item->finished_date != '0000-00-00'?$item->finished_date:'';
$row['user'] = ($item->user && $item->status > 0)?$item->user->getShowName():'';
$row['status'] = $item->getStatus();
$row['use_num'] = $gift_info->use_num;
$data['rows'][] = $row;
}
return $data;
}
public function actionTicketUse() {
$type_items = GiftT::find()
->where(['type_id'=>2,'is_delete'=>0])
->all();
return $this->render('ticket-use', [
'type_items' => $type_items
]);
}
public function actionTicketUseJson()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$code = $request->get('code');
$car_no = $request->get('car_no');
$username = $request->get('username');
$s_begin_date = $request->get('s_begin_date');
$s_end_date = $request->get('s_end_date');
$p_begin_date = $request->get('p_begin_date');
$p_end_date = $request->get('p_end_date');
$status = $request->get('status');
$frame_no = $request->get('frame_no');
$engine_no = $request->get('engine_no');
$insurer1_no = $request->get('insurer1_no');
$type_id = $request->get('type_id');
$offset = $request->get('offset',0);
$limit = $request->get('limit', 10);
$query = GiftTicketTUse::find()
->leftJoin('order_t','order_t.id=gift_ticket_t_use.order_id')
->leftJoin('gift_t','gift_t.id=gift_ticket_t_use.type_id')
->leftJoin('user_t','user_t.id=gift_ticket_t_use.user_id')
->where('gift_t.type_id=2')
->orderBy('id DESC');
if($code != '') {
$query = $query->andWhere('gift_ticket_t_use.code="'.$code.'"');
}
if($car_no != '') {
$query = $query->andWhere('gift_ticket_t_use.car_no like "'.$car_no.'"');
}
if($username != ''){
$user = UserT::find()->where('username="'.$username.'"')->andWhere('is_delete=0')->one();
$query = $query->andWhere('gift_ticket_t_use.op_id='.$user->id);
}
if($s_begin_date != ''){
$query = $query->andWhere('order_t.submit_date>="'.$s_begin_date.'"');
}
if($s_end_date != ''){
$query = $query->andWhere('order_t.submit_date<="'.$s_begin_date.'"');
}
if($p_begin_date != ''){
$query = $query->andWhere('order_t.print_date>="'.$p_begin_date.'"');
}
if($p_end_date != ''){
$query = $query->andWhere('order_t.print_date<="'.$p_begin_date.'"');
}
if ($status == 1) {//礼券未使用
$query = $query->andWhere('gift_t.type_id=2 and gift_ticket_t_use.status=1');
} elseif ($status == 2) {//礼券使用中
$query = $query->andWhere('gift_t.type_id=2 and gift_ticket_t_use.status=2');
}
if ($status == 3) {//礼券使用完
$query = $query->andWhere('gift_t.type_id=2 and gift_ticket_t_use.status=3');
}
if ($status == 4) {//礼品未出库
$query = $query->andWhere('gift_t.type_id=1 and gift_ticket_t_use.status=1');
}
if ($status == 5) {//礼品已出库
$query = $query->andWhere('gift_t.type_id=1 and gift_ticket_t_use.status=3');
}
if($frame_no != '') {
$query = $query->andWhere('order_t.car_frame_no="'.$frame_no.'"');
}
if($engine_no != '') {
$query = $query->andWhere('order_t.engine_no="'.$engine_no.'"');
}
if($insurer1_no != '') {
$query = $query->andWhere('order_t.insurer1_no='.$insurer1_no);
}
if($type_id > 0) {
$query = $query->andWhere('gift_ticket_t_use.type_id='.$type_id);
}
// echo $query->createCommand()->rawSql;
$total = $query->count();
$items = $query->offset($offset)->limit($limit)->all();
$data = [];
$data['total'] = $total;
$data['rows'] = [];
foreach($items as $item) {
$order_info = $item->order;
$gift_info = $item->typeNew;
$row = $item->toArray();
$row['name'] = $gift_info->name;
$row['car_no'] = $item->car_no;
$row['car_frame_no'] = $order_info->car_no;
$row['op'] = $item->op?$item->op->getShowName():'';
$row['finished_date'] = $item->finished_date != '0000-00-00'?$item->finished_date:'';
$row['username'] = ($item->user && $item->status > 0)?$item->user->getShowName():'';
$row['submit_user'] = $order_info->user ? $order_info->user->getShowName():'';
$row['status'] = $item->getStatus();
$row['use_num'] = $gift_info->use_num;
$data['rows'][] = $row;
}
return $data;
}
public function actionGiftTj() {
return $this->render('gift-tj');
}
public function actionGiftTjJson()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$date_type = $request->get('date_type');
$begin_date = $request->get('begin_date');
$end_date = $request->get('end_date');
$offset = $request->get('offset',0);
$limit = $request->get('limit', 10);
$query = GiftT::find()->where(['type_id'=>1, 'is_delete'=>0]);
// echo $query->createCommand()->rawSql;
$total = $query->count();
$items = $query->offset($offset)->limit($limit)->all();
$data = [];
$data['total'] = $total;
$data['rows'] = [];
foreach($items as $item) {
$total = $item->getTicketsUseByDate($date_type,$begin_date,$end_date)->count();
$out_total = $item->getTicketsUseByDate($date_type,$begin_date,$end_date)->andWhere('gift_ticket_t_use.status=3')->count();
$row = $item->toArray();
$row['total'] = $total;
$row['unout_total'] = $total - $out_total;
$row['out_total'] = $out_total;
$data['rows'][] = $row;
}
return $data;
}
public function actionTicketTj() {
return $this->render('ticket-tj');
}
public function actionTicketTjJson()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$date_type = $request->get('date_type');
$begin_date = $request->get('begin_date');
$end_date = $request->get('end_date');
$offset = $request->get('offset',0);
$limit = $request->get('limit', 10);
$query = GiftT::find()->where(['type_id'=>2, 'is_delete'=>0]);
// echo $query->createCommand()->rawSql;
$total = $query->count();
$items = $query->offset($offset)->limit($limit)->all();
$data = [];
$data['total'] = $total;
$data['rows'] = [];
foreach($items as $item) {
$total = $item->getTicketsUseByDate($date_type,$begin_date,$end_date)->count();
$use_total = $item->getTicketsUseByDate($date_type,$begin_date,$end_date)->andWhere('gift_ticket_t_use.status=3')->count();
$row = $item->toArray();
$row['total'] = $total;
$row['unuse_total'] = $total - $use_total;
$row['use_total'] = $use_total;
$data['rows'][] = $row;
}
return $data;
}
public function actionTicketUseEdit()
{
$request = Yii::$app->request;
$id = $request->get('id',0);
$back_params = $request->get('back_params');
if($id > 0) {
$info = GiftTicketTUse::findOne(['id'=>$id]);
} else {
$info = new GiftTicketTUse();
}
return $this->render('ticket-use-edit',[
'info' => $info
]);
}
public function actionHistoryLogJson()
{
Yii::$app->response->format = Response::FORMAT_JSON;
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$id = $request->get('id');
$offset = $request->get('offset', 0);
$limit = $request->get('limit', 10);
$query = GiftUseLogT::find()
->where('gift_use_id='.$id)
->orderBy('op_time DESC');
$total = $query->count();
$query->offset($offset)->limit($limit);
$items = $query->all();
$data = [];
$data['total'] = $total;
$data['rows'] = [];
foreach($items as $item) {
$row = $item->toArray();
$row['op_time'] = date('Y-m-d H:i:s', $item->op_time);
$data['rows'][] = $row;
}
return $data;
}
public function actionUseSave()
{
Yii::$app->response->format = Response::FORMAT_JSON;
$request = Yii::$app->request;
$result = array();
$result['success'] = false;
$result['msg'] = '保存失败';
if($request->isPost) {
$id = $request->post('id');
$remark = $request->post('remark');
$tran = GiftTicketTUse::getDb()->beginTransaction();
try {
$ticket_info = GiftTicketTUse::findOne(['id'=>$id]);
if(!$ticket_info) {
$result['msg'] = '礼品券不存在!';
return $result;
}
$use_num = $ticket_info->typeNew->use_num;
$finished_num = $ticket_info->finished_num + 1;
$ticket_info->user_id = $this->my->id;
$ticket_info->finished_num = $finished_num;
$ticket_info->finished_date = date('Y-m-d');
$ticket_info->use_date = date('Y-m-d H:i:s');
if($finished_num < $use_num){
$ticket_info->status = 2;
}elseif ($finished_num >= $use_num){
$ticket_info->status = 3;
}
if(!$ticket_info->save()) {
throw new \Exception(print_r($ticket_info->getErrors(), true));
}
$this->addGiftUseLog($id,'使用了一次',$remark);
$result['success'] = true;
$result['msg'] = '保存成功';
$tran->commit();
} catch (\Exception $e) {
$tran->rollBack();
$result['msg'] = $e->getMessage();
}
}
return $result;
}
public function addGiftUseLog($id,$info,$remark,$type=1)
{
$log_info = new GiftUseLogT();
$log_info->gift_use_id = $id;
$log_info->op_time = time();
$log_info->op_man = $this->my->getShowName();
$log_info->group_name = $this->my->group?$this->my->group->getPath():'';
$log_info->type = $type;
$log_info->remark = $remark;
$log_info->info = $info;
if(!$log_info->save()) {
throw new \Exception(print_r($log_info->getErrors(), true));
}
}
}