RanseConfigController.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <?php
  2. namespace Modules\Tuiguang\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\Errors\Errors;
  8. use Modules\Common\Exceptions\CommonBusinessException;
  9. use Modules\User\Http\Controllers\UserTrait;
  10. class RanseConfigController extends CatchController
  11. {
  12. use UserTrait;
  13. use ValidatesRequests;
  14. /**
  15. * 设置染色时间
  16. * @param Request $request
  17. */
  18. public function setRanseDuration(Request $request) {
  19. $this->validate($request, [
  20. 'no_charge_user_duration' => 'required|integer|min:0',
  21. 'charge_user_duration' => 'required|integer|gte:no_charge_user_duration',
  22. ]);
  23. $uid = $this->getOptimizerUid();
  24. if(!$uid) {
  25. CommonBusinessException::throwError(Errors::NO_OPERATE_PERMISSION);
  26. }
  27. $now = date('Y-m-d H:i:s');
  28. DB::table('ranse_config')->where('user_id', $uid)
  29. ->where('is_enabled', 1)
  30. ->update(['is_enabled' => 0, 'updated_at' => $now]);
  31. DB::table('ranse_config')
  32. ->insert([
  33. 'user_id' => $uid, 'is_enabled' => 1,
  34. 'no_charge_user_duration' => $request->input('no_charge_user_duration'),
  35. 'charge_user_duration' => $request->input('charge_user_duration'),
  36. 'created_at' => $now, 'updated_at' => $now,
  37. ]);
  38. return 'ok';
  39. }
  40. /**
  41. * 获取染色时间
  42. * @param Request $request
  43. * @return array
  44. */
  45. public function getRanseDuration(Request $request) {
  46. $uid = $this->getOptimizerUid();
  47. if(!$uid) {
  48. CommonBusinessException::throwError(Errors::NO_OPERATE_PERMISSION);
  49. }
  50. $config = DB::table('ranse_config')->where('user_id', $uid)
  51. ->where('is_enabled', 1)
  52. ->first();
  53. if(!$config) {
  54. $config = DB::table('ranse_config')
  55. ->where([
  56. 'user_id' => 0, 'miniprogram_id' => 0, 'is_enabled' =>1
  57. ])->first();
  58. }
  59. return [
  60. 'charge_user_duration' => $config->charge_user_duration,
  61. 'no_charge_user_duration' => $config->no_charge_user_duration,
  62. ];
  63. }
  64. }