PayorderController.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. <?php
  2. namespace plugin\admin\app\controller;
  3. use app\api\repositories\PayRepositories;
  4. use app\business\PayorderBusiness;
  5. use Illuminate\Support\Arr;
  6. use plugin\admin\app\model\ArticleType;
  7. use plugin\admin\app\model\Good;
  8. use plugin\admin\app\model\PayAisle;
  9. use Respect\Validation\Validator;
  10. use support\Db;
  11. use support\Request;
  12. use support\Response;
  13. use plugin\admin\app\model\Payorder;
  14. use plugin\admin\app\controller\Crud;
  15. use support\exception\BusinessException;
  16. /**
  17. * 支付订单
  18. */
  19. class PayorderController extends Crud
  20. {
  21. /**
  22. * @var Payorder
  23. */
  24. protected $model = null;
  25. /**
  26. * 构造函数
  27. * @return void
  28. */
  29. public function __construct()
  30. {
  31. $this->model = new Payorder;
  32. }
  33. /**
  34. * 浏览
  35. * @return Response
  36. */
  37. public function index(): Response
  38. {
  39. return view('payorder/index');
  40. }
  41. /**
  42. * 插入
  43. * @param Request $request
  44. * @return Response
  45. * @throws BusinessException
  46. */
  47. public function insert(Request $request): Response
  48. {
  49. if ($request->method() === 'POST') {
  50. return parent::insert($request);
  51. }
  52. return view('payorder/insert');
  53. }
  54. /**
  55. * 更新
  56. * @param Request $request
  57. * @return Response
  58. * @throws BusinessException
  59. */
  60. public function update(Request $request): Response
  61. {
  62. if ($request->method() === 'POST') {
  63. return parent::update($request);
  64. }
  65. return view('payorder/update');
  66. }
  67. public function select(Request $request): Response
  68. {
  69. $param = $request->all();
  70. $data = Payorder::query()->where(function ($query) use ($param) {
  71. if (Arr::get($param, 'created_at.0') && Arr::get($param, 'created_at.1')) {
  72. $query->whereBetween('created_at', [$param['created_at'][0], $param['created_at'][1]]);
  73. } elseif (Arr::get($param, 'created_at.0')) {
  74. $query->where('created_at', '>=', $param['created_at'][0]);
  75. } elseif (Arr::get($param, 'created_at.1')) {
  76. $query->where('created_at', '<=', $param['created_at'][1]);
  77. }
  78. if (Arr::get($param, 'order_no')) {
  79. $query->where('order_no', 'like', '%' . $param['order_no'] . '%');
  80. }
  81. if (Arr::get($param, 'pay_type')) {
  82. $query->where('pay_type', $param['pay_type']);
  83. }
  84. if (Arr::get($param, 'is_pay')) {
  85. $query->where('is_pay', $param['is_pay']);
  86. }
  87. // if (Arr::get($param, 'goods_type')) {
  88. // $query->where('goods_type', $param['goods_type']);
  89. // }
  90. })->whereExists(function ($query) use ($param) {
  91. $query->from('wa_users')->whereRaw('wa_users.id=wa_payorder.user_id');
  92. if (Arr::get($param, 'user_name')) {
  93. $query->where('name', 'like', '%' . $param['user_name'] . '%');
  94. }
  95. if (Arr::get($param, 'user_mobile')) {
  96. $query->where('mobile', 'like', '%' . $param['user_mobile'] . '%');
  97. }
  98. })
  99. ->with('userData:id,name,mobile');
  100. if (Arr::get($param, 'field')) {
  101. $order = 'asc';
  102. if (Arr::get($param, 'order')) {
  103. $order = 'desc';
  104. }
  105. $data = $data->orderBy($param['field'], $order);
  106. } else {
  107. $data = $data->orderByDesc('id');
  108. }
  109. $data = $data->paginate(Arr::get($param, 'limit', 10))->toArray();
  110. $arr = [];
  111. $Good = Good::query();
  112. foreach ($data['data'] as $k => $v) {
  113. $pataisle = PayAisle::query()->where('characteristic', $v['pay_characteristic'])->first();
  114. if ($pataisle) {
  115. $pay_characteristic_name = $pataisle['name'] . '--' . $pataisle['title'];
  116. } else {
  117. $pay_characteristic_name = '';
  118. }
  119. $arr[] = [
  120. 'bid_name' => (clone $Good)->where('id', $v['goods_id'])->value('name'),
  121. 'user_name' => $v['user_data']['name'],
  122. 'user_mobile' => $v['user_data']['mobile'],
  123. 'pay_no' => $v['pay_no'],
  124. 'pay_type' => $v['pay_type'],
  125. 'pay_characteristic_name' => $pay_characteristic_name,
  126. 'pay_characteristic' => $v['pay_characteristic'],
  127. 'order_no' => $v['order_no'],
  128. 'money' => $v['money'],
  129. 'is_pay' => $v['is_pay'],
  130. 'created_at' => $v['created_at'],
  131. 'id' => $v['id'],
  132. 'img' => $v['img'],
  133. ];
  134. }
  135. return json(['code' => 0, 'data' => $arr, 'msg' => 'ok', 'count' => $data['total']]);
  136. }
  137. /** 审核通过
  138. * @param Request $request
  139. * @return Response
  140. */
  141. public function audit(Request $request): Response
  142. {
  143. $param = $request->all();
  144. Db::beginTransaction();
  145. try {
  146. Validator::input($param, [
  147. 'id' => Validator::notEmpty()->setName('标识'),
  148. ]);
  149. $data = Payorder::query()->where('id', $param['id'])->first();
  150. if (empty($data)) {
  151. throw new \Exception('非法操作');
  152. }
  153. if ($data->is_pay != 1) {
  154. throw new \Exception('订单已处理');
  155. }
  156. PayorderBusiness::payorderSave($data->toArray());
  157. Db::commit();
  158. } catch (\Throwable $exception) {
  159. Db::rollBack();
  160. return json(['code' => 1, 'msg' => $exception->getMessage()]);
  161. }
  162. return json(['code' => 0, 'msg' => '成功']);
  163. }
  164. /** 支付渠道
  165. * @return void
  166. */
  167. public function addselect(Request $request): Response
  168. {
  169. $arr = [];
  170. $data = PayAisle::query()->selectRaw('characteristic,name,title')->get()->toArray();
  171. foreach ($data as $k => $v) {
  172. $arr[] = [
  173. 'value' => $v['characteristic'],
  174. 'name' => $v['name'] . '--' . $v['title'],
  175. ];
  176. }
  177. return json(['code' => 0, 'data' => $arr, 'msg' => 'ok']);
  178. }
  179. }