Collageorder.php 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. <?php
  2. namespace app\mall\admin;
  3. use app\admin\controller\Admin;
  4. use think\Db;
  5. use think\Request;
  6. use think\Validate;
  7. use app\common\builder\ZBuilder;
  8. class Collageorder extends Admin
  9. {
  10. public function index(){
  11. $search_order=input('order','created_at desc,id desc');
  12. $order=$search_order;
  13. $search_state=input('state','-1');
  14. $search_deliver_state=input('deliver_state','-1');
  15. $search_created_start=trim(input('created_start',''));
  16. $search_created_end=trim(input('created_end',''));
  17. $search_keywords=trim(input('keywords',''));
  18. $search_user_id=input('user_id','0');
  19. $search_collage_product_id=input('collage_product_id','0');
  20. $map = [];
  21. if($search_state>=0){
  22. $map['state']=$search_state;
  23. }
  24. if($search_deliver_state>=0){
  25. $map['deliver_state']=$search_deliver_state;
  26. }
  27. $search_user_name='';
  28. if($search_user_id>0){
  29. $map['user_id']=$search_user_id;
  30. $search_user_name=db('users')->where('id',$search_user_id)->value('name');
  31. if($search_user_name===null){
  32. $search_user_name='<i style="color:#999;">无效用户</i>';
  33. }
  34. }
  35. $search_collage_product_title='';
  36. if($search_collage_product_id>0){
  37. $map['collage_product_id']=$search_collage_product_id;
  38. $search_collage_product_title=db('collage_products')->where('id',$search_collage_product_id)->value('title');
  39. if($search_collage_product_title===null){
  40. $search_collage_product_title='<i style="color:#999;">无效产品</i>';
  41. }
  42. }
  43. if($search_keywords!==''){
  44. $map['sn']=['like','%'.$search_keywords.'%'];
  45. }
  46. if($search_created_start!=='' || $search_created_end!==''){
  47. if($search_created_start!=='' && $search_created_end===''){
  48. $map['created_at']=['>=',strtotime($search_created_start.' 00:00:00')];
  49. }elseif($search_created_start==='' && $search_created_end!==''){
  50. $map['created_at']=['<=',strtotime($search_created_end.' 23:59:59')];
  51. }else{
  52. $map['created_at']=['between',[strtotime($search_created_start.' 00:00:00'),strtotime($search_created_end.' 23:59:59')]];
  53. }
  54. }
  55. $limit=Db::name('admin_config')->where('name','list_rows')->value('value');
  56. $data_list = Db::name('collage_orders')->where($map)->order($order)->paginate($limit);
  57. // 获取分页显示
  58. $page = $data_list->render();
  59. $data_list = json_decode(json_encode($data_list),TRUE);
  60. $data_list=$data_list['data'];
  61. foreach ($data_list as $key => $value) {
  62. $collage_product=db('collage_products')->where('id',$value['collage_product_id'])->find();
  63. $admin_attachment_ids=explode(',',$collage_product['admin_attachment_ids']);
  64. $data_list[$key]['collage_product_pic']=get_file_path($admin_attachment_ids[0]);
  65. $data_list[$key]['collage_product_title']=$collage_product['title'];
  66. $data_list[$key]['collage_product_spec']=$collage_product['spec'];
  67. $data_list[$key]['collage_product_size']=$collage_product['size'];
  68. $data_list[$key]['collage_price']=$collage_product['collage_price'];
  69. $data_list[$key]['price']=$collage_product['price'];
  70. $order_address=db('order_addresses')->where('id',$value['order_address_id'])->find();
  71. $data_list[$key]['receiver']=$order_address['receiver'];
  72. $data_list[$key]['receive_mobile']=$order_address['mobile'];
  73. $data_list[$key]['receive_address']=db('regions')->where('id',$order_address['province_code'])->value('name').' '.db('regions')->where('id',$order_address['city_code'])->value('name').' '.db('regions')->where('id',$order_address['district_code'])->value('name');
  74. $data_list[$key]['street']=$order_address['street'];
  75. $data_list[$key]['username']=db('users')->where('id',$value['user_id'])->value('name');
  76. $data_list[$key]['express_company']=db('expresses')->where('id',$value['express_id'])->value('name');
  77. $data_list[$key]['created_at_str']=date('Y-m-d H:i',$value['created_at']);
  78. switch ($value['state']) {
  79. case '0':
  80. $data_list[$key]['state_str']='进行中';
  81. break;
  82. case '1':
  83. $data_list[$key]['state_str']='拼单成功';
  84. break;
  85. case '2':
  86. $data_list[$key]['state_str']='待处理';
  87. break;
  88. case '3':
  89. $data_list[$key]['state_str']='已退款';
  90. break;
  91. case '4':
  92. $data_list[$key]['state_str']='已购买';
  93. break;
  94. default:
  95. $data_list[$key]['state_str']='错误状态';
  96. break;
  97. }
  98. if(in_array($value['state'], array('1','4'))){
  99. $data_list[$key]['deliver_status']=$value['deliver_state'];
  100. }else{
  101. $data_list[$key]['deliver_status']='-1';
  102. }
  103. $data_list[$key]['deliver_str']=$value['deliver_state']?'已发货':'未发货';
  104. }
  105. $expresses=db('expresses')->order('rank asc')->select();
  106. // 模板变量赋值
  107. $this->assign('expresses', $expresses);
  108. $this->assign('data_list', $data_list);
  109. $this->assign('page', $page);
  110. $this->assign('search_order', $search_order);
  111. $this->assign('search_state', $search_state);
  112. $this->assign('search_deliver_state', $search_deliver_state);
  113. $this->assign('search_created_start', $search_created_start);
  114. $this->assign('search_created_end', $search_created_end);
  115. $this->assign('search_keywords', $search_keywords);
  116. $this->assign('search_user_id', $search_user_id);
  117. $this->assign('search_collage_product_id', $search_collage_product_id);
  118. $this->assign('search_user_name', $search_user_name);
  119. $this->assign('search_collage_product_title', $search_collage_product_title);
  120. $this->assign('empty','<div style="height:250px;line-height:250px;text-align:center;font-size:30px;color:#666;background:#fff;">!没有数据</div>');
  121. $this->assign('page_title', db('admin_menu')->where('id','245')->value('title'));
  122. // 渲染模板输出
  123. return $this->fetch();
  124. }
  125. public function deliver($action=''){
  126. //判断是否为post请求
  127. if (Request::instance()->isPost()) {
  128. //获取请求的post数据
  129. $data=input('post.');
  130. // 查处数据
  131. $collage_order=Db::name("collage_orders")->where('state','in',['1','4'])->where('id',$data['id'])->find();
  132. if(!$collage_order){
  133. exit(json_encode(['data'=>[],'code'=>201,'msg'=>'请求错误']));
  134. }
  135. $now=time();
  136. switch ($action) {
  137. case 'deliver':
  138. $msg='发货';
  139. break;
  140. case 'edit':
  141. $msg='修改';
  142. break;
  143. default:
  144. exit(json_encode(['data'=>[],'code'=>201,'msg'=>'请求错误']));
  145. break;
  146. }
  147. //数据输入验证
  148. $validate = new Validate([
  149. 'express_id|物流公司' => 'require',
  150. 'express_sn|物流单号' => 'require',
  151. ]);
  152. if (!$validate->check($data)) {
  153. exit(json_encode(['data'=>[],'code'=>202,'msg'=>$validate->getError()]));
  154. }
  155. //数据处理
  156. $update=array();
  157. $update['id']=$data['id'];
  158. $update['express_id']=$data['express_id'];
  159. $update['express_sn']=$data['express_sn'];
  160. $update['deliver_state']='1';
  161. $update['updated_at']=$now;
  162. //数据更新
  163. $rt=Db::name("collage_orders")->update($update);
  164. //跳转
  165. if($rt!==false){
  166. if($action=='deliver'){
  167. $express_company=db('expresses')->where('id',$data['express_id'])->value('name');
  168. Db::name("collage_order_events")->insertGetId(['collage_order_id'=>$data['id'],'event'=>'商城已发货('.$express_company.':'.$data['express_sn'].')','created_at'=>$now,'updated_at'=>$now]);
  169. }else{
  170. Db::name("collage_order_events")->where(['collage_order_id'=>$data['id']])->where('event','like','%商城已发货%')->update(['event'=>'商城已发货('.$data['express_id'].':'.$data['express_sn'].')','updated_at'=>$now]);
  171. }
  172. exit(json_encode(['data'=>[],'code'=>200,'msg'=>$msg.'成功']));
  173. } else {
  174. exit(json_encode(['data'=>[],'code'=>203,'msg'=>$msg.'失败']));
  175. }
  176. }
  177. }
  178. }