Order.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. <?php
  2. namespace app\data\controller\api\business;
  3. use app\data\model\DataUser;
  4. use app\data\model\ShopOrder;
  5. use app\data\model\ShopOrderItem;
  6. use app\data\model\ShopOrderSend;
  7. use app\data\model\SystemUserAddress;
  8. use think\admin\Controller;
  9. use hg\apidoc\annotation\Title;
  10. use hg\apidoc\annotation\Method;
  11. use hg\apidoc\annotation\Param;
  12. use hg\apidoc\annotation\Returned;
  13. /**
  14. * 商家订单数据接口
  15. */
  16. class Order extends Controller
  17. {
  18. /**
  19. * @Title ("主页订单上标数量")
  20. * @Method ("get")
  21. * @return void
  22. * @throws \think\db\exception\DbException
  23. */
  24. public function order_statistics(){
  25. $admin_id=$this->uuid();
  26. $count = ['待付款','待发货','待收货','退款/售后'];
  27. foreach ($count as &$v){
  28. switch ($v){
  29. case '待付款':
  30. $array = [2];
  31. break;
  32. case '待发货':
  33. $array = [4];
  34. break;
  35. case '待收货':
  36. $array = [5];
  37. break;
  38. case '退款/售后':
  39. $array = [6,7];
  40. break;
  41. }
  42. $v=ShopOrder::mk()->where('admin_id',$admin_id->id)->whereIn('status',$array)->count();
  43. }
  44. $this->success('商城订单上标数量',$count);
  45. }
  46. /**
  47. * @Title ("商城订单上标数量")
  48. * @Method ("get")
  49. * @return void
  50. * @throws \think\db\exception\DbException
  51. */
  52. public function order_count(){
  53. $admin_id=$this->uuid();
  54. $count = ['全部','待付款','待发货','待收货'];
  55. foreach ($count as &$v){
  56. switch ($v){
  57. case '全部':
  58. $array = [0,1,2,3,4,5];
  59. break;
  60. case 2:
  61. $array = [2];
  62. break;
  63. case 3:
  64. $array = [4];
  65. break;
  66. case 4:
  67. $array = [5];
  68. break;
  69. }
  70. $v=ShopOrder::mk()->where('admin_id',$admin_id->id)->whereIn('status',$array)->count();
  71. }
  72. $this->success('商城订单上标数量',$count);
  73. }
  74. /**
  75. * @Title("我的订单")
  76. * @Method("post")
  77. * @Param ("page",desc="页码")
  78. * @Param("order_name",desc="搜索名称")
  79. * @Param ("status",desc="1全部 2 待支付 3代发货 4 待收货")
  80. */
  81. public function order_list(){
  82. $admin_id=$this->uuid();
  83. $status = input('status',1);
  84. if(!empty($status)){
  85. switch ($status){
  86. case 1:
  87. $array = [0,1,2,3,4,5,6];
  88. break;
  89. case 2:
  90. $array = [2];
  91. break;
  92. case 3:
  93. $array = [4];
  94. break;
  95. case 4:
  96. $array = [5];
  97. break;
  98. }
  99. }
  100. $query = ShopOrder::mQuery()->like('order_name');
  101. $list = $query ->where('admin_id',$admin_id['id'])
  102. ->whereIn('status',$array)->order('id desc')->page(true, false, false, 10);
  103. foreach ($list['list'] as $k=>$v){
  104. $list['list'][$k]['goods_item']=ShopOrderItem::mk()->where('order_no',$list['list'][$k]['order_no'])->select();
  105. $list['list'][$k]['user_address']=ShopOrderSend::mk()->where('order_no',$list['list'][$k]['order_no'])->find();
  106. }
  107. $this->success('店铺订单列表',$list);
  108. }
  109. /**
  110. * @Title ("订单详情")
  111. * @Method ("post")
  112. * @Param ("order_id",desc="订单id")
  113. * @return void
  114. * @throws \think\db\exception\DataNotFoundException
  115. * @throws \think\db\exception\DbException
  116. * @throws \think\db\exception\ModelNotFoundException
  117. */
  118. public function order_info(){
  119. $admin_id=$this->uuid();
  120. $order_id = input('order_id');
  121. $list = ShopOrder::mk()->where('admin_id',$admin_id['id'])->where('id',$order_id)->find();
  122. $list['time']=0;
  123. if($list['status']==2){
  124. $list['time'] = strtotime($list['create_at'])+30*60-time();
  125. }
  126. $list['user']=DataUser::mk()->where('id',$list['uuid'])->field('nickname,phone')->find();
  127. $list['goods_item']=ShopOrderItem::mk()->where('order_no',$list['order_no'])->select();
  128. $list['user_address']=ShopOrderSend::mk()->where('order_no',$list['order_no'])->find();
  129. $this->success('店铺订单列表',$list);
  130. }
  131. /**
  132. * @Title ("退款订单列表")
  133. * @Method ("get")
  134. * @Param ("page",desc="页码")
  135. * @return void
  136. * @throws \think\db\exception\DataNotFoundException
  137. * @throws \think\db\exception\DbException
  138. * @throws \think\db\exception\ModelNotFoundException
  139. */
  140. public function refund_list(){
  141. $admin_id=$this->uuid();
  142. $status =[7,8];
  143. $query = ShopOrder::mQuery()->like('order_name');
  144. $list = $query ->where('admin_id',$admin_id['id'])
  145. ->whereIn('status',$status)->order('id desc')->page(true, false, false, 10);
  146. foreach ($list['list'] as $k=>$v){
  147. $list['list'][$k]['goods_item']=ShopOrderItem::mk()->where('order_no',$list['list'][$k]['order_no'])->select();
  148. $list['list'][$k]['user_address']=ShopOrderSend::mk()->where('order_no',$list['list'][$k]['order_no'])->find();
  149. }
  150. $this->success('退款订单',$list);
  151. }
  152. /**
  153. * @Title ("退款操作接口")
  154. * @Method ("post")
  155. * @Param ("order_id",desc="订单id")
  156. * @Param ("type",desc="退款操作 type=1同意退款 type=2 不同意驳回")
  157. * @return void
  158. * @throws \think\db\exception\DataNotFoundException
  159. * @throws \think\db\exception\DbException
  160. * @throws \think\db\exception\ModelNotFoundException
  161. */
  162. public function examine_refund(){
  163. $admnd_id=$this->uuid();
  164. $data = $this->_vali([
  165. 'order_id.require'=>'退款订单不能为空',
  166. 'type.require'=>'操作类型能为空'
  167. ]);
  168. $info = ShopOrder::mk()->where(['id'=>$data['order_id'],'admin_id'=>$admnd_id['id'],'status'=>7])->find();
  169. if(empty($info)){
  170. $this->error('订单信息有误');
  171. }
  172. else{
  173. // 退款操作
  174. if($data['type']==1){
  175. //同意退款
  176. ShopOrder::mk()->where(['id'=>$data['order_id'],'admin_id'=>$admnd_id['id']])->save(['status'=>8,'refund_status'=>4,'dk_time'=>date('Y-m-d H:i:s')]);
  177. $this->success('已同意退款,支付金额原路退回');
  178. }
  179. else if($data['type']==1){
  180. ShopOrder::mk()->where(['id'=>$data['order_id'],'admin_id'=>$admnd_id['id']])->save(['status'=>5]);
  181. //不同意退款
  182. $this->success('已驳回用户退款申请');
  183. }
  184. //统一退货
  185. else {
  186. ShopOrder::mk()->where(['id'=>$data['order_id'],'admin_id'=>$admnd_id['id']])->save(['refund_status'=>2]);
  187. //不同意退款
  188. $this->success('同意退货');
  189. }
  190. }
  191. }
  192. /**
  193. * @Title ("立即发货")
  194. * @Method ("post")
  195. * @Param ("order_no",desc="订单编号")
  196. * @Param ("send_number",desc="快递编号")
  197. * @Param ("company_name",desc="快递公司")
  198. * @Param ("name",desc="发货姓名")
  199. * @Param ("pone",desc="发货联系号码")
  200. * @Param ("province",desc="省")
  201. * @Param ("city",desc="城市")
  202. * @Param ("area",desc="地区")
  203. * @Param ("address",desc="详细地址")
  204. * @return void
  205. */
  206. public function order_send(){
  207. $admin_id = $this->uuid();
  208. $data = $this->_vali(
  209. [
  210. 'order_no'=>'订单信息不能为空',
  211. 'send_number.require'=>'快递单号不能为空',
  212. 'company_name.require'=>'快递公司名称不能为空',
  213. 'name.require'=>'发货商家联系人',
  214. 'pone.require'=>'商家联系号码',
  215. 'province.require'=>'发货商家省',
  216. 'city.require'=>'商家市',
  217. 'area.require'=>'发货商家区县',
  218. 'address.require'=>'详细地址'
  219. ]
  220. );
  221. $send_data = [
  222. 'send_number'=>$data['send_number'],
  223. 'company_name'=>$data['company_name'],
  224. 'send_datetime'=>date('Y-m-d H:i:s'),
  225. 'fa_name'=>$data['name'],
  226. 'fa_phone'=>$data['phone'],
  227. 'fa_address'=>$data['province'].$data['city'].$data['area'].$data['address'],
  228. 'shou_name'=>$data['name'],
  229. 'shou_phone'=>$data['phone'],
  230. 'shou_address'=>$data['province'].$data['city'].$data['area'].$data['address'],
  231. ];
  232. ShopOrderSend::mk()->where('order_no',$data['order_no'])->save($send_data);
  233. ShopOrder::mk()->where('order_no',$data['order_no'])->save(['status'=>5]);
  234. $this->success('发货成功');
  235. }
  236. public function uuid(){
  237. $purchase_model = new Common($this->app);
  238. $uuid = $purchase_model->uuid();
  239. return $uuid;
  240. }
  241. }