PrizeLogV2Controller.class.php 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. <?php
  2. namespace Admin\Controller;
  3. /**
  4. * 样式管理
  5. * @author brent
  6. * @version 0.0.1
  7. */
  8. class PrizeLogV2Controller extends CommonController {
  9. protected $table = ''; //表名
  10. /**
  11. * [_initialize 前置操作-继承公共前置方法]
  12. * @author Devil
  13. * @blog http://gong.gg/
  14. * @version 0.0.1
  15. * @datetime 2016-12-03T12:39:08+0800
  16. */
  17. public function _initialize() {
  18. // 调用父类前置方法
  19. parent::_initialize();
  20. // 登录校验
  21. $this->Is_Login();
  22. // 权限校验
  23. $this->Is_Power();
  24. //要执行的表
  25. $this->table = M('prize_log_v2');
  26. }
  27. /**
  28. * [Index 文章列表]
  29. * @author Devil
  30. * @blog http://gong.gg/
  31. * @version 0.0.1
  32. * @datetime 2016-12-06T21:31:53+0800
  33. */
  34. public function Index() {
  35. //关键字
  36. $keyword = I('keyword');
  37. if($keyword){
  38. $where['pl.uid'] = ['like',"%$keyword%"];
  39. }
  40. //中奖状态
  41. $prize_status = I('prize_status',1);
  42. if($prize_status>-1){
  43. $where['pl.prize_status'] = ['egt',1];
  44. }
  45. if(I('model')=='exportExcel'){
  46. $listRows = I('listRows',100000,'intval');
  47. }else{
  48. $listRows = I('listRows',100,'intval');
  49. }
  50. if($p = I('p',1,'intval')){
  51. $offset = ($p-1)*$listRows;
  52. }
  53. $acts = M('activity_v2')->field('id,activity_name')->select();
  54. $this->assign('acts', $acts);
  55. //活动id
  56. $act_id = trim(I('act_id'));
  57. if($act_id){
  58. $where['pl.act_id'] = $act_id;
  59. }else{
  60. $this->display('Index');
  61. die;
  62. }
  63. $List = M('prize_log_v2')
  64. ->where($where)
  65. ->alias('pl')
  66. ->join("__ACTIVITY_USER_V2__ as au ON au.uid = pl.uid AND pl.act_id = au.act_id","left")
  67. ->field('pl.id,pl.prize_id, pl.prize_status,pl.uid, pl.created_at, pl.is_vip, au.user_phone,au.receiver,au.address,pl.act_id')
  68. ->order('pl.created_at Desc')
  69. ->limit($offset,$listRows)
  70. ->select();
  71. // var_dump(M()->getlastSql());die;
  72. $activitys = M('activity_v2')->field('id,activity_name,prize_list')->where(['id'=>$act_id])->select();
  73. foreach($activitys as $row){
  74. foreach (json_decode($row['prize_list'], TRUE) as $key => $value) {
  75. $prize_list[$value['prize_id']] = ['prize_id'=>$value['prize_id'],'prize_name'=>$value['prize_name']];
  76. }
  77. $activity_info[$row['id']] = ['activity_name'=>$row['activity_name'],'prize_list'=>$prize_list];
  78. }
  79. // var_dump($activity_info);die;
  80. foreach ($List as $key=>$row) {
  81. $List[$key]['id'] = $key + 1;
  82. $List[$key]['activity_name'] = $activity_info[$row['act_id']]['activity_name'];
  83. $List[$key]['prize_name'] = $activity_info[$row['act_id']]['prize_list'][$row['prize_id']]['prize_name'];
  84. }
  85. if(I('model')=='exportExcel'){
  86. $this->exportPrizeLog($List);
  87. die;
  88. }
  89. // var_dump($List);die;
  90. $count = $this->table->alias('pl')->where($where)->count();
  91. $Page = new \Think\Page($count, $listRows);
  92. $Page->parameter .= "&p=[PAGE]";
  93. $Page->parameter .= "&prize_status=".$prize_status;
  94. $Page->parameter .= "&act_id=".$act_id;
  95. $Page->parameter .= "&keyword=".$keyword;
  96. $Page = $this->page_config($Page);
  97. $show = $Page->show();
  98. $this->assign('page', $show);
  99. // echo $this->table->getlastSQL();die;
  100. $this->assign('List', $List);
  101. //获取所有活动
  102. $this->assign('keyword', $keyword);
  103. $this->assign('prize_status', $prize_status);
  104. $this->assign('act_id', $act_id);
  105. $this->display('Index');
  106. }
  107. public function exportPrizeLog($data)
  108. {
  109. $title = array(
  110. 'id' => array('col' => 'A', 'name' => '序号'),
  111. 'uid' => array('col' => 'B', 'name' => '用户ID'),
  112. 'prize_name' => array('col' => 'C', 'name' => '奖品名称'),
  113. 'user_phone' => array('col' => 'D', 'name' => '联系方式'),
  114. 'activity_name' => array('col' => 'E', 'name' => '活动名称'),
  115. 'created_at' => array('col' => 'F', 'name' => '中奖时间'),
  116. );
  117. // Excel驱动导出数据
  118. $excel = new \My\Excel(array('filename' => '芒果移动活动中奖记录', 'title' => $title, 'data' => $data, 'msg' => 'aaa'));
  119. $excel->Export();
  120. }
  121. /**
  122. * [SaveInfo 文章添加/编辑页面]
  123. * @author Devil
  124. * @blog http://gong.gg/
  125. * @version 0.0.1
  126. * @datetime 2016-12-14T21:37:02+0800
  127. */
  128. public function SaveInfo() {
  129. // 文章信息
  130. if (empty($_REQUEST['id'])) {
  131. $data = array();
  132. } else {
  133. $data = $this->table->find(I('id'));
  134. if (empty($data)) {
  135. $data = array('id' => I('id'));
  136. }
  137. }
  138. $this->assign('data', $data);
  139. $this->display('SaveInfo');
  140. }
  141. /**
  142. * [Save 文章添加/编辑]
  143. * @author Devil
  144. * @blog http://gong.gg/
  145. * @version 0.0.1
  146. * @datetime 2016-12-14T21:37:02+0800
  147. */
  148. public function Save() {
  149. // 是否ajax请求
  150. if (!IS_AjAX) {
  151. $this->error(L('common_unauthorized_access'));
  152. }
  153. // 添加
  154. if (empty($_POST['id'])) {
  155. $this->Add();
  156. // 编辑
  157. } else {
  158. $this->Edit();
  159. }
  160. }
  161. /**
  162. * [Add 文章添加]
  163. * @author Devil
  164. * @blog http://gong.gg/
  165. * @version 0.0.1
  166. * @datetime 2016-12-18T16:20:59+0800
  167. */
  168. private function Add() {
  169. $m = $this->table;
  170. $data['created_at'] = date('Y-m-d H:i:s', time());
  171. $data['prize_name'] = I('prize_name');
  172. $data['prize_img'] = I('prize_img');
  173. $data['prize_num'] = I('prize_num');
  174. // 数据添加
  175. if ($m->add($data)) {
  176. echo 100;
  177. } else {
  178. echo -100;
  179. }
  180. }
  181. /**
  182. * [Edit 文章编辑]
  183. * @author Devil
  184. * @blog http://gong.gg/
  185. * @version 0.0.1
  186. * @datetime 2016-12-17T22:13:40+0800
  187. */
  188. private function Edit() {
  189. $data = array();
  190. $m=$this->table;
  191. // 额外数据处理
  192. $data['created_at'] = date('Y-m-d H:i:s', time());
  193. $data['created_at'] = date('Y-m-d H:i:s', time());
  194. $data['prize_name'] = I('prize_name');
  195. $data['prize_img'] = I('prize_img');
  196. $data['prize_num'] = I('prize_num');
  197. // 数据更新
  198. if ($m->where(array('id' => I('id')))->save($data)) {
  199. echo 100;
  200. } else {
  201. echo -100;
  202. }
  203. }
  204. /**
  205. * [Delete 删除]
  206. * @author Devil
  207. * @blog http://gong.gg/
  208. * @version 0.0.1
  209. * @datetime 2016-12-15T11:03:30+0800
  210. */
  211. public function Delete() {
  212. // 是否ajax请求
  213. if (!IS_AJAX) {
  214. $this->error(L('common_unauthorized_access'));
  215. }
  216. // 删除数据
  217. if (!empty($_POST['id'])) {
  218. // 更新
  219. $prize_info = $this->table->find(I('id'));
  220. $where['act_id'] = $prize_info['act_id'];
  221. $where['uid'] = $prize_info['uid'];
  222. if ($this->table->delete(I('id'))) {
  223. //清空联系记录
  224. M('activity_user_v2')->where([$where])->delete();
  225. $this->ajaxReturn(L('common_operation_delete_success'));
  226. } else {
  227. $this->ajaxReturn(L('common_operation_delete_error'), -100);
  228. }
  229. } else {
  230. $this->ajaxReturn(L('common_param_error'), -1);
  231. }
  232. }
  233. }