PayorderController.php 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  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. //
  89. // $query->where('goods_type', $param['goods_type']);
  90. // }
  91. })->whereExists(function ($query) use ($param) {
  92. $query->from('wa_users')->whereRaw('wa_users.id=wa_payorder.user_id');
  93. if (Arr::get($param, 'user_name')) {
  94. $query->where('name', 'like', '%' . $param['user_name'] . '%');
  95. }
  96. if (Arr::get($param, 'user_mobile')) {
  97. $query->where('mobile', 'like', '%' . $param['user_mobile'] . '%');
  98. }
  99. })
  100. ->with('userData:id,name,mobile');
  101. if (Arr::get($param, 'field')) {
  102. $order = 'asc';
  103. if (Arr::get($param, 'order')) {
  104. $order = 'desc';
  105. }
  106. $data = $data->orderBy($param['field'], $order);
  107. } else {
  108. $data = $data->orderByDesc('id');
  109. }
  110. $data = $data->paginate(Arr::get($param, 'limit', 10))->toArray();
  111. $arr = [];
  112. $Good = Good::query();
  113. foreach ($data['data'] as $k => $v) {
  114. $pataisle = PayAisle::query()->where('characteristic', $v['pay_characteristic'])->first();
  115. if ($pataisle) {
  116. $pay_characteristic_name = $pataisle['name'] . '--' . $pataisle['title'];
  117. } else {
  118. $pay_characteristic_name = '';
  119. }
  120. $goodslist = (clone $Good)->where('id', $v['goods_id'])->first();
  121. if(empty($v['sign_record_id'])){
  122. $goods_name = (clone $Good)->where('id', $v['goods_id'])->value('name');
  123. }else{
  124. $goods_name = $goodslist->square.'-'.'邮政保价';
  125. }
  126. if($v['is_prestore']==1){
  127. $goods_name = $goodslist->square.'-'.'预存激活';
  128. }
  129. if($goodslist->type==8){
  130. $goods_name = '缴纳支付 -- '.$goodslist->square;
  131. }
  132. if($goodslist->type==10){
  133. $goods_name = '跨行联网 -- '.$goodslist->square;
  134. }
  135. $arr[] = [
  136. 'bid_name' => $goods_name,
  137. 'user_name' => $v['user_data']['name'],
  138. 'user_mobile' => $v['user_data']['mobile'],
  139. 'pay_no' => $v['pay_no'],
  140. 'pay_type' => $v['pay_type'],
  141. 'pay_characteristic_name' => $pay_characteristic_name,
  142. 'pay_characteristic' => $v['pay_characteristic'],
  143. 'order_no' => $v['order_no'],
  144. 'money' => $v['money'],
  145. 'is_pay' => $v['is_pay'],
  146. 'created_at' => $v['created_at'],
  147. 'id' => $v['id'],
  148. 'img' => $v['img'],
  149. ];
  150. }
  151. return json(['code' => 0, 'data' => $arr, 'msg' => 'ok', 'count' => $data['total']]);
  152. }
  153. /** 审核通过
  154. * @param Request $request
  155. * @return Response
  156. */
  157. public function audit(Request $request): Response
  158. {
  159. $param = $request->all();
  160. Db::beginTransaction();
  161. try {
  162. Validator::input($param, [
  163. 'id' => Validator::notEmpty()->setName('标识'),
  164. ]);
  165. $data = Payorder::query()->where('id', $param['id'])->first();
  166. if (empty($data)) {
  167. throw new \Exception('非法操作');
  168. }
  169. if ($data->is_pay != 1) {
  170. throw new \Exception('订单已处理');
  171. }
  172. PayorderBusiness::payorderSave($data->toArray());
  173. Db::commit();
  174. } catch (\Throwable $exception) {
  175. Db::rollBack();
  176. return json(['code' => 1, 'msg' => $exception->getMessage()]);
  177. }
  178. return json(['code' => 0, 'msg' => '成功']);
  179. }
  180. /** 支付渠道
  181. * @return void
  182. */
  183. public function addselect(Request $request): Response
  184. {
  185. $arr = [];
  186. $data = PayAisle::query()->selectRaw('characteristic,name,title')->get()->toArray();
  187. foreach ($data as $k => $v) {
  188. $arr[] = [
  189. 'value' => $v['characteristic'],
  190. 'name' => $v['name'] . '--' . $v['title'],
  191. ];
  192. }
  193. return json(['code' => 0, 'data' => $arr, 'msg' => 'ok']);
  194. }
  195. }