Order.php 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. <?php
  2. /**
  3. *
  4. * User: anyluck
  5. * Date: 2020/6/2
  6. * Time: 17:41
  7. */
  8. namespace app\admin\controller;
  9. use app\common\controller\Message;
  10. use app\common\controller\Orde;
  11. use app\common\model\State;
  12. use app\common\model\UserMessage;
  13. use think\facade\Db;
  14. use think\facade\Request;
  15. use think\facade\View;
  16. use app\common\controller\Backend;
  17. use app\common\model\Order as OrderS;
  18. class Order extends Backend
  19. {
  20. // 订单管理
  21. /**
  22. * 求购订单列表
  23. */
  24. public function buy()
  25. {
  26. if (Request::isPost()) {
  27. $name = input("name");
  28. $page = input("page") ?: 1;
  29. $limit = input("limit") ?: 10;
  30. $where = [];
  31. if ($name){
  32. $where["o.id|u.name|o.buy_user|push_user|u.phone|o.order|o.number|o.enlarge_quota"]=$name;
  33. }
  34. $where["o.status"]=0;
  35. $list = Db::name("order")->alias("o")->where($where)
  36. ->join("user u","u.id=o.buy_user")
  37. ->field("o.*,u.name user_name")
  38. ->order("o.id desc")->paginate(["list_row" => $limit, "page" => $page])->each(function ($item) {
  39. $item["add_time"]=date("Y-m-d H:i:s",$item["add_time"]);
  40. if ($item["stat_time"]){
  41. $item["stat_time"]=date("Y-m-d H:i:s",$item["stat_time"]);
  42. }
  43. if ($item["end_time"]){
  44. $item["end_time"]=date("Y-m-d H:i:s",$item["end_time"]);
  45. }
  46. switch ($item["status"]){
  47. case 0:$item["status"]="未匹配";break;
  48. case 1:$item["status"]="已匹配或待支付";break;
  49. case 2:$item["status"]="已上传数据";break;
  50. case 3:$item["status"]="已完成";break;
  51. case 4:$item["status"]="已撤销";break;
  52. case 5:$item["status"]="交易失败";break;
  53. }
  54. if ($item["image"]){
  55. $item["image"]=explode(",",$item["image"]);
  56. }
  57. return $item;
  58. })->toArray();
  59. return $result = ['code' => 0, 'msg' => lang('get info success'), 'data' => $list['data'] ?: [], 'count' => $list['total'] ?: 0];
  60. }
  61. $where["admin"]=1;
  62. $user=\app\common\model\User::where($where)->field("id,name")->select();
  63. if ($user){
  64. $data=$user->toArray();
  65. }else{
  66. $data=[];
  67. }
  68. View::assign("data",$data);
  69. return View::fetch();
  70. }
  71. /**
  72. * 持有订单列表
  73. */
  74. public function push()
  75. {
  76. if (Request::isPost()) {
  77. $name = input("name");
  78. $page = input("page") ?: 1;
  79. $limit = input("limit") ?: 10;
  80. $where = [];
  81. if ($name){
  82. $where[]=["o.id|u.name|up.name|o.buy_user|push_user|u.phone|o.order|o.number|o.enlarge_quota","=",$name];
  83. }
  84. $where[]=["o.status",">",0];
  85. $where[]=["o.is_admin","=",0];
  86. $list = Db::name("order")->alias("o")->where($where)
  87. ->join("user u","u.id=o.buy_user","left")
  88. ->join("user up","up.id=o.push_user","left")
  89. ->field("o.*,u.name user_name,up.name puser_name")
  90. ->order("o.status asc,o.id desc")
  91. ->paginate(["list_row" => $limit, "page" => $page])->each(function ($item) {
  92. // $user = \app\common\model\User::where(["id" => $item["buy_user"]])->field("name")->find();
  93. // $item["user_name"] = $user->name;
  94. $item["add_time"]=date("Y-m-d H:i:s",$item["add_time"]);
  95. if ($item["stat_time"]){
  96. $item["stat_time"]=date("Y-m-d H:i:s",$item["stat_time"]);
  97. }
  98. if ($item["end_time"]){
  99. $item["end_time"]=date("Y-m-d H:i:s",$item["end_time"]);
  100. }
  101. switch ($item["status"]){
  102. case 0:$item["status"]="未匹配";break;
  103. case 1:$item["status"]="已匹配或待支付";break;
  104. case 2:$item["status"]="已上传数据";break;
  105. case 3:$item["status"]="已完成";break;
  106. case 4:$item["status"]="已撤销";break;
  107. case 5:$item["status"]="交易失败";break;
  108. }
  109. if ($item["image"]){
  110. $item["image"]=explode(",",$item["image"]);
  111. }
  112. return $item;
  113. })->toArray();
  114. return $result = ['code' => 0, 'msg' => lang('get info success'), 'data' => $list['data'] ?: [], 'count' => $list['total'] ?: 0];
  115. }
  116. return View::fetch();
  117. }
  118. /**
  119. * 申述处理 state
  120. */
  121. public function bond()
  122. {
  123. if (Request::isPost()) {
  124. $name = input("name");
  125. $page = input("page") ?: 1;
  126. $limit = input("limit") ?: 10;
  127. $where = [];
  128. // if ($name){
  129. // $where["name"]=["like","% $name %"];
  130. // }
  131. $list = State::where($where)->order("id desc")->paginate(["list_row" => $limit, "page" => $page])->each(function ($item) {
  132. $user = \app\common\model\User::where(["id" => $item["user_id"]])->field("name")->find();
  133. $item["user_name"] = $user->name;
  134. $item["add_time"]=date("Y-m-d H:i:s",$item["add_time"]);
  135. if ($item["image"]){
  136. $item["image"]=explode(",",$item["image"]);
  137. }
  138. return $item;
  139. })->toArray();
  140. return $result = ['code' => 0, 'msg' => lang('get info success'), 'data' => $list['data'] ?: [], 'count' => $list['total'] ?: 0];
  141. }
  142. return View::fetch();
  143. }
  144. // 所有 买入订单匹配
  145. public function allmatching()
  146. {
  147. }
  148. //单个 买入订单匹配
  149. public function matching()
  150. {
  151. $user_id=input("user_id");
  152. $order_id=input("order_id");
  153. $update["push_user"]=$user_id;
  154. $update["status"]=1;
  155. $update["is_admin"]=1;
  156. $update["stat_time"]=time()+1*3600;
  157. OrderS::update($update,["id"=>$order_id]);
  158. $orders=OrderS::where(["id"=>$order_id])->field("buy_user,number,order")->find();
  159. Message::add_message($orders->buy_user,2,"您有新交易","您有新的".$orders['number']."区交易匹配成功,编号【".$orders['order']."】,请在1小时内完成付款。");
  160. json_result(200,"匹配成功");
  161. }
  162. // 后台账号匹配订单
  163. public function adminorder()
  164. {
  165. if (Request::isPost()) {
  166. $name = input("name");
  167. $page = input("page") ?: 1;
  168. $limit = input("limit") ?: 10;
  169. $where = [];
  170. $where[]=["status",">",0];
  171. $where[]=["is_admin","=",1];
  172. $list = \app\common\model\Order::where($where)->order("status asc,id desc")->paginate(["list_row" => $limit, "page" => $page])->each(function ($item) {
  173. $user = \app\common\model\User::where(["id" => $item["buy_user"]])->field("name")->find();
  174. $item["user_name"] = $user->name;
  175. $item["add_time"]=date("Y-m-d H:i:s",$item["add_time"]);
  176. if ($item["stat_time"]){
  177. $item["stat_time"]=date("Y-m-d H:i:s",$item["stat_time"]);
  178. }
  179. if ($item["end_time"]){
  180. $item["end_time"]=date("Y-m-d H:i:s",$item["end_time"]);
  181. }
  182. switch ($item["status"]){
  183. case 0:$item["status"]="未匹配";break;
  184. case 1:$item["status"]="已匹配或待支付";break;
  185. case 2:$item["status"]="已上传数据";break;
  186. case 3:$item["status"]="已完成";break;
  187. case 4:$item["status"]="已撤销";break;
  188. case 5:$item["status"]="交易失败";break;
  189. }
  190. if ($item["image"]){
  191. $item["image"]=explode(",",$item["image"]);
  192. }
  193. return $item;
  194. })->toArray();
  195. return $result = ['code' => 0, 'msg' => lang('get info success'), 'data' => $list['data'] ?: [], 'count' => $list['total'] ?: 0];
  196. }
  197. return View::fetch();
  198. }
  199. // 驳回订单
  200. public function reject()
  201. {
  202. $id=input("id");
  203. $msg=input("text");
  204. $where["id"]=$id;
  205. $order=\app\common\model\Order::where($where)->find();
  206. if ($order->status==3){
  207. json_result(400,"该订单已经完成或交易失败");
  208. }
  209. Orde::order_fail($msg,$order);
  210. json_result(200,"驳回成功");
  211. }
  212. // 交易成功
  213. public function confirms()
  214. {
  215. $id=input("id");
  216. $where["id"]=$id;
  217. $order=\app\common\model\Order::where($where)->find();
  218. // if ($order->status==3||$order->status==4||$order->status==5){
  219. if ($order->status==3){
  220. json_result(400,"该订单已经完成或交易失败");
  221. }
  222. Orde::order_success($order);
  223. json_result(200,"交易成功");
  224. }
  225. // 个人信息
  226. public function personl()
  227. {
  228. if (Request::isPost()) {
  229. $data = Request::post();
  230. $adminid=input("user_id");
  231. $where["user_id"]=$adminid;
  232. \app\common\model\UserMessage::update($data,$where);
  233. json_result(200, "修改成功", $data);
  234. }
  235. $id=input("id");
  236. $type=input("type");
  237. $hre=input("hre");
  238. $where["user_id"]=$id;
  239. $code=\app\common\model\UserMessage::where($where)->find();
  240. if (!$code){
  241. \app\common\model\UserMessage::create($where);
  242. $code=\app\common\model\UserMessage::where($where)->find();
  243. }
  244. View::assign("user",$code);
  245. View::assign("hre",$hre);
  246. return View::fetch();
  247. }
  248. }