Reconciliation.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\controller\admin\order;
  12. use think\App;
  13. use crmeb\basic\BaseController;
  14. use app\common\repositories\system\merchant\MerchantRepository;
  15. use app\common\repositories\store\order\MerchantReconciliationRepository as repository;
  16. /**
  17. * 商户对账记录-- 废弃
  18. */
  19. class Reconciliation extends BaseController
  20. {
  21. protected $repository;
  22. public function __construct(App $app, repository $repository)
  23. {
  24. parent::__construct($app);
  25. $this->repository = $repository;
  26. }
  27. /**
  28. * 获取列表数据
  29. * 本函数用于根据用户请求的参数,获取特定条件下的列表数据。
  30. * 参数包括分页信息、查询条件等,通过处理这些参数,调用仓库层的方法来获取数据,并以JSON格式返回。
  31. *
  32. * @return \think\response\Json
  33. * 返回处理后的列表数据,以及相关的成功提示信息。
  34. */
  35. public function lst()
  36. {
  37. // 解构获取分页信息
  38. [$page, $limit] = $this->getPage();
  39. // 从请求中获取查询参数
  40. $where = $this->request->params(['date', 'status', 'keyword', 'reconciliation_id']);
  41. // 调用仓库层的getList方法获取数据,并返回JSON格式的成功响应
  42. return app('json')->success($this->repository->getList($where, $page, $limit));
  43. }
  44. /**
  45. * 创建对账单
  46. *
  47. * 本函数用于根据提供的商户ID和请求参数创建对账单。首先,它验证商户是否存在,如果不存在,则返回错误信息。
  48. * 接着,从请求中提取对账单相关的参数,包括日期、订单类型、退款类型等,并添加管理员ID。
  49. * 最后,调用repository的create方法来实际创建对账单,并返回成功信息。
  50. *
  51. * @param int $id 商户ID
  52. * @return json 返回操作的结果,成功时包含成功信息,失败时包含错误信息。
  53. */
  54. public function create($id)
  55. {
  56. // 检查商户是否存在,如果不存在则返回错误信息
  57. if (!app()->make(MerchantRepository::class)->merExists($id))
  58. return app('json')->fail('商户不存在');
  59. // 从请求中获取参数,包括订单相关和退款相关的信息
  60. $data = $this->request->params([
  61. 'date', //时间
  62. 'order_type', //订单类型
  63. 'refund_type', //退款类型
  64. ['order_ids', []], //订单ID列表
  65. ['order_out_ids', []], //排除的订单ID列表
  66. ['refund_out_ids', []], //排除的退款订单ID列表
  67. ['refund_order_ids', []] //退款订单ID列表
  68. ]);
  69. // 添加管理员ID到数据中
  70. $data['adminId'] = $this->request->adminId();
  71. // 调用repository创建对账单
  72. $this->repository->create($id, $data);
  73. // 返回成功信息
  74. return app('json')->success('对账单生成成功');
  75. }
  76. /**
  77. * 确认打款
  78. * @param $id
  79. * @return mixed
  80. * @author Qinii
  81. * @day 2020-06-15
  82. */
  83. public function switchStatus($id)
  84. {
  85. if (!$this->repository->getWhereCountById($id))
  86. return app('json')->fail('数据不存在或状态错误');
  87. $status = $this->request->param('status') == 1 ? 1 : 0;
  88. $data['is_accounts'] = $status;
  89. if ($status == 1) $data['accounts_time'] = date('Y-m-d H:i:s', time());
  90. $this->repository->switchStatus($id, $data);
  91. return app('json')->success('修改成功');
  92. }
  93. /**
  94. * 标记表单
  95. *
  96. * 该方法用于处理对特定资源的标记操作。它首先验证资源是否存在,
  97. * 如果存在,则将表单数据处理并返回成功响应;如果资源不存在,
  98. * 则返回一个失败的响应。
  99. *
  100. * @param int $id 资源的唯一标识符
  101. * @return \Illuminate\Http\JsonResponse 成功或失败的JSON响应
  102. */
  103. public function markForm($id)
  104. {
  105. // 检查资源是否存在
  106. if (!$this->repository->getWhereCount([$this->repository->getPk() => $id]))
  107. {
  108. // 如果资源不存在,返回一个失败的JSON响应
  109. return app('json')->fail('数据不存在');
  110. }
  111. // 如果资源存在,处理表单数据并返回一个成功的JSON响应
  112. return app('json')->success(formToData($this->repository->adminMarkForm($id)));
  113. }
  114. /**
  115. * 对指定ID的数据进行标记操作
  116. *
  117. * 本函数主要用于对数据库中的特定记录进行备注更新操作。它首先验证指定ID的数据是否存在,
  118. * 如果存在,则从请求中获取备注信息,并更新到数据库中对应记录的备注字段。如果更新成功,
  119. * 则返回成功的响应信息。
  120. *
  121. * @param int $id 需要进行标记操作的数据的唯一标识ID
  122. * @return \Phalcon\Http\Response|\Phalcon\Http\ResponseInterface 如果数据不存在,则返回一个表示失败的JSON响应;如果标记操作成功,则返回一个表示成功的JSON响应。
  123. */
  124. public function mark($id)
  125. {
  126. // 检查指定ID的数据是否存在,如果不存在则返回失败响应
  127. if (!$this->repository->getWhereCount([$this->repository->getPk() => $id])) {
  128. return app('json')->fail('数据不存在');
  129. }
  130. // 从请求中获取管理员的标记信息
  131. $data = $this->request->params(['admin_mark']);
  132. // 使用repository更新数据的ID和获取的标记信息
  133. $this->repository->update($id, $data);
  134. // 返回成功的JSON响应
  135. return app('json')->success('备注成功');
  136. }
  137. }