| package com.xzx.gc.pay.controller;  | 
|   | 
|   | 
| import cn.hutool.core.lang.Snowflake;  | 
| import cn.hutool.core.util.IdUtil;  | 
| import com.github.pagehelper.PageHelper;  | 
| import com.github.pagehelper.PageInfo;  | 
| import com.xzx.gc.common.Result;  | 
| import com.xzx.gc.common.constant.CommonEnum;  | 
| import com.xzx.gc.common.constant.Constants;  | 
| import com.xzx.gc.common.constant.PayEnum;  | 
| import com.xzx.gc.common.dto.SimplePage;  | 
| import com.xzx.gc.common.dto.log.OperationAppLog;  | 
| import com.xzx.gc.common.request.BaseController;  | 
| import com.xzx.gc.common.utils.MqUtil;  | 
| import com.xzx.gc.entity.*;  | 
| import com.xzx.gc.model.JsonResult;  | 
| import com.xzx.gc.model.admin.*;  | 
| import com.xzx.gc.pay.dto.MoneyDto;  | 
| import com.xzx.gc.pay.mapper.OrderMapper;  | 
| import com.xzx.gc.pay.mapper.PayRequestMapper;  | 
| import com.xzx.gc.pay.service.OtherUserService;  | 
| import com.xzx.gc.pay.service.PayRequestService;  | 
| import com.xzx.gc.pay.service.PayService;  | 
| import com.xzx.gc.pay.service.UserService;  | 
| import com.xzx.gc.util.DoubleUtil;  | 
| import com.xzx.gc.util.pay.util.entity.TransfersDtoAdmin;  | 
| import io.swagger.annotations.Api;  | 
| import io.swagger.annotations.ApiImplicitParam;  | 
| import io.swagger.annotations.ApiImplicitParams;  | 
| import io.swagger.annotations.ApiOperation;  | 
| import org.springframework.beans.factory.annotation.Autowired;  | 
| import org.springframework.web.bind.annotation.*;  | 
|   | 
| import javax.servlet.http.HttpServletRequest;  | 
| import java.math.BigDecimal;  | 
| import java.util.Date;  | 
| import java.util.HashMap;  | 
| import java.util.List;  | 
| import java.util.Map;  | 
| import java.util.stream.Collectors;  | 
|   | 
| @Api(tags = "资金管理")  | 
| @RestController  | 
| public class MoneyController extends BaseController {  | 
|   | 
|     @Autowired  | 
|     private PayRequestMapper payRequestMapper;  | 
|   | 
|     @Autowired  | 
|     private OrderMapper orderMapper;  | 
|   | 
|     @Autowired  | 
|     private PayRequestService payRequestService;  | 
|   | 
|     @Autowired  | 
|     private OtherUserService otherUserService;  | 
|   | 
|   | 
|     @ApiOperation( value = "分页查看审核列表")  | 
|     @PostMapping("/money/select")  | 
|     public Result<PageInfo<PayRequestInfo>> select(HttpServletRequest request, @RequestBody MoneyDto moneyDto) {  | 
|         //只能看到他自己下面的所有普通打包员的审核列表  | 
|         String userId=getUserId(request);  | 
|         OtherUserInfo byId = otherUserService.findById(userId);  | 
|         String partnerId = byId.getPartnerId();  | 
| //        //打包站下的普通打包员的id集合(包含自己)  | 
| //        List<String> userIds=null;  | 
| //        if(PayEnum.额度恢复.getValue().equals(moneyDto.getPayType())&&CommonEnum.打包站运营员.getValue().equals(byId.getUserType())){  | 
| //                //查询当前主打包员下的所有打包员ID  | 
| //                String partnerId = byId.getPartnerId();  | 
| //                List<OtherUserInfo> byPartnerId = otherUserService.findByPartnerId(partnerId);  | 
| ////                byPartnerId.removeIf(x->x.getUserId().equals(userId));  | 
| //                userIds = byPartnerId.stream().map(x -> x.getUserId()).collect(Collectors.toList());  | 
| //        }  | 
|         PageHelper.startPage(moneyDto.getPageNo(),moneyDto.getPageSize());  | 
|         List<PayRequestInfo> select = payRequestMapper.selectByPayType(moneyDto.getPayType(),moneyDto.getKeyword(),partnerId);  | 
|         PageInfo<PayRequestInfo> pageInfo=new PageInfo<>(select);  | 
|         return Result.success(pageInfo);  | 
|     }  | 
|   | 
|     @ApiOperation( value = "分页查看历史订单",notes = "id是回收员ID,extra可传年月筛选,格式2019-12")  | 
|     @PostMapping("/money/selectHistoryOrder")  | 
|     public Result<PageInfo<OrderInfo>> select(HttpServletRequest request, @RequestBody SimplePage simplePage) {  | 
|         PageHelper.startPage(simplePage.getPageNo(),simplePage.getPageSize());  | 
|         List<OrderInfo> historyByReceiverWithMonth = orderMapper.findHistoryByReceiverWithMonth(simplePage.getId(),simplePage.getExtra());  | 
|         PageInfo<OrderInfo> pageInfo=new PageInfo<>(historyByReceiverWithMonth);  | 
|         return Result.success(pageInfo);  | 
|     }  | 
|   | 
|   | 
|     @PostMapping("/admin/front/money/queryFundManagementList.do")  | 
|     @ApiOperation(value = "资金管理-提现审核", notes = "test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "nickName", value = "昵称", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "status", value = "审核状态(1为待审核,2为已审核,3为审核不通过)", required = false, dataType = "String")  | 
|   | 
|     })  | 
|     public JsonResult<Map<String, Object>> queryFundManagementList(@RequestBody MoneyModel moneyModel) {  | 
|         moneyModel.setPayType("4");  | 
|         return payRequestService.queryFundManagementList(moneyModel);  | 
|     }  | 
|   | 
|     @PostMapping( "/admin/front/money/queryPayInfoDetail.json")  | 
|     @ResponseBody  | 
|     @ApiOperation(value = "资金管理-提现审核详情", notes = "test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "payOrderId", value = "金钱表ID", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "userType", value = "身份类别", required = false, dataType = "String")  | 
|     })  | 
|     public JsonResult<Map<String, Object>> queryPayInfoDetail(@RequestBody MoneyModel moneyModel) {  | 
|         moneyModel.setPayType("4");  | 
|         return payRequestService.queryPayInfoDetailApi(moneyModel);  | 
|     }  | 
|   | 
|     @PostMapping("/admin/front/money/queryRechangeApiList.do")  | 
|     @ResponseBody  | 
|     @ApiOperation(value = "资金管理-充值记录", notes = "test: 仅0有正确返回")  | 
|     public JsonResult<Map<String, Object>> queryRechangeApiList(@RequestBody MoneyModel moneyModel) {  | 
|   | 
|         Map<String, Object> map = payRequestService.queryRechangeApiList(moneyModel);  | 
|         return JsonResult.success(map);  | 
|     }  | 
|   | 
|     @PostMapping( "/admin/front/money/queryRechangeApiDetail.json")  | 
|     @ResponseBody  | 
|     @ApiOperation(value = "资金管理-充值记录(查看详情)", notes = "test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType = "query", name = "payOrderId", value = "充值记录Id", required = false, dataType = "String")  | 
|     })  | 
|     public JsonResult<Map<String, Object>> queryRechangeApiDetail(@RequestBody PayInfoModel payInfoModel) {  | 
|   | 
|         Map<String, Object> map = payRequestService.queryRechangeApiDetail(payInfoModel);  | 
|         return JsonResult.success(map);  | 
|     }  | 
|   | 
|   | 
|     @PostMapping( "/admin/front/money/quotaList.do")  | 
|     @ResponseBody  | 
|     @ApiOperation(value = "资金管理-额度申请", notes = "test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "nickName", value = "昵称", required = false, dataType = "String")  | 
|   | 
|     })  | 
|     public JsonResult<Map<String, Object>> quotaList(@RequestBody MoneyModel moneyModel) {  | 
|         moneyModel.setPayType("7");  | 
|         return payRequestService.queryFundManagementList(moneyModel);  | 
|     }  | 
|   | 
|     @PostMapping( "/admin/front/money/quota.json")  | 
|     @ResponseBody  | 
|     @ApiOperation(value = "资金管理-额度申请(通过)", notes = "test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType = "query", name = "payOrderId", value = "额度申请Id", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "userId", value = "用户Id", required = false, dataType = "String")  | 
|     })  | 
|     public JsonResult<String> quota(@RequestBody TransfersDtoAdmin dto, HttpServletRequest request) {  | 
|         JsonResult<String> audit = payRequestService.audit(dto);  | 
|         if(audit.getCode()==0) {  | 
|             OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))  | 
|                     .methodName(Constants.PAY_MODUL_NAME).operateAction("额度申请通过-" + dto.getPayOrderId()).build();  | 
|             mqUtil.sendApp(build);  | 
|         }  | 
|         return audit;  | 
|     }  | 
|   | 
|   | 
|     @PostMapping( "/admin/front/money/quotaCancel.json")  | 
|     @ResponseBody  | 
|     @ApiOperation(value = "资金管理-额度申请(拒绝)", notes = "test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType = "query", name = "payOrderId", value = "额度申请Id", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "userId", value = "用户Id", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "unpassReason", value = "未通过原因", required = false, dataType = "String")  | 
|     })  | 
|     public JsonResult<String> quotaCancel(@RequestBody TransfersDtoAdmin dto, HttpServletRequest request) {  | 
|         JsonResult<String> stringJsonResult = payRequestService.auditDeny(dto);  | 
|         OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request))  | 
|                 .methodName(Constants.PAY_MODUL_NAME).operateAction("额度申请拒绝-"+dto.getPayOrderId()).build();  | 
|         mqUtil.sendApp(build);  | 
|         return stringJsonResult;  | 
|     }  | 
|   | 
|   | 
|     @PostMapping( "/admin/front/money/quotaRecoveryList.do")  | 
|     @ResponseBody  | 
|     @ApiOperation(value = "资金管理-额度恢复(通过接口和拒绝接口与额度审核接口相同)", notes = "test: 仅0有正确返回")  | 
|     @ApiImplicitParams({  | 
|             @ApiImplicitParam(paramType = "query", name = "page", value = "页码", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "limit", value = "每页条数", required = false, dataType = "int"),  | 
|             @ApiImplicitParam(paramType = "query", name = "startTime", value = "开始时间", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "endTime", value = "结束时间", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "nickName", value = "昵称", required = false, dataType = "String"),  | 
|             @ApiImplicitParam(paramType = "query", name = "status", value = "审核状态(1为待审核,2为已审核,3为审核不通过)", required = false, dataType = "String")  | 
|     })  | 
|     public JsonResult<Map<String, Object>> quotaRecoveryList(@RequestBody MoneyModel moneyModel) {  | 
|         moneyModel.setPayType("9");  | 
|         return payRequestService.queryFundManagementList(moneyModel);  | 
|     }  | 
|   | 
|   | 
|   | 
|   | 
| }  |