FinancialStatController.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: tandunzhao
  5. * Date: 2017/11/22
  6. * Time: 上午10:14
  7. */
  8. namespace App\Http\Controllers\Channel\Finance;
  9. use App\Http\Controllers\Channel\Finance\Transformers\FinancialStatDetailTransformer;
  10. use App\Http\Controllers\Channel\Finance\Transformers\FinancialStatTransformer;
  11. use App\Modules\Finance\Services\FinancialStatService;
  12. use Illuminate\Http\Request;
  13. class FinancialStatController extends BaseController
  14. {
  15. /**
  16. * @apiDefine Finance 结算提现模块
  17. */
  18. /**
  19. * @apiVersion 1.0.0
  20. * @apiDescription 获取提现汇总信息
  21. * @api {GET} getFinancialStat 获取提现汇总信息
  22. * @apiGroup Finance
  23. * @apiName getFinancialStat
  24. * @apiSuccess {Number} accumulative_amount 累计提现金额.
  25. * @apiSuccess {Number} enable_amount 可提现金额.
  26. * @apiSuccess {Number} latest_amount 最近提现金额.
  27. * @apiSuccess {Number} pending_amount 提现中金额.
  28. * @apiSuccess {String} latest_time 最后提现时间.
  29. * @apiSuccess {String} rate 当前佣金比例.
  30. * @apiSuccessExample {json} Success-Response:
  31. *
  32. * {
  33. * "code": 0,
  34. * "msg": "",
  35. * "data":{
  36. * "accumulative_amount": "0.00",
  37. * "enable_amount": "2170.00",
  38. * "latest_amount": "0.00",
  39. * "latest_time": "",
  40. * "pending_amount": "0.00",
  41. * "rate": "0.60%"
  42. * }
  43. * }
  44. */
  45. function get_FinancialStatInfo(Request $request) {
  46. $distribution_channel_id = $this->getChannelId();
  47. $distribution_channel_name = $this->getChannelName();
  48. $distribution_channel_name = '';
  49. $result = FinancialStatService::getFinancialStatSingle($distribution_channel_id);
  50. return response()->item(new FinancialStatTransformer(), $result);
  51. }
  52. /**
  53. * @apiVersion 1.0.0
  54. * @apiDescription 获取账号信息列表
  55. * @api {GET} financialStats 获取账号信息列表
  56. * @apiGroup Finance
  57. * @apiName financialStats
  58. * @apiParam {String} [person_in_charge_name] 渠道负责人名称.
  59. * @apiParam {String} [search_name] 搜索名称.
  60. * @apiParam {Number} [is_frozen] 0:解冻; -1:冻结状态.
  61. * @apiParam {String} [ac_start_time] 账号创建开始时间2017-01-01
  62. * @apiParam {String} [ac_end_time] 账号创建结束时间2017-02-01
  63. * @apiParam {String} [frozen_start_time] 账号冻结开始时间2017-01-01
  64. * @apiParam {String} [frozen_end_time] 账号冻结结束时间2017-02-01
  65. * @apiSuccess {Number} accumulative_amount 累计提现金额.
  66. * @apiSuccess {Number} enable_amount 可提现金额.
  67. * @apiSuccess {Number} latest_amount 最近提现金额.
  68. * @apiSuccess {Number} pending_amount 提现中金额.
  69. * @apiSuccess {String} latest_time 最后提现时间.
  70. * @apiSuccess {String} rate 当前佣金比例.
  71. * @apiSuccess {String} phone 电话号码.
  72. * @apiSuccess {String} name 渠道名称.
  73. * @apiSuccess {String} pay_merchant 支付方式.
  74. * @apiSuccess {String} nickname 渠道昵称.
  75. * @apiSuccess {String} channel_remark 渠道备注.
  76. * @apiSuccess {String} channel_created_time 渠道创建时间.
  77. * @apiSuccess {String} fc_remark 冻结备注.
  78. * @apiSuccess {String} person_in_charge_name 渠道负责人
  79. * @apiSuccess {String} frozen_time 渠道冻结解冻时间
  80. * @apiSuccessExample {json} Success-Response:
  81. *
  82. * {
  83. * "code": 0,
  84. * "msg": "",
  85. * "data":{
  86. * "list": [
  87. * {
  88. * "accumulative_amount": "1000.00",
  89. * "enable_amount": "11170.00",
  90. * "latest_amount": "0.00",
  91. * "latest_time": "2017-11-28 15:43:39",
  92. * "pending_amount": "1600.00",
  93. * "rate": "0.60%",
  94. * "phone": "",
  95. * "name": "sfsd",
  96. * "pay_merchant": "34",
  97. * "nickname": "",
  98. * "channel_remark": ""
  99. * "channel_created_time": "2017-11-28 15:43:39",
  100. * "frozen_time": "2017-11-28 15:43:39",
  101. * "person_in_charge_name": "",
  102. * "fc_remark": ""
  103. * }
  104. * "meta": {
  105. * ],
  106. * "total": 2,
  107. * "per_page": 15,
  108. * "current_page": 1,
  109. * "last_page": 1,
  110. * "next_page_url": "",
  111. * "prev_page_url": ""
  112. * }
  113. * }
  114. * }
  115. */
  116. function get_FinancialStatListDetail(Request $request) {
  117. $distribution_channel_id = $this->getChannelId();
  118. $distribution_channel_name = $this->getChannelName();
  119. $distribution_channel_name = '';
  120. $person_in_charge_name = $request->has('person_in_charge_name') ? $request->input('person_in_charge_name') : '';
  121. $isFrozen = $request->has('is_frozen') ? $request->input('is_frozen') : '';
  122. $is_frozen = '';
  123. if(is_numeric($isFrozen) && ($isFrozen == -1 || $isFrozen == 0)) {
  124. $is_frozen = $isFrozen;
  125. }
  126. $search_name = $request->has('search_name') ? $request->input('search_name') : '';
  127. $ac_start_time = $request->has('ac_start_time') && !empty($request->input('ac_start_time')) ? date('Ymd',strtotime($request->input('ac_start_time'))) : '';
  128. $ac_end_time = $request->has('ac_end_time') && !empty($request->input('ac_end_time')) ? date('Ymd',strtotime($request->input('ac_end_time'))) : '';
  129. $ac_end_time = self::getMaxDay($ac_end_time);
  130. $frozen_start_time = $request->has('frozen_start_time') && !empty($request->input('frozen_start_time')) ? date('Ymd',strtotime($request->input('frozen_start_time'))) : '';
  131. $frozen_end_time = $request->has('frozen_end_time') && !empty($request->input('frozen_end_time')) ? date('Ymd',strtotime($request->input('frozen_end_time'))) : '';
  132. $frozen_end_time = self::getMaxDay($frozen_end_time);
  133. $params = [
  134. 'channel_id'=>$distribution_channel_id,
  135. 'channel_name'=>$distribution_channel_name,
  136. 'person_in_charge_name'=>$person_in_charge_name,
  137. 'search_name'=>$search_name,
  138. 'ac_start_time'=>$ac_start_time,
  139. 'ac_end_time'=>$ac_end_time,
  140. 'is_frozen'=>$is_frozen,
  141. 'frozen_start_time'=>$frozen_start_time,
  142. 'frozen_end_time'=>$frozen_end_time,
  143. ];
  144. $result = FinancialStatService::getFrozenFinancialStatListParam($params);
  145. return response()->pagination(new FinancialStatDetailTransformer(), $result);
  146. }
  147. /**
  148. * @apiVersion 1.0.0
  149. * @apiDescription 结算明细
  150. * @api {GET} financialStatSettlementPriceDetail 结算明细
  151. * @apiGroup Finance
  152. * @apiName financialStatSettlementPriceDetail
  153. * @apiParam {String} [person_in_charge_name] 渠道负责人名称.
  154. * @apiParam {String} [search_name] 搜索名称.
  155. * @apiParam {Number} [is_frozen] 0:解冻; -1:冻结状态.
  156. * @apiParam {String} [ac_start_time] 账号创建开始时间2017-01-01
  157. * @apiParam {String} [ac_end_time] 账号创建结束时间2017-02-01
  158. * @apiParam {String} [frozen_start_time] 账号冻结开始时间2017-01-01
  159. * @apiParam {String} [frozen_end_time] 账号冻结结束时间2017-02-01
  160. * @apiSuccess {Number} accumulative_amount 累计提现金额.
  161. * @apiSuccess {Number} enable_amount 可提现金额.
  162. * @apiSuccess {Number} latest_amount 最近提现金额.
  163. * @apiSuccess {Number} pending_amount 提现中金额.
  164. * @apiSuccess {String} latest_time 最后提现时间.
  165. * @apiSuccess {String} rate 当前佣金比例.
  166. * @apiSuccess {String} phone 电话号码.
  167. * @apiSuccess {String} name 渠道名称.
  168. * @apiSuccess {String} pay_merchant 支付方式.
  169. * @apiSuccess {String} nickname 渠道昵称.
  170. * @apiSuccess {String} channel_remark 渠道备注.
  171. * @apiSuccess {String} channel_created_time 渠道创建时间
  172. * @apiSuccess {String} person_in_charge_name 渠道负责人
  173. * @apiSuccess {String} frozen_time 渠道冻结解冻时间
  174. * @apiSuccess {String} fc_remark 冻结备注.
  175. * @apiSuccess {Number} recharge_amount_count 总充值金额.
  176. * @apiSuccess {Number} tallage 手续费
  177. * @apiSuccessExample {json} Success-Response:
  178. *
  179. * {
  180. * "code": 0,
  181. * "msg": "",
  182. * "data":{
  183. * "list": [
  184. * {
  185. * "accumulative_amount": "1000.00",
  186. * "enable_amount": "11170.00",
  187. * "latest_amount": "0.00",
  188. * "latest_time": "2017-11-28 15:43:39",
  189. * "pending_amount": "1600.00",
  190. * "rate": "0.60%",
  191. * "phone": "",
  192. * "name": "sfsd",
  193. * "pay_merchant": "34",
  194. * "nickname": "",
  195. * "channel_remark": "",
  196. * "channel_created_time": "2017-11-28 15:43:39",
  197. * "frozen_time": "2017-11-28 15:43:39",
  198. * "person_in_charge_name": "",
  199. * "fc_remark": "",
  200. * "recharge_amount_count": "6300.00",
  201. * "tallage": 0
  202. * }
  203. * "meta": {
  204. * ],
  205. * "total": 2,
  206. * "per_page": 15,
  207. * "current_page": 1,
  208. * "last_page": 1,
  209. * "next_page_url": "",
  210. * "prev_page_url": ""
  211. * }
  212. * }
  213. * }
  214. */
  215. function settlement_price_detail(Request $request) {
  216. $distribution_channel_id = $this->getChannelId();
  217. $distribution_channel_name = $this->getChannelName();
  218. $distribution_channel_name = '';
  219. $person_in_charge_name = $request->has('person_in_charge_name') ? $request->input('person_in_charge_name') : '';
  220. $isFrozen = $request->has('is_frozen') ? $request->input('is_frozen') : '';
  221. $is_frozen = '';
  222. if(is_numeric($isFrozen) && ($isFrozen == -1 || $isFrozen == 0)) {
  223. $is_frozen = $isFrozen;
  224. }
  225. $search_name = $request->has('search_name') ? $request->input('search_name') : '';
  226. $ac_start_time = $request->has('ac_start_time') && !empty($request->input('ac_start_time')) ? date('Ymd',strtotime($request->input('ac_start_time'))) : '';
  227. $ac_end_time = $request->has('ac_end_time') && !empty($request->input('ac_end_time')) ? date('Ymd',strtotime($request->input('ac_end_time'))) : '';
  228. $ac_end_time = self::getMaxDay($ac_end_time);
  229. $frozen_start_time = $request->has('frozen_start_time') && !empty($request->input('frozen_start_time')) ? date('Ymd',strtotime($request->input('frozen_start_time'))) : '';
  230. $frozen_end_time = $request->has('frozen_end_time') && !empty($request->input('frozen_end_time')) ? date('Ymd',strtotime($request->input('frozen_end_time'))) : '';
  231. $frozen_end_time = self::getMaxDay($frozen_end_time);
  232. $params = [
  233. 'channel_id'=>$distribution_channel_id,
  234. 'channel_name'=>$distribution_channel_name,
  235. 'person_in_charge_name'=>$person_in_charge_name,
  236. 'search_name'=>$search_name,
  237. 'ac_start_time'=>$ac_start_time,
  238. 'ac_end_time'=>$ac_end_time,
  239. 'is_frozen'=>$is_frozen,
  240. 'frozen_start_time'=>$frozen_start_time,
  241. 'frozen_end_time'=>$frozen_end_time,
  242. ];
  243. $result = FinancialStatService::getFrozenFinancialStatPriceListDetail($params);
  244. return response()->pagination(new FinancialStatDetailTransformer(), $result);
  245. }
  246. }