123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372 |
- <?php
- /**
- * Created by PhpStorm.
- * User: shensong
- * Date: 2021/4/15
- * Time: 10:11
- */
- namespace App\Http\Controllers\Api;
- use App\Models\Statements;
- use App\Services\NewStatementsService;
- use Illuminate\Http\Request;
- class NewStatementsController extends Controller
- {
- /*
- * 拼多多结算单判断第几次申请
- */
- public function pddStatus(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'order_ids' => 'required',
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $orderIds = $request->input('order_ids');
- list($data, $code) = NewStatementsService::pddStatus($orderIds);
- return self::returnValue($data, $code);
- }
- /*
- * 预加载结算单详情数据
- */
- public function preData(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'order_ids' => 'required',
- 'type' => 'required|int',
- 'is_discount' => 'required|in:0,1'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $orderIds = $request->input('order_ids');
- $type = $request->input('type');
- $isDiscount = $request->input('is_discount', 0);
- $firstInvoicingRatio = $request->input('first_invoicing_ratio');
- list($data, $code) = NewStatementsService::getPreData($orderIds, $type, $isDiscount, $firstInvoicingRatio);
- return self::returnValue($data, $code);
- }
- /*
- * 结算单列表
- */
- public function index(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'type' => 'required|int',
- 'is_my' => 'nullable|numeric',
- 'status' => 'nullable|integer',
- 'month' => 'nullable|date_format:Y-m',
- 'apply_start_date' => 'nullable|date_format:Y-m-d',
- 'apply_end_date' => 'nullable|date_format:Y-m-d',
- 'approved_start_date' => 'nullable|date_format:Y-m-d',
- 'approved_end_date' => 'nullable|date_format:Y-m-d',
- 'page' => 'nullable|numeric|min:1',
- 'page_size' => 'nullable|numeric'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $params['is_my'] = $request->input('is_my', 0);
- $params['status'] = $request->input('status', 0);
- $params['month'] = $request->input('month');
- $params['applicant'] = $request->input('applicant');
- $params['apply_start_date'] = $request->input('apply_start_date');
- $params['apply_end_date'] = $request->input('apply_end_date');
- $params['approved_start_date'] = $request->input('approved_start_date');
- $params['approved_end_date'] = $request->input('approved_end_date');
- $params['type'] = $request->input('type', 2);
- $params['customer_name'] = $request->input('customer_name');
- $params['company'] = $request->input('company');
- $params['id'] = $request->input('id');
- $params['pre_audit_status'] = $request->input('pre_audit_status');
- $page = $request->input('page', 1);
- $pageSize = $request->input('page_size', 20);
- list($list, $count) = NewStatementsService::index($page, $pageSize, $params);
- return self::returnPageValue($list, $count, $pageSize, $page);
- }
- /*
- * 添加结算单
- */
- public function add(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'order_data' => 'required',
- 'type' => 'required|int',
- 'party_a_ein' => 'required',
- 'party_a_account' => 'required',
- 'party_a_contact' => 'required',
- 'party_a_phone' => 'required',
- 'party_b_contact' => 'required',
- 'party_b_phone' => 'required',
- 'add_date' => 'required',
- 'customer_name' => 'required',
- 'party_a_address' => 'required',
- 'status' => 'required|in:0,1,2',
- 'company' => 'required',
- 'bank' => 'required',
- 'account' => 'required'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $type = $request->input('type');
- $orderData = $request->input('order_data');
- if (!is_array($orderData)) {
- $orderData = json_decode($orderData, 1);
- }
- $status = $request->input('status');
- $statementsData['party_a_ein'] = $request->input('party_a_ein');
- $statementsData['party_a_account'] = $request->input('party_a_account');
- $statementsData['party_a_contact'] = $request->input('party_a_contact');
- $statementsData['party_a_phone'] = $request->input('party_a_phone');
- $statementsData['party_a_add_date'] = $request->input('party_a_add_date');
- $statementsData['party_b_contact'] = $request->input('party_b_contact');
- $statementsData['party_b_phone'] = $request->input('party_b_phone');
- $statementsData['add_date'] = $request->input('add_date');
- $statementsData['customer_name'] = $request->input('customer_name');
- $statementsData['party_a_address'] = $request->input('party_a_address');
- $statementsData['is_discount'] = $request->input('is_discount');
- $statementsData['company'] = $request->input('company');
- $statementsData['bank'] = $request->input('bank');
- $statementsData['account'] = $request->input('account');
- $statementsData['voided_statements_id'] = $request->input('voided_id');
- $statementsData['handler_remark'] = $request->input('handler_remark');
- $files = $request->input('files');
- if(!empty($files)){
- $files = array_map(function($val){
- return str_replace('http://order-consumption-system.oss-cn-beijing.aliyuncs.com', '', $val);
- },$files);
- }
- $statementsData['url_json'] = json_encode($files);
- list($res, $code) = NewStatementsService::addStatements($orderData, $statementsData, $type, $status);
- return self::returnValue($res, $code);
- }
- /*
- * 结算单详情
- */
- public function detail(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $id = $request->input('id');
- list($res, $code) = NewStatementsService::detail($id);
- return self::returnValue($res, $code);
- }
- /*
- * 导出结算单对应的订单明细
- */
- public function export(Request $request) {
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $id = $request->input('id');
- # 查询结算单信息
- $statementInfo = Statements::query()->where('id', $id)->select(['id', 'customer_name', 'type', 'verify_status'])->first();
- if(empty($statementInfo) || !in_array($statementInfo->type, [4, 5, 6])) {
- # 仅导出收入端
- $errno = 1233;
- return self::returnValue('', $errno);
- }
- if(!in_array($statementInfo->verify_status, [0, 3, 5])) {
- # 仅导出已保存或驳回状态的
- $errno = 1208;
- return self::returnValue('', $errno);
- }
- $path = NewStatementsService::export($id, $statementInfo);
- return self::returnValue($path);
- }
- /*
- * 结算单编辑
- */
- public function update(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'order_data' => 'required',
- 'type' => 'required|int',
- 'party_a_ein' => 'required',
- 'party_a_account' => 'required',
- 'party_a_contact' => 'required',
- 'party_a_phone' => 'required',
- 'party_b_contact' => 'required',
- 'party_b_phone' => 'required',
- 'add_date' => 'required',
- 'id' => 'required',
- 'status' => 'required',
- 'company' => 'required',
- 'bank' => 'required',
- 'account' => 'required'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $id = $request->input('id');
- $type = $request->input('type');
- $orderData = $request->input('order_data');
- if (!is_array($orderData)) {
- $orderData = json_decode($orderData, 1);
- }
- $statementsData['party_a_ein'] = $request->input('party_a_ein');
- $statementsData['party_a_address'] = $request->input('party_a_address');
- $statementsData['party_a_account'] = $request->input('party_a_account');
- $statementsData['party_a_contact'] = $request->input('party_a_contact');
- $statementsData['party_a_phone'] = $request->input('party_a_phone');
- $statementsData['party_a_add_date'] = $request->input('party_a_add_date');
- $statementsData['party_b_contact'] = $request->input('party_b_contact');
- $statementsData['party_b_phone'] = $request->input('party_b_phone');
- $statementsData['add_date'] = $request->input('add_date');
- $statementsData['verify_status'] = $request->input('status');
- $statementsData['company'] = $request->input('company');
- $statementsData['bank'] = $request->input('bank');
- $statementsData['account'] = $request->input('account');
- $statementsData['handler_remark'] = $request->input('handler_remark');
- $files = $request->input('files');
- if(!empty($files)){
- $files = array_map(function($val){
- return str_replace('http://order-consumption-system.oss-cn-beijing.aliyuncs.com', '', $val);
- },$files);
- }
- $statementsData['url_json'] = json_encode($files);
- list($res, $code) = NewStatementsService::update($id, $orderData, $statementsData, $type);
- return self::returnValue($res, $code);
- }
- /*
- * 结算单审核
- */
- public function verify(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer',
- 'status' => 'required',
- 'opinion' => 'nullable|string'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $id = $request->input('id');
- $status = $request->input('status');
- $verifyOpinion = $request->input('opinion');
- list($res, $code) = NewStatementsService::verify($id, $status, $verifyOpinion);
- return self::returnValue($res, $code);
- }
- /*
- * 结算单审核撤销
- */
- public function delVerify(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $id = $request->input('id');
- list($res, $code) = NewStatementsService::delVerify($id);
- return self::returnValue($res, $code);
- }
- /*
- * 结算单提交审核
- */
- public function setVerify(Request $request)
- {
- // 处理验证失败信息,不要直接抛异常
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $id = $request->input('id');
- list($res, $code) = NewStatementsService::setVerify($id);
- return self::returnValue($res, $code);
- }
- /*
- * 作废之后重新申请
- */
- public function reApply(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|int',
- ]);
- if ($validator->fails()) {
- return self::returnValue(['error' => $validator->errors()], 1102);
- }
- $id = $request->input('id');
- list($res, $code) = NewStatementsService::reApply($id);
- return self::returnValue($res, $code);
- }
- }
|