Delivery.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | A3Mall
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2020 http://www.a3-mall.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Author: xzncit <158373108@qq.com>
  8. // +----------------------------------------------------------------------
  9. namespace app\admin\service\order;
  10. use app\admin\service\Service;
  11. use app\admin\model\order\OrderDelivery as OrderDeliveryModel;
  12. use app\common\models\Area as AreaModel;
  13. use app\common\models\order\OrderGoods as OrderGoodsModel;
  14. use app\common\models\system\Users as UsersModel;
  15. class Delivery extends Service {
  16. /**
  17. * 获取列表数据
  18. * @param $data
  19. * @return array
  20. * @throws \think\db\exception\DataNotFoundException
  21. * @throws \think\db\exception\DbException
  22. * @throws \think\db\exception\ModelNotFoundException
  23. */
  24. public static function getList($data){
  25. $condition = [];
  26. $key = $data["key"]??[];
  27. $arr = ["order.order_no","users.username"];
  28. if((isset($key["type"]) && isset($arr[$key["type"]])) && !empty($key["title"])){
  29. $condition[] = [$arr[$key["type"]],"like",'%'.$key["title"].'%'];
  30. }
  31. $count = OrderDeliveryModel::withJoin(["order","users","orderFreight"])->where($condition)->count();
  32. $result = array_map(function ($res){
  33. $res["username"] = getUserName($res);
  34. return $res;
  35. },OrderDeliveryModel::withJoin(["order","users","orderFreight"])->where($condition)->order("id","desc")->page($data["page"]??1,$data["limit"]??10)->select()->toArray());
  36. return ["count"=>$count, "data"=>$result];
  37. }
  38. /**
  39. * 详情
  40. * @param $id
  41. * @return array
  42. * @throws \think\db\exception\DataNotFoundException
  43. * @throws \think\db\exception\DbException
  44. * @throws \think\db\exception\ModelNotFoundException
  45. */
  46. public static function detail($id){
  47. $data = OrderDeliveryModel::alias("c")
  48. ->field('c.id as id,c.user_id,c.admin_id,o.order_no,c.order_id,d.title as pname,o.create_time as order_create_time,u.username,c.name,c.province,c.city,c.area,c.address,c.mobile,c.phone,c.zip,c.freight,c.distribution_code,c.create_time,c.note')
  49. ->join("order o","c.order_id=o.id","LEFT")
  50. ->join("users u","u.id=c.user_id","LEFT")
  51. ->join("distribution d","c.distribution_id=d.id","LEFT")->where('c.id',$id)->find();
  52. if(empty($data)){
  53. throw new \Exception("您要查找的内容不存在!");
  54. }
  55. $data["area_name"] = AreaModel::getArea([$data['province'], $data['city'], $data['area']],",");
  56. $data["order_create_time"] = date("Y-m-d H:i:s",$data['order_create_time']);
  57. $data["username"] = getUserName($data);
  58. if($data["admin_id"] == "-1"){
  59. $data['admin_name'] = 'system';
  60. }else{
  61. $data['admin_name'] = UsersModel::where(["id"=>$data["admin_id"]])->value("username");
  62. }
  63. $orderGoods= OrderGoodsModel::where(["order_id" => $data["order_id"]])->order("id","DESC")->select()->toArray();
  64. foreach($orderGoods as $key=>$item){
  65. $orderGoods[$key]["goods_array"] = "";
  66. if(!empty($item["goods_array"])){
  67. $orderGoods[$key]["goods_array"] = json_decode($item["goods_array"],true);
  68. }
  69. $orderGoods[$key]["order_price"] = number_format($item["goods_nums"]*$item["sell_price"],2);
  70. }
  71. $data["goods"] = $orderGoods;
  72. return [ "data"=>$data ];
  73. }
  74. }