PayConfigController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. namespace Modules\Manage\Http\Controllers;
  3. use Catch\Base\CatchController;
  4. use Illuminate\Foundation\Validation\ValidatesRequests;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Facades\DB;
  7. use Modules\Common\Services\CommonConfigService;
  8. /**
  9. * 支付配置管理
  10. */
  11. class PayConfigController extends CatchController
  12. {
  13. use ValidatesRequests;
  14. /**
  15. * 配置列表
  16. * @param Request $request
  17. */
  18. public function list(Request $request) {
  19. $this->validate($request,[
  20. 'name' => 'nullable|string|max:256',
  21. 'pay_type' => 'nullable|in:1,2,3',
  22. 'miniprogram_type' => 'nullable|in:1,2',
  23. 'remark' => 'nullable|string|max:256',
  24. 'pay_appid' => 'nullable|string|max:256',
  25. ]);
  26. $name = $request->input('name');
  27. $payType = $request->input('pay_type');
  28. $miniprogramType = $request->input('miniprogram_type');
  29. $payAppid = $request->input('pay_appid');
  30. $remark = $request->input('remark');
  31. $isAll = $request->input('is_all', 0);
  32. $commonConfig = config('common.common');
  33. $sql = DB::table('pay_merchants')
  34. ->when($name, function ($query, $name){
  35. return $query->where('name', 'like', '%'. $name .'%');
  36. })->when($payType, function ($query, $payType){
  37. return $query->where('pay_type', $payType);
  38. })->when($miniprogramType, function ($query, $miniprogramType) {
  39. return $query->where('miniprogram_type', $miniprogramType);
  40. })->when($payAppid, function ($query, $payAppid) {
  41. return $query->where('pay_appid', $payAppid);
  42. })->when($remark, function ($query, $remark){
  43. return $query->where('remark', 'like', '%'. $remark. '%');
  44. })->orderBy('id', 'desc');
  45. if($isAll) {
  46. $result = $sql->get();
  47. } else {
  48. $result = $sql->paginate($request->input('limit', 15));
  49. }
  50. $payTypeMap = CommonConfigService::getPayTypeMap();
  51. $miniprogramTypeMap = CommonConfigService::getMiniprogramTypeMap();
  52. foreach ($result as $item) {
  53. $item->pay_type_str = $payTypeMap[$item->pay_type]['label'] ?? '';
  54. $item->miniprogram_type_str = $miniprogramTypeMap[$item->miniprogram_type]['label'] ?? '';
  55. }
  56. return $result;
  57. }
  58. /**
  59. * 修改备注
  60. * @param Request $request
  61. */
  62. public function remark(Request $request) {
  63. $this->validate($request, ['id' => 'required']);
  64. DB::table('pay_merchants')
  65. ->where(['id' => $request->input('id')])
  66. ->update(['remark' => $request->input('remark', ''),
  67. 'updated_at' => date('Y-m-d H:i:s')]);
  68. return 'ok';
  69. }
  70. /**
  71. * 添加支付配置信息
  72. * @param Request $request
  73. */
  74. public function addConfig(Request $request) {
  75. $this->validate($request, [
  76. 'name' => 'required|string|max:256',
  77. 'payee_name' => 'required|string|max:256',
  78. 'pay_appid' => 'required',
  79. 'pay_type' => 'required|integer|in:1,2,3',
  80. 'pay_common_params' => 'required',
  81. 'miniprogram_type' => 'required|in:1,2',
  82. 'remark' => 'nullable|string|max:256'
  83. ]);
  84. $data = $request->only(['name', 'payee_name', 'pay_appid', 'pay_type', 'miniprogram_type']);
  85. $now = date('Y-m-d H:i:s');
  86. $data['created_at'] = $data['updated_at'] = $now;
  87. $data['pay_common_params'] = \json_encode($request->input('pay_common_params', []));
  88. $data['remark'] = $request->input('remark', '');
  89. DB::table('pay_merchants')
  90. ->insert($data);
  91. return 'ok';
  92. }
  93. }