123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314 |
- package com.szwl.controller;
- import cn.afterturn.easypoi.excel.ExcelExportUtil;
- import cn.afterturn.easypoi.excel.entity.ExportParams;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.szwl.constant.ResponseCodesEnum;
- import com.szwl.model.bo.R;
- import com.szwl.model.bo.ResponseModel;
- import com.szwl.model.entity.*;
- import com.szwl.model.excel.ShandeMchCompanyListTarget;
- import com.szwl.model.excel.ShandeMchListTarget;
- import com.szwl.service.TAdminService;
- import com.szwl.service.TShandeMchCheckService;
- import com.szwl.service.TShandeMchService;
- import io.swagger.annotations.ApiOperation;
- import org.apache.commons.lang.StringUtils;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.math.BigDecimal;
- import java.net.URLEncoder;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * <p>
- * 杉德支付收款信息 前端控制器
- * </p>
- *
- * @author wuhs
- * @since 2022-04-29
- */
- @RestController
- @RequestMapping("/tShandeMch")
- public class TShandeMchController {
- @Autowired
- TShandeMchCheckService tShandeMchCheckService;
- @Autowired
- TShandeMchService tShandeMchService;
- @Autowired
- TAdminService adminService;
- @ApiOperation(value = "查找杉德收款账户信息")
- @GetMapping("/getOne")
- public ResponseModel<?> getOne(String adminId) {
- TAdmin admin = adminService.getById(adminId);
- LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
- query.eq(TShandeMch::getAdminId,adminId);
- List<TShandeMch> list = tShandeMchService.list(query);
- if(list.size()>0){
- return R.ok(list.get(0));
- }else {
- return R.fail("尚未注册!");
- }
- }
- @ApiOperation(value = "获取杉德分账信息列表 分页")
- @GetMapping("/pageShandeMch")
- public ResponseModel<IPage<?>> pageShandeMch(String username, String type, long current, long size ){
- LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
- if(StringUtils.isNotEmpty(type)){
- query.eq(TShandeMch::getType,type);
- }else {
- query.eq(TShandeMch::getType,"0");
- }
- if(StringUtils.isNotEmpty(username)){
- LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
- query1.eq(TAdmin::getUsername,username);
- List<TAdmin> list = adminService.list(query1);
- if(list.size()>0){
- query.eq(TShandeMch::getAdminId,list.get(0).getId());
- }
- }
- Page<TShandeMch> page = new Page<>(current, size, true);
- IPage<TShandeMch> iPage = tShandeMchService.page(page, query);
- return R.ok(iPage);
- }
- @ApiOperation(value = "保存或提交审核")
- @PostMapping("/save")
- public ResponseModel<?> save(@RequestBody TShandeMch tShandeMch) {
- TAdmin admin = adminService.getById(tShandeMch.getAdminId());
- LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
- query.eq(TShandeMch::getAdminId,tShandeMch.getAdminId());
- List<TShandeMch> list = tShandeMchService.list(query);
- if(list.size()>0){
- //已有,属于第二次提交信息,需要审核
- TShandeMch oldShandeMch = list.get(0);
- int i = 0;
- if(!oldShandeMch.getType().equals(tShandeMch.getType())){
- i++;
- }
- if(!oldShandeMch.getBankName().equals(tShandeMch.getBankName())){
- i++;
- }
- if(!oldShandeMch.getBankNo().equals(tShandeMch.getBankNo())){
- i++;
- }
- if(i>0){
- TShandeMchCheck shandeMchCheck = new TShandeMchCheck();
- shandeMchCheck.setType(tShandeMch.getType());
- shandeMchCheck.setCreateDate(new Date());
- shandeMchCheck.setModifyDate(new Date());
- shandeMchCheck.setAdminId(oldShandeMch.getAdminId());
- shandeMchCheck.setCheckType("0");
- shandeMchCheck.setBankName(tShandeMch.getBankName());
- shandeMchCheck.setBankNo(tShandeMch.getBankNo());
- shandeMchCheck.setSettleableBalance(oldShandeMch.getSettleableBalance());
- shandeMchCheck.setTodayBalance(oldShandeMch.getTodayBalance());
- if(tShandeMch.getType().equals("0")){
- if(StringUtils.isEmpty(tShandeMch.getBankChannelName())||StringUtils.isEmpty(tShandeMch.getBankChannelNo())){
- R.fail("信息有空!");
- }
- shandeMchCheck.setBankChannelNo(tShandeMch.getBankChannelNo());
- shandeMchCheck.setBankChannelName(tShandeMch.getBankChannelName());
- }
- tShandeMchCheckService.save(shandeMchCheck);
- }
- return R.ok(list.get(0));
- }else {
- //没有,直接保存
- tShandeMch.setSettleableBalance(BigDecimal.valueOf(0.00));
- tShandeMch.setTodayBalance(BigDecimal.valueOf(0.00));
- tShandeMch.setTotalSettleableBalance(BigDecimal.valueOf(0.00));
- tShandeMch.setCreateDate(new Date());
- tShandeMch.setModifyDate(new Date());
- tShandeMchService.save(tShandeMch);
- return R.ok();
- }
- }
- @ApiOperation(value = "查找杉德收款账户信息")
- @GetMapping("/getShandeMch")
- public ResponseModel<TShandeMch> getShandeMch(@RequestParam String adminId) {
- LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
- query.eq(TShandeMch::getAdminId,adminId);
- List<TShandeMch> list = tShandeMchService.list(query);
- TShandeMch shandeMch = list.get(0);
- return R.ok(shandeMch);
- }
- @ApiOperation(value = "结算处理")
- @GetMapping("/jiesuan")
- public ResponseModel<?> jiesuan(String username, String type, String namelist) {
- if(StringUtils.isEmpty(type)){
- return R.fail(ResponseCodesEnum.A0100); }
- LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
- query.eq(TShandeMch::getType,type);
- if(StringUtils.isNotEmpty(username)){
- LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
- query1.eq(TAdmin::getUsername,username);
- List<TAdmin> list = adminService.list(query1);
- if(list.size()>0){
- query.eq(TShandeMch::getAdminId,list.get(0).getId());
- }
- }
- if(StringUtils.isNotEmpty(namelist)){
- String[] names = namelist.split(",");
- List<Long> ids = new ArrayList<>();
- if(names.length>0){
- for(int i=0;i<namelist.length();i++){
- LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
- query1.eq(TAdmin::getUsername,username);
- List<TAdmin> list = adminService.list(query1);
- if(list.size()>0){
- ids.add(list.get(0).getId());
- }
- }
- }
- if(ids.size()>0){
- query.notIn(TShandeMch::getAdminId,ids);
- }
- }
- List<TShandeMch> list = tShandeMchService.list(query);
- for(TShandeMch shandeMch:list){
- BigDecimal settleableBalance = shandeMch.getSettleableBalance();
- if(settleableBalance!=null&&settleableBalance.compareTo(new BigDecimal(0))>0){
- shandeMch.setSettleableDate(new Date());
- BigDecimal totalSettleableBalance = shandeMch.getTotalSettleableBalance();
- if(totalSettleableBalance!=null){
- shandeMch.setTotalSettleableBalance(settleableBalance.add(totalSettleableBalance));
- }else {
- shandeMch.setTotalSettleableBalance(settleableBalance);
- }
- shandeMch.setSettleableBalance(new BigDecimal(0));
- shandeMch.setLastSettleableBalance(settleableBalance);
- tShandeMchService.updateById(shandeMch);
- }
- }
- return R.ok();
- }
- @ApiOperation(value = "ClientId查找设备")
- @GetMapping("/updateShandeMch")
- public void updateShandeMch(@RequestBody TShandeMch shandeMch) {
- if(shandeMch!=null){
- shandeMch.setModifyDate(new Date());
- tShandeMchService.updateById(shandeMch);
- }
- }
- @ApiOperation(value = "结算处理")
- @GetMapping("/shandeMchListExport")
- public ResponseModel<?> shandeMchListExport(HttpServletResponse response, String username, String type, String namelist) {
- if(StringUtils.isEmpty(type)){
- return R.fail(ResponseCodesEnum.A0100);
- }
- LambdaQueryWrapper<TShandeMch> query = Wrappers.lambdaQuery();
- query.eq(TShandeMch::getType,type);
- if(StringUtils.isNotEmpty(username)){
- LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
- query1.eq(TAdmin::getUsername,username);
- List<TAdmin> list = adminService.list(query1);
- if(list.size()>0){
- query.eq(TShandeMch::getAdminId,list.get(0).getId());
- }
- }
- if(StringUtils.isNotEmpty(namelist)){
- String[] names = namelist.split(",");
- List<Long> ids = new ArrayList<>();
- if(names.length>0){
- for(int i=0;i<namelist.length();i++){
- LambdaQueryWrapper<TAdmin> query1 = Wrappers.lambdaQuery();
- query1.eq(TAdmin::getUsername,username);
- List<TAdmin> list = adminService.list(query1);
- if(list.size()>0){
- ids.add(list.get(0).getId());
- }
- }
- }
- if(ids.size()>0){
- query.notIn(TShandeMch::getAdminId,ids);
- }
- }
- List<TShandeMch> list = tShandeMchService.list(query);
- ExportParams exportParams = new ExportParams(null, "sheet1");
- Workbook workbook = null;
- //账号类型 0:对公 1:私人
- if(type.equals("0")){
- List<ShandeMchCompanyListTarget> shandeMchCompanyListTargets = new ArrayList<>();
- int i = 0;
- for(TShandeMch shandeMch: list){
- BigDecimal settleableBalance = shandeMch.getSettleableBalance();
- if(settleableBalance.compareTo(new BigDecimal(0))== 1){
- i++;
- ShandeMchCompanyListTarget shandeMchCompanyListTarget = new ShandeMchCompanyListTarget();
- shandeMchCompanyListTarget.setBankName(shandeMch.getBankName());
- shandeMchCompanyListTarget.setBankNo(shandeMch.getBankNo());
- shandeMchCompanyListTarget.setSettleableBalance(String.valueOf(shandeMch.getSettleableBalance()));
- shandeMchCompanyListTarget.setNo(String.valueOf(i));
- shandeMchCompanyListTarget.setBankChannelName(shandeMch.getBankChannelName());
- shandeMchCompanyListTarget.setBankChannelNo(shandeMch.getBankChannelNo());
- shandeMchCompanyListTargets.add(shandeMchCompanyListTarget);
- }
- }
- workbook = ExcelExportUtil.exportExcel(exportParams, ShandeMchCompanyListTarget.class, shandeMchCompanyListTargets);
- }
- if(type.equals("1")){
- List<ShandeMchListTarget> shandeMchListTargetList = new ArrayList<>();
- int i = 0;
- for(TShandeMch shandeMch: list){
- BigDecimal settleableBalance = shandeMch.getSettleableBalance();
- if(settleableBalance.compareTo(new BigDecimal(0))== 1){
- i++;
- ShandeMchListTarget shandeMchListTarget = new ShandeMchListTarget();
- shandeMchListTarget.setBankName(shandeMch.getBankName());
- shandeMchListTarget.setBankNo(shandeMch.getBankNo());
- shandeMchListTarget.setSettleableBalance(String.valueOf(shandeMch.getSettleableBalance()));
- shandeMchListTarget.setNo(String.valueOf(i));
- shandeMchListTargetList.add(shandeMchListTarget);
- }
- }
- workbook = ExcelExportUtil.exportExcel(exportParams, ShandeMchListTarget.class, shandeMchListTargetList);
- }
- if (workbook != null) {
- OutputStream os = null;
- try {
- os = response.getOutputStream();
- SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日HHmmss");
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- if(type.equals("0")){
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("对公账户" + format.format(new Date()) + ".xls", "UTF-8"));
- }else {
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("个人账号" + format.format(new Date()) + ".xls", "UTF-8"));
- }
- // response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("订单记录数据导出" + format.format(new Date()) + ".xls", "UTF-8"));
- workbook.write(os);
- return R.ok("导出成功");
- } catch (Exception e) {
- e.printStackTrace();
- return R.fail("导出错误");
- } finally {
- try {
- os.close();
- workbook.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return R.ok();
- }
- }
|