Finance.php 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | 萤火商城系统 [ 致力于通过产品和服务,帮助商家高效化开拓市场 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2017~2021 https://www.yiovo.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed 这不是一个自由软件,不允许对程序代码以任何形式任何目的的再发行
  8. // +----------------------------------------------------------------------
  9. // | Author: 萤火科技 <admin@yiovo.com>
  10. // +----------------------------------------------------------------------
  11. declare (strict_types = 1);
  12. namespace app\store\controller;
  13. use app\common\enum\order\Color as ColorEnum;
  14. use app\store\model\Order as OrderModel;
  15. use app\store\model\OrderGoods as OrderGoodsModel;
  16. use app\common\service\Export as ExportService;
  17. use app\store\model\RecoverMoney;
  18. use app\store\model\RefundCompensate as RefundCompensateModel;
  19. use think\facade\Log;
  20. use app\store\model\OrderRefund as OrderRefundModel;
  21. /**
  22. * 订单管理
  23. * Class Order
  24. * @package app\store\controller
  25. */
  26. class Finance extends Controller
  27. {
  28. /**
  29. * 供应商列表
  30. * @return array
  31. */
  32. public function providersList(){
  33. $model = new \app\store\model\Provider();
  34. $list = $model->getProviderList($this->request->get('provider_name',''));
  35. $datas = $list['data'];
  36. foreach ($datas as $key=>$data){
  37. $datas[$key]['wait_clearing_money'] = OrderGoodsModel::waitClearingMoney($data['provider_id']);
  38. }
  39. //dd($datas);
  40. $list['data'] = $datas;
  41. return $this->renderSuccess(compact('list'));
  42. }
  43. /**
  44. * 导出供应商结算列表
  45. * @return array
  46. * @author: zq
  47. * @Time: 2022/2/22 13:43
  48. */
  49. public function providersExport(){
  50. $model = new \app\store\model\Provider();
  51. $data = $model->providersExport($this->request->get('provider_name',''));
  52. if (!$data['data'] || !count($data['data'])){
  53. return $this->renderError('没有数据哟');
  54. }
  55. $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表');
  56. return $this->renderSuccess($res,'导出成功');
  57. }
  58. /**
  59. * 订单商品财务结算列表
  60. * @param string $dataType
  61. * @return array
  62. */
  63. public function list()
  64. {
  65. // 订单列表
  66. $model = new OrderGoodsModel();
  67. $list = $model->getFinanceList($this->request->param());
  68. //
  69. return $this->renderSuccess(compact('list'));
  70. }
  71. /**
  72. * 批量结算计算金额
  73. * @param array $orderGoodsIds
  74. * @return array
  75. */
  76. public function clearingMoney(array $orderGoodsIds){
  77. $model = new OrderGoodsModel();
  78. $money = $model->clearingMoney($orderGoodsIds);
  79. return $this->renderSuccess(['total_clearing_price'=>$money]);
  80. }
  81. /**
  82. * 确认结算/冻结/解冻
  83. * @param array $orderGoodsIds
  84. * @return array
  85. * @Time: 2021/10/12 15:24
  86. */
  87. public function clearing(array $orderGoodsIds){
  88. $type = request()->post('type',1);
  89. $evidence = request()->post('finance_evidence',0);
  90. $model = new OrderGoodsModel();
  91. if ($model->clearing($orderGoodsIds,$type,$evidence)) {
  92. return $this->renderSuccess('成功');
  93. }
  94. return $this->renderError($model->getError());
  95. }
  96. /**
  97. * 导出订单功能
  98. * @return array
  99. * @author: zjwhust
  100. * @Time: 2021/10/15 13:43
  101. */
  102. public function goodsClearingExport(){
  103. $param = $this->request->param();
  104. /* if(isset($param['order_goods_id']) && empty($param['order_goods_id'])){
  105. return $this->renderError('请勾选订单商品后再导出');
  106. }*/
  107. if(!isset($param['providerId']) || empty($param['providerId'])){
  108. return $this->renderError('请选择供应商后再导出');
  109. }
  110. $model = new OrderGoodsModel;
  111. $data = $model->goodsClearingExport($param);
  112. //dd($data['data']);
  113. if (!$data['data'] || !count($data['data'])){
  114. return $this->renderError('没有数据哟');
  115. }
  116. $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表');
  117. return $this->renderSuccess($res,'导出成功');
  118. }
  119. /**
  120. * 财务供应商结算详情-追回货款
  121. * @return array
  122. */
  123. public function recoverMoney(){
  124. $flag = RecoverMoney::add($this->postForm());
  125. return $this->renderSuccess(['flag'=>$flag],'成功');
  126. }
  127. /**
  128. * 退款单列表
  129. * @return array
  130. */
  131. public function refundList()
  132. {
  133. $model = new OrderRefundModel;
  134. $list = $model->getFinanceList($this->request->param());
  135. $refund_money_total = $model->getRefundMoneyTotal();
  136. return $this->renderSuccess(compact('list', 'refund_money_total'));
  137. }
  138. /**
  139. * 导出退款单列表功能
  140. * zq
  141. */
  142. public function refundExport(){
  143. $param = $this->request->param('queryParam');
  144. $style = $this->request->param('style');
  145. if($style == 1){
  146. $model = new OrderRefundModel();
  147. }elseif ($style == 2){
  148. $model = new RefundCompensateModel();
  149. }else{
  150. return $this->renderError('参数错误');
  151. }
  152. $data = $model->refundsExport($param);
  153. $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表','Xls');
  154. return $this->renderSuccess($res,'导出成功');
  155. }
  156. /**
  157. * 销售明细
  158. * @param string $dataType
  159. * @return array
  160. */
  161. public function listdt(string $dataType = OrderModel::LIST_TYPE_ALL)
  162. {
  163. //delivery,receipt,complete,cancel
  164. // 订单列表
  165. $model = new OrderModel;
  166. $list = $model->getFinanceList($dataType, $this->request->param());
  167. //获取订单颜色列表
  168. $colorArray = ColorEnum::data();
  169. return $this->renderSuccess(compact('dataType', 'list', 'colorArray'));
  170. }
  171. /**
  172. * 导出退款单列表功能
  173. * zq
  174. */
  175. public function listdtExport(){
  176. $param = $this->request->param();
  177. if(isset($param['order_goods_id']) && empty($param['order_goods_id'])){
  178. return $this->renderError('请勾选订单商品后再导出');
  179. }
  180. $model = new OrderModel();
  181. //导出跨度不能超过三个月
  182. if (!empty($param['betweenTime'])) {
  183. $times = between_time($param['betweenTime']);
  184. if (($times['end_time'] - $times['start_time']) > 8035200){
  185. return $this->renderError('导出时间跨度暂不能超过三个月');
  186. }
  187. }
  188. $data = $model->listdtExport($param,$param['dataType']??'all');
  189. $res = ExportService::export($data['data'],$data['header'],$data['filename'],'列表','Xls');
  190. return $this->renderSuccess($res,'导出成功');
  191. }
  192. }