package com.ydtech.modules.admin.controller; import com.ydtech.core.page.HttpResult; import com.ydtech.modules.admin.model.dto.*; import com.ydtech.modules.admin.model.po.SysUserAccount; import com.ydtech.modules.admin.model.po.SysUserBankCard; import com.ydtech.modules.admin.model.vo.MyIncomeAndExpensesNewPageVo; import com.ydtech.modules.admin.model.vo.SubOrder; import com.ydtech.modules.admin.model.vo.SysUserAccountVo; import com.ydtech.modules.admin.service.SysUserAccountService; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.order.entity.BasePageResult; import com.ydtech.utils.ExcelUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.math.BigDecimal; import java.util.List; @Api(tags = "账户余额") @RequestMapping("/sysUserAccount") @RestController public class SysUserAccountController extends BaseController { @Autowired private SysUserAccountService sysUserAccountService; @Value("${upload.file.path}") private String uploadPath; private String EXCEL_PATH = "excel//"; private String UPLOAD_PATH = "/upload//excel//"; @PostMapping("/queryPage") @ApiOperation(value = "用户账户表分页") public HttpResult> queryPageOrder(@RequestBody @Valid SysUserAccountVo sysUserAccountVo) { BasePageResult result = sysUserAccountService.queryByVo(sysUserAccountVo); return HttpResult.ok("success", result); } @PostMapping("/queryPageList") @ApiOperation(value = "用户账户表分页2") public HttpResult> queryPageList(@RequestBody SysUserAccountVo sysUserAccountVo) { BasePageResult result = sysUserAccountService.queryByVo1(sysUserAccountVo); return HttpResult.ok("success", result); } @PostMapping("/querySum") @ApiOperation(value = "用户账户统计") public HttpResult querySum(@RequestBody SysUserAccountVo sysUserAccountVo) { SysUserAccount result = sysUserAccountService.querySum(sysUserAccountVo); return HttpResult.ok("success", result); } @PostMapping("/insert") @ApiOperation("提交") public HttpResult submit(@RequestBody SysUserAccountVo sysUserAccountVo) { return HttpResult.ok("提现功能维护中"); // return sysUserAccountService.inert(sysUserAccountVo); } /** * @version * @author: hxl * @Date: 2024/6/19 8:52 * @Description: 提现 */ @PostMapping("/withdraw") @ApiOperation("提现") public HttpResult withdraw(@RequestBody SysUserAccountVo sysUserAccountVo) { return HttpResult.ok("提现功能维护中"); // return sysUserAccountService.withdraw(sysUserAccountVo); } @GetMapping(value = "/getSysUserAmount") @ApiOperation("用户账户余额") public HttpResult getSysUserAmount(@RequestParam String userid) { return HttpResult.ok(sysUserAccountService.getSysUserAmount(userid)); } @GetMapping(value = "/getSysAllAmount") @ApiOperation("用户余额new") public HttpResult getSysAllAmount() { String userId = BaseController.getUser().getId(); SysUserAccountVo result = sysUserAccountService.getSysAllAmount(userId); return HttpResult.ok("success", result); } @PostMapping("getInsOrders") @ApiOperation("获取预收实收列表数据") public HttpResult getInsOrders(@RequestBody SysUserAccountVo sysUserAccountVo) { if (StringUtils.isBlank(sysUserAccountVo.getAmountType())) { return HttpResult.error("金额类型(手续费金额1跟单金额2推广金额3)amountType不能为空"); } //预收实收类型 if (StringUtils.isBlank(sysUserAccountVo.getSearchType())) { return HttpResult.error("预收实收类型(预收1实收2)searchType不能为空"); } //查询时间 if (StringUtils.isBlank(sysUserAccountVo.getTimeFiltering())) { return HttpResult.error("查询时间timeFiltering不能为空"); } try { SysUserAccountVo result = sysUserAccountService.getInsOrders(sysUserAccountVo); return HttpResult.ok("success", result); } catch (Exception e) { return HttpResult.error("查询失败" + e.getMessage()); } } /** * @version * @author: hxl * @Date: 2024/6/3 15:03 * @Description: 通过子订单编号查询订单的详情页面 */ @GetMapping("getSubOrderDetails") @ApiOperation("获取推广费订单详情") public HttpResult getSubOrderDetails(String subOrderId) { if (StringUtils.isBlank(subOrderId)) { return HttpResult.error("订单号subOrderId不能为空"); } try { SubOrder subOrder = sysUserAccountService.getSubOrderDetails(subOrderId, BaseController.getUser().getId()); return HttpResult.ok("success", subOrder); } catch (Exception e) { return HttpResult.error("操作失败" + e.getMessage()); } } /** * @version * @author: hxl * @Date: 2024/6/19 9:00 * @Description: 查询我的账户金额 */ @GetMapping("getUserSumAmountByUserId") @ApiOperation("查询我的账户总金额") public HttpResult getUserSumAmountByUserId(String userId) { try { BigDecimal sumAmount = sysUserAccountService.getUserSumAmountByUserId(userId); return HttpResult.ok("success", sumAmount); } catch (Exception e) { return HttpResult.error("操作失败" + e.getMessage()); } } /** * @version * @author: hxl * @Date: 2024/6/19 9:14 * @Description: 查询我的预收明细 */ @PostMapping("findMyCollectInAdvanceByUserId") @ApiOperation("查询我的预收明细") public HttpResult findMyCollectInAdvanceByUserId(@RequestBody MyCollectInAdvanceQueryDto myCollectInAdvanceQueryDto) { return HttpResult.ok(sysUserAccountService.findMyCollectInAdvanceByUserId(myCollectInAdvanceQueryDto)); } /** * @version * @author: hxl * @Date: 2024/6/19 9:14 * @Description: 查询我的预收的数据 */ @PostMapping("findMyIncomeAndExpensesByUserId") @ApiOperation("查询我的收支明细") public HttpResult findIncomeAndExpensesByUserId(@RequestBody MyIncomeAndExpensesQueryDto myIncomeAndExpensesQueryDto) { return HttpResult.ok(sysUserAccountService.findIncomeAndExpensesByUserId(myIncomeAndExpensesQueryDto)); } /** * @version * @author: hxl * @Date: 2024/6/19 9:14 * @Description: 提现中、已提现的详情 */ @GetMapping("findDetailById") @ApiOperation("提现的详情") public HttpResult findDetailById(String id) { return HttpResult.ok(sysUserAccountService.findDetailById(id)); } /** * @PostMapping("findOrderDetailById") * @ApiOperation("订单详情") public HttpResult findOrderDetailById(String subOrderId){ * return HttpResult.ok(sysUserAccountService.findOrderDetailById(subOrderId)); * } **/ @GetMapping("findRefundDetailById") @ApiOperation("退款详情") public HttpResult findRefundDetailById(String id) { return HttpResult.ok(sysUserAccountService.findRefundDetailById(id)); } /** * @version * @author: hxl * @Date: 2024/6/30 19:14 * @Description: 查询我的车险明细 */ @PostMapping("findMyInsuranceByUserId") @ApiOperation("查询我的车险明细") public HttpResult> findMyInsuranceByUserId(@RequestBody MyInsuranceQueryDto myInsuranceQueryDto) { return HttpResult.ok(sysUserAccountService.findMyInsuranceByUserId(myInsuranceQueryDto)); } /** * @version * @author: hxl * @Date: 2024/6/30 19:14 * @Description: 查询我的推广费明细 */ @PostMapping("findMyInsuranceTGByUserId") @ApiOperation("查询我的推广费明细") public HttpResult> findMyInsuranceTGByUserId(@RequestBody MyInsuranceTgQueryDto myInsuranceTgQueryDto) { return HttpResult.ok(sysUserAccountService.findMyInsuranceTGByUserId(myInsuranceTgQueryDto)); } /** * @version * @author: hxl * @Date: 2024/6/30 19:14 * @Description: 查询导出车险明细 */ @PostMapping("exportMyInsuranceByUserId") @ApiOperation("查询导出车险明细") public HttpResult> exportMyInsuranceByUserId(@RequestBody MyInsuranceQueryDto myInsuranceQueryDto) { List exportIncomeTypeDetalsList = sysUserAccountService.exportMyInsuranceByUserId(myInsuranceQueryDto); ExcelUtils excelUtils = new ExcelUtils<>(ExportExpenditureTypeDetalsDto.class); String fileName = "车险明细" + System.currentTimeMillis() + ".xlsx"; String saveFilePath = uploadPath + "//" + EXCEL_PATH + fileName; String resultPath = UPLOAD_PATH + fileName; String sheetName = "车险明细表"; try { excelUtils.writeExcelNew(saveFilePath, sheetName, exportIncomeTypeDetalsList); return HttpResult.ok(resultPath); } catch (Exception e) { return HttpResult.error("导出车险明细表失败:" + e.getMessage()); } } /** * @version * @author: hxl * @Date: 2024/6/30 19:14 * @Description: 查询导出推广费明细 */ @PostMapping("expeortMyInsuranceTGByUserId") @ApiOperation("查询导出推广费明细") public HttpResult> expeortMyInsuranceTGByUserId(@RequestBody MyInsuranceTgQueryDto myInsuranceTgQueryDto) { List exportIncomeTypeDetalsList = sysUserAccountService.exportMyInsuranceTGByUserId(myInsuranceTgQueryDto); ExcelUtils excelUtils = new ExcelUtils<>(ExportExpenditureTypeDetalsTGDto.class); String fileName = "推广费明细" + System.currentTimeMillis() + ".xlsx"; String saveFilePath = uploadPath + "//" + EXCEL_PATH + fileName; String resultPath = UPLOAD_PATH + fileName; String sheetName = "推广费明细表"; try { excelUtils.writeExcelNew(saveFilePath, sheetName, exportIncomeTypeDetalsList); return HttpResult.ok(resultPath); } catch (Exception e) { return HttpResult.error("导出推广费明细表失败:" + e.getMessage()); } } /** * @version * @author: hxl * @Date: 2024/6/30 19:14 * @Description: 收支明细 */ @PostMapping("findMyIncomeAndExpensesNewByUserId") @ApiOperation("查询收支明细新") public HttpResult> findMyIncomeAndExpensesNewByUserId(@RequestBody MyCollectInAdvanceQueryNewDto myCollectInAdvanceQueryNewDto) { return HttpResult.ok(sysUserAccountService.findMyIncomeAndExpensesNewByUserId(myCollectInAdvanceQueryNewDto)); } /** * @version * @author: hxl * @Date: 2024/7/1 8:57 * @Description: 导出收支明细新 */ @PostMapping("exportMyIncomeAndExpensesNewByUserId") @ApiOperation("导出收支明细新") public HttpResult exportMyIncomeAndExpensesNewByUserId(@RequestBody MyCollectInAdvanceQueryNewDto myCollectInAdvanceQueryNewDto) { List exportIncomeTypeDetalsList = sysUserAccountService.exportMyIncomeAndExpensesNewByUserId(myCollectInAdvanceQueryNewDto); ExcelUtils excelUtils = new ExcelUtils<>(ExportExpenditureTypeDetalsSZDto.class); String fileName = "收支明细" + System.currentTimeMillis() + ".xlsx"; String saveFilePath = uploadPath + "//" + EXCEL_PATH + fileName; String resultPath = UPLOAD_PATH + fileName; String sheetName = "收支明细表"; try { excelUtils.writeExcelNew(saveFilePath, sheetName, exportIncomeTypeDetalsList); return HttpResult.ok(resultPath); } catch (Exception e) { return HttpResult.error("导出收支明细表失败:" + e.getMessage()); } } /** * @version * @author: hxl * @Date: 2024/6/30 18:43 * @Description: 我的账户页面的数据 */ @PostMapping("findMyAmount") @ApiOperation("我的账户页面的数据") public HttpResult findMyAmount(@RequestBody MySumAmountQueryDto mySumAmountQueryDto) { MySumAmountDto amountDto = sysUserAccountService.findMyAmount(mySumAmountQueryDto); return HttpResult.ok(amountDto); } /** * @version * @author: hxl * @Date: 2025/1/6 18:14 * @Description: 查询用户的提现总金额去除电销组员的金额(电销组员通过逻辑累加到组长上了) */ @GetMapping("/queryCount") @ApiOperation(value = "查询所有的账户的数据金额") public HttpResult queryCount() { BigDecimal bigDecimal = sysUserAccountService.queryCount(); return HttpResult.ok("success", bigDecimal); } /** * @version * @author: hxl * @Date: 2025/1/6 18:15 * @Description: 查询用户的银行卡信息 */ @GetMapping("/queryCardListByUserId") @ApiOperation(value = "查询用户的银行卡信息") public HttpResult queryCardListByUserId(String userId) { List cardList = sysUserAccountService.queryCardListByUserId(userId); return HttpResult.ok("success", cardList); } }