CommissionRateController.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tandunzhao
  5. * Date: 2017/11/20
  6. * Time: 下午4:23
  7. */
  8. namespace App\Http\Controllers\Manage\Finance;
  9. use App\Http\Controllers\Manage\Finance\Transformers\CommissionRateTransformer;
  10. use App\Modules\Finance\Services\CommissionRateService;
  11. use Illuminate\Http\Request;
  12. class CommissionRateController extends BaseController
  13. {
  14. /**
  15. * @apiDefine Finance 结算提现模块
  16. */
  17. /**
  18. * @apiVersion 1.0.0
  19. * @apiDescription 获取佣金结算比例列表
  20. * @api {GET} commissionRates 佣金结算比例列表
  21. * @apiGroup Finance
  22. * @apiName commissionRates
  23. * @apiParam {Number} channel_id 渠道id.
  24. * @apiSuccess {Number} begin_amount 起始金额.
  25. * @apiSuccess {Number} end_amount 结束金额.
  26. * @apiSuccess {Number} rate 比例.
  27. * @apiSuccessExample {json} Success-Response:
  28. *
  29. * {
  30. * "code": 0,
  31. * "msg": "",
  32. * "data":
  33. * [
  34. * {
  35. * "id": 1,
  36. * "begin_amount": 0,
  37. * "end_amount": 1000,
  38. * "rate": "0.10"
  39. * }
  40. * ]
  41. * }
  42. */
  43. function get_list(Request $request) {
  44. if(self::checkParamValueNumber($request, ['channel_id'])) {
  45. return response()->error("PARAM_ERROR");
  46. }
  47. $distribution_channel_id = $request->has('channel_id') ? $request->input('channel_id') : '';
  48. $result = CommissionRateService::getCommissionRateList($distribution_channel_id);
  49. return response()->collection(new CommissionRateTransformer(), $result);
  50. }
  51. /**
  52. * @apiVersion 1.0.0
  53. * @apiDescription 添加佣金结算比例
  54. * @api {POST} addCommissionRate 添加结算比例
  55. * @apiGroup Finance
  56. * @apiName addCommissionRate
  57. * @apiParam {Number} distribution_channel_id 渠道id.
  58. * @apiParam {Number} begin_amount 起始金额.
  59. * @apiParam {Number} [end_amount] 结束金额.
  60. * @apiParam {Number} rate 比例.
  61. * @apiSuccessExample {json} Success-Response:
  62. *
  63. * {
  64. * "code": 0,
  65. * "msg": "",
  66. * "data":{}
  67. * }
  68. */
  69. function add_commissionRate(Request $request) {
  70. if(self::checkParamValueNumber($request, ['distribution_channel_id', 'begin_amount', 'rate'])) {
  71. return response()->error("PARAM_ERROR");
  72. }
  73. $distribution_channel_id = $request->has('channel_id') ? $request->input('channel_id') : '';
  74. $begin_amount = $request->has('begin_amount') ? $request->input('begin_amount') : '';
  75. $end_amount = $request->has('end_amount') ? $request->input('end_amount') : '';
  76. $rate = $request->has('rate') ? $request->input('rate') : '';
  77. if(is_numeric($rate) && ($rate >= 1 || $rate < 0.1)) {
  78. return response()->error("COMMISSION_RATE_WITHOUT");
  79. }
  80. CommissionRateService::addCommissionRate($distribution_channel_id, $begin_amount, $end_amount, $rate);
  81. return response()->success();
  82. }
  83. /**
  84. * @apiVersion 1.0.0
  85. * @apiDescription 修改佣金结算比例
  86. * @api {POST} changeCommissionRate 修改佣金结算比例
  87. * @apiGroup Finance
  88. * @apiName changeCommissionRate
  89. * @apiParam {Number} id 佣金结算 id.
  90. * @apiParam {Number} [channel_id] 渠道id.
  91. * @apiParam {Number} [begin_amount] 起始金额.
  92. * @apiParam {Number} [end_amount] 结束金额.
  93. * @apiParam {Number} [rate] 比例.
  94. * @apiSuccessExample {json} Success-Response:
  95. *
  96. * {
  97. * "code": 0,
  98. * "msg": "",
  99. * "data":{}
  100. * }
  101. */
  102. function change_commissionRate(Request $request) {
  103. if(self::checkParamValueNumber($request, ['id'])) {
  104. return response()->error("PARAM_ERROR");
  105. }
  106. $id = $request->has('id') ? $request->input('id') : '';
  107. $distribution_channel_id = $request->has('channel_id') ? $request->input('channel_id') : '';
  108. $begin_amount = $request->has('begin_amount') ? $request->input('begin_amount') : '';
  109. $end_amount = $request->has('end_amount') ? $request->input('end_amount') : '';
  110. $rate = $request->has('rate') ? $request->input('rate') : '';
  111. if(is_numeric($rate) && ($rate >= 1 || $rate < 0.1)) {
  112. return response()->error("COMMISSION_RATE_WITHOUT");
  113. }
  114. CommissionRateService::updateCommissionRate($id, $begin_amount, $end_amount, $rate, $distribution_channel_id);
  115. return response()->success();
  116. }
  117. /**
  118. * @apiVersion 1.0.0
  119. * @apiDescription 获取当前渠道佣金比例
  120. * @api {GET} getCommissionRate 获取当前渠道佣金比例
  121. * @apiGroup Finance
  122. * @apiName getCommissionRate
  123. * @apiParam {Number} channel_id 分销渠道ID.
  124. * @apiSuccess {Number} rate 当前佣金比例.
  125. * @apiSuccessExample {json} Success-Response:
  126. *
  127. * {
  128. * "code": 0,
  129. * "msg": "",
  130. * "data":
  131. * {
  132. * "rate": "0.60"
  133. * }
  134. * }
  135. */
  136. function get_commissionRate(Request $request) {
  137. if($this->checkParamValueEmpty($request, ['channel_id'])) {
  138. return response()->error("PARAM_EMPTY");
  139. }
  140. if($this->checkParamValueNumber($request, ['channel_id'])) {
  141. return response()->error("PARAM_ERROR");
  142. }
  143. $rate = CommissionRateService::getRateCommissionRate($request->input('channel_id'));
  144. return response()->success(compact('rate'));
  145. }
  146. }