ShopOrderLogic.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace app\workerapi\logic\shops;
  3. use app\common\logic\BaseLogic;
  4. use app\common\model\article\Article;
  5. use app\common\model\decorate\DecoratePage;
  6. use app\common\model\decorate\DecorateTabbar;
  7. use app\common\model\setting\PostageRegion;
  8. use app\common\model\shops\ShopAddress;
  9. use app\common\model\shops\ShopOrders;
  10. use app\common\model\user\UserAddress;
  11. use app\common\service\ConfigService;
  12. use app\common\service\FileService;
  13. use think\db\Query;
  14. use think\facade\Db;
  15. /**
  16. * 订单
  17. */
  18. class ShopOrderLogic extends BaseLogic
  19. {
  20. /**
  21. * @notes 获取详情
  22. * @param $params
  23. * @return array
  24. * @author likeadmin
  25. * @date 2024/07/18 13:51
  26. */
  27. public static function detail($params): array
  28. {
  29. $detail = ShopOrders::with(['orderGoods'=>function(Query $query){
  30. $query->field(['sn','goods_name','goods_image','number','service_fee','company_name','delivery_type','shop_goods_type','goods_specs_inventory_id','specs_type','custom_attribute_items','specs'])->append(['spec_arr','delivery_type_text','shop_goods_type_text']);
  31. }])->field('id, sn, real_name,mobile, address,pay_time, paw_way,pay_sn, pay_status, refund_status, refund_transaction_id,create_time, amount_total, amount')
  32. ->append(['pay_way_text','pay_status_text','refund_status_text'])->where(['sn'=> $params['sn'],'worker_id'=>$params['worker_id']])->findOrEmpty()->toArray();
  33. foreach($detail['orderGoods'] as &$val){
  34. unset($val['goodsSpecsInventory'],$val['custom_attribute_items'],$val['specs'],$val['sn'],$val['goods_specs_inventory_id']);
  35. }
  36. return $detail;
  37. }
  38. public static function cancelOrder($params):bool
  39. {
  40. Db::startTrans();
  41. try {
  42. $orderModel = ShopOrders::where([
  43. 'shop_order_type' => 1,
  44. 'worker_id' => $params['worker_id'],
  45. 'sn'=>$params['sn']
  46. ])->findOrEmpty();
  47. if($orderModel->isEmpty()){
  48. throw new Exception('订单不存在或不是待支付状态');
  49. }
  50. $orderModel->shop_order_type = 0;
  51. $orderModel->save();
  52. Db::commit();
  53. return true;
  54. } catch (\Exception $e) {
  55. Db::rollback();
  56. self::setError($e->getMessage());
  57. return false;
  58. }
  59. }
  60. }