RanseConfigController.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. 'miniprogram_id' => 'required|min:1',
  23. ]);
  24. $uid = $this->getLoginUserId();
  25. if(!$uid) {
  26. CommonBusinessException::throwError(Errors::NO_OPERATE_PERMISSION);
  27. }
  28. $now = date('Y-m-d H:i:s');
  29. DB::table('ranse_config')
  30. ->where([
  31. ['user_id', '=', $uid],
  32. ['is_enabled', '=', 1],
  33. ['miniprogram_id', '=', $request->input('miniprogram_id')]
  34. ])
  35. ->update(['is_enabled' => 0, 'updated_at' => $now]);
  36. DB::table('ranse_config')
  37. ->insert([
  38. 'user_id' => $uid, 'is_enabled' => 1,
  39. 'no_charge_user_duration' => $request->input('no_charge_user_duration'),
  40. 'charge_user_duration' => $request->input('charge_user_duration'),
  41. 'miniprogram_id' => $request->input('miniprogram_id'),
  42. 'created_at' => $now, 'updated_at' => $now,
  43. ]);
  44. return 'ok';
  45. }
  46. /**
  47. * 获取染色时间
  48. * @param Request $request
  49. * @return array
  50. */
  51. public function getRanseDuration(Request $request) {
  52. $uid = $this->getOptimizerUid();
  53. if(!$uid) {
  54. CommonBusinessException::throwError(Errors::NO_OPERATE_PERMISSION);
  55. }
  56. $config = DB::table('ranse_config')
  57. ->where([
  58. ['user_id', '=', $uid],
  59. ['is_enabled', '=', 1],
  60. ['miniprogram_id', '=', $request->input('miniprogram_id')]
  61. ])
  62. ->first();
  63. if(!$config) {
  64. $config = DB::table('ranse_config')
  65. ->where([
  66. 'user_id' => 0, 'miniprogram_id' => 0, 'is_enabled' =>1
  67. ])->first();
  68. }
  69. return [
  70. 'charge_user_duration' => $config->charge_user_duration,
  71. 'no_charge_user_duration' => $config->no_charge_user_duration,
  72. ];
  73. }
  74. }