package com.szwl.controller; 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.service.TAdminService; import com.szwl.service.TEquipmentService; import com.szwl.service.TProportionCheckService; import com.szwl.service.TProportionService; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** *

* 分账表 前端控制器 *

* * @author wuhs * @since 2022-05-10 */ @RestController @RequestMapping("/tProportion") public class TProportionController { @Autowired TProportionCheckService tProportionCheckService; @Autowired TProportionService tProportionService; @Autowired TEquipmentService tEquipmentService; @Autowired TAdminService adminService; @ApiOperation(value = "获取分销信息列表 分页 商户") @GetMapping("/pageProportion") public ResponseModel> pageProportion(String adminId, String type, long current, long size) { TAdmin admin = adminService.getById(adminId); if (StringUtils.isEmpty(adminId)) { return R.fail(ResponseCodesEnum.A0100); } if (type.equals("0")) { //未审核 LambdaQueryWrapper query = Wrappers.lambdaQuery(); if (admin.getType() > 1) { query.eq(TProportionCheck::getAdminId, admin.getId()); } query.eq(TProportionCheck::getCheckType, "0"); // 公司平台 // 申泽平台管理员 if (admin.getId() == 2738) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.isNull(TAdmin::getCompanyType).or() .eq(TAdmin::getCompanyType, "0"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TProportionCheck::getAdminId, adminIds); } // 七云平台管理员 if (admin.getId() == 2739) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.eq(TAdmin::getCompanyType, "1"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TProportionCheck::getAdminId, adminIds); } query.orderByDesc(TProportionCheck::getCreateDate); Page page = new Page<>(current, size, true); IPage iPage = tProportionCheckService.page(page, query); List records = iPage.getRecords(); if (records.size() > 0) { for (TProportionCheck proportionCheck : records) { if (proportionCheck.getEquipmentId() != null) { TEquipment equipment = tEquipmentService.getById(proportionCheck.getEquipmentId()); if (equipment != null) { if (StringUtils.isNotEmpty(equipment.getName())) { proportionCheck.setEquipmentName(equipment.getName()); } else { proportionCheck.setEquipmentName(equipment.getClientId()); } } } } } return R.ok(iPage); } else { //已审核 LambdaQueryWrapper query = Wrappers.lambdaQuery(); if (admin.getType() > 1) { query.eq(TProportionCheck::getAdminId, admin.getId()); } query.in(TProportionCheck::getCheckType, "1", "2", "3"); // 公司平台 // 申泽平台管理员 if (admin.getId() == 2738) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.isNull(TAdmin::getCompanyType).or() .eq(TAdmin::getCompanyType, "0"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TProportionCheck::getAdminId, adminIds); } // 七云平台管理员 if (admin.getId() == 2739) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.eq(TAdmin::getCompanyType, "1"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TProportionCheck::getAdminId, adminIds); } query.orderByDesc(TProportionCheck::getCreateDate); Page page = new Page<>(current, size, true); IPage iPage = tProportionCheckService.page(page, query); List records = iPage.getRecords(); if (records.size() > 0) { for (TProportionCheck proportionCheck : records) { if (proportionCheck.getEquipmentId() != null) { TEquipment equipment = tEquipmentService.getById(proportionCheck.getEquipmentId()); if (equipment != null) { if (StringUtils.isNotEmpty(equipment.getName())) { proportionCheck.setEquipmentName(equipment.getName()); } else { proportionCheck.setEquipmentName(equipment.getClientId()); } } } } } return R.ok(iPage); } } @ApiOperation(value = "获取分销信息列表 分页 平台") @GetMapping("/pageProportionAdmin") public ResponseModel> pageProportionAdmin(String adminId, String userName, String type, long current, long size) { TAdmin admin = adminService.getById(adminId); if (StringUtils.isEmpty(adminId)) { return R.fail(ResponseCodesEnum.A0100); } //未审核 LambdaQueryWrapper query = Wrappers.lambdaQuery(); if (admin.getType() > 1) { query.eq(TProportionCheck::getAdminId, admin.getId()); } if (type.equals("0")) { query.eq(TProportionCheck::getCheckType, type); } // 申泽平台管理员 if (admin.getId() == 2738) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.isNull(TAdmin::getCompanyType).or() .eq(TAdmin::getCompanyType, "0"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TProportionCheck::getAdminId, adminIds); } // 七云平台管理员 if (admin.getId() == 2739) { LambdaQueryWrapper adminQuery = Wrappers.lambdaQuery(); adminQuery.eq(TAdmin::getCompanyType, "1"); List adminIds = adminService.list(adminQuery).stream() .map(TAdmin::getId).collect(Collectors.toList()); query.in(TProportionCheck::getAdminId, adminIds); } if (StringUtils.isNotEmpty(userName)) { LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TAdmin::getUsername, userName); List list = adminService.list(query1); if (list.size() > 0) { query.eq(TProportionCheck::getAdminId, list.get(0).getId()); } } query.orderByDesc(TProportionCheck::getCreateDate); Page page = new Page<>(current, size, true); IPage iPage = tProportionCheckService.page(page, query); List records = iPage.getRecords(); if (records.size() > 0) { for (TProportionCheck proportionCheck : records) { if (proportionCheck.getEquipmentId() != null) { TEquipment equipment = tEquipmentService.getById(proportionCheck.getEquipmentId()); if (equipment != null) { if (StringUtils.isNotEmpty(equipment.getName())) { proportionCheck.setEquipmentName(equipment.getName()); } else { proportionCheck.setEquipmentName(equipment.getClientId()); } } } } } return R.ok(iPage); } @ApiOperation(value = "查找机器分销信息信息") @PostMapping("/getOne") public ResponseModel getOne(String adminId, String clientId) { if (adminId.equals("1")) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(TEquipment::getClientId, clientId); TEquipment equipment = tEquipmentService.getOne(queryWrapper); adminId = String.valueOf(equipment.getAdminId()); } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TProportion::getAdminId, adminId); query.eq(TProportion::getClientId, clientId); List list = tProportionService.list(query); if (list.size() > 0) { //已经注册,就要查看是否有提交审核的 // LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); // query1.eq(TProportionCheck::getAdminId,adminid); // query1.eq(TProportionCheck::getClientId,clientId); // List list1 = tProportionCheckService.list(query1); // if(list1.size()>0){ // int i = 0; // for(TProportionCheck tProportionCheck:list1){ // if(tProportionCheck.getCheckType().equals("0")||tProportionCheck.getCheckType().equals("3")){ // i++; // } // } // if(i==0){ // return R.ok(list.get(0)); // }else { // for(int j=list1.size()-1;j>=0;j--){ // if(!list1.get(j).getCheckType().equals("2")&!list1.get(j).getCheckType().equals("1")){ // if(list1.get(j).getCheckType().equals("3")){ // Date data = new Date(); // long time = data.getTime(); // long updateTime = list1.get(j).getModifyDate().getTime(); // if(3*24*60*60*1000l>time-updateTime){ // //拒绝的审核,超过3天后不显示 // return R.ok(list.get(0)); // }else { // return R.ok(list.get(j)); // } // } // return R.ok(list.get(j)); // } // } // } // }else { // return R.ok(list.get(0)); // } TProportion tProportion = list.get(0); if (tProportion.getAgencyId() != null) { TAdmin admin1 = adminService.getById(tProportion.getAgencyId()); tProportion.setAgencyName(admin1.getUsername()); } if (tProportion.getMerchantId() != null) { TAdmin admin2 = adminService.getById(tProportion.getMerchantId()); tProportion.setMerchantName(admin2.getUsername()); } if (tProportion.getPersonageId() != null) { TAdmin admin3 = adminService.getById(tProportion.getId()); tProportion.setPersonageName(admin3.getUsername()); } return R.ok(tProportion); } else { return R.fail("尚未注册!"); } } @ApiOperation(value = "保存或提交审核") @PostMapping("/save") public ResponseModel save(@RequestBody TProportion tProportion) { if (tProportion.getAdminId() == null || StringUtils.isEmpty(tProportion.getClientId())) { R.fail("信息有空!"); } // TAdmin admin = adminService.getById(tProportion.getAdminId()); //查找机器,看改商家是否有该机器 LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TEquipment::getAdminId, tProportion.getAdminId()); query1.eq(TEquipment::getClientId, tProportion.getClientId()); // List equipmentList = tEquipmentService.list(query1); TEquipment equipment = tEquipmentService.getOne(query1); if (equipment == null) { return R.fail("找不到该机器!"); } String name = equipment.getName(); String clientId = equipment.getClientId(); if (StringUtils.isEmpty(name)) { name = clientId.substring(clientId.length() - 6); } //查看是否有审核中的 LambdaQueryWrapper queryCheck = Wrappers.lambdaQuery(); queryCheck.eq(TProportionCheck::getAdminId, tProportion.getAdminId()); queryCheck.eq(TProportionCheck::getClientId, tProportion.getClientId()); queryCheck.eq(TProportionCheck::getCheckType, "0"); List listCheck = tProportionCheckService.list(queryCheck); if (listCheck.size() > 0) { return R.fail("已有审核,如需修改请先取消原来的审核!"); } Long agencyId = null; Long merchantId = null; Long personageId = null; //查找个分账人的id if (tProportion.getType() > 0) { //1个 LambdaQueryWrapper queryTAdmin = Wrappers.lambdaQuery(); queryTAdmin.eq(TAdmin::getUsername, tProportion.getAgencyName()); TAdmin admins = adminService.getOne(queryTAdmin); if (admins != null) { agencyId = admins.getId(); } else { return R.fail("找不到第一个分账人!"); } } if (tProportion.getType() > 1) { //2个 LambdaQueryWrapper queryTAdmin1 = Wrappers.lambdaQuery(); queryTAdmin1.eq(TAdmin::getUsername, tProportion.getMerchantName()); TAdmin admins1 = adminService.getOne(queryTAdmin1); if (admins1 != null) { merchantId = admins1.getId(); } else { return R.fail("找不到第二个分账人!"); } } if (tProportion.getType() > 2) { //3个 LambdaQueryWrapper queryTAdmin2 = Wrappers.lambdaQuery(); queryTAdmin2.eq(TAdmin::getUsername, tProportion.getPersonageName()); TAdmin admins2 = adminService.getOne(queryTAdmin2); if (admins2 != null) { personageId = admins2.getId(); } else { return R.fail("找不到第三个分账人!"); } } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TProportion::getAdminId, tProportion.getAdminId()); query.eq(TProportion::getClientId, tProportion.getClientId()); TProportion proportion = tProportionService.getOne(query); if (proportion != null) { //提交审核 TProportionCheck proportionCheck = new TProportionCheck(); proportionCheck.setAdminId(tProportion.getAdminId()); proportionCheck.setEquipmentId(equipment.getId()); proportionCheck.setClientId(tProportion.getClientId()); proportionCheck.setType(tProportion.getType()); proportionCheck.setProportion(tProportion.getProportion()); proportionCheck.setAdminProportion(tProportion.getAdminProportion()); proportionCheck.setAgencyId(agencyId); proportionCheck.setMerchantId(merchantId); proportionCheck.setPersonageId(personageId); proportionCheck.setAgencyProportion(tProportion.getAgencyProportion()); proportionCheck.setMerchantProportion(tProportion.getMerchantProportion()); proportionCheck.setPersonageProportion(tProportion.getPersonageProportion()); proportionCheck.setAgencyName(tProportion.getAgencyName()); proportionCheck.setMerchantName(tProportion.getMerchantName()); proportionCheck.setPersonageName(tProportion.getPersonageName()); proportionCheck.setEquipmentName(equipment.getName()); proportionCheck.setCreateDate(new Date()); proportionCheck.setModifyDate(new Date()); proportionCheck.setCheckType("0"); tProportionCheckService.save(proportionCheck); return R.ok("已提交审核"); // } } else { //提交审核 TProportionCheck proportionCheck = new TProportionCheck(); proportionCheck.setAdminId(tProportion.getAdminId()); proportionCheck.setEquipmentId(equipment.getId()); proportionCheck.setEquipmentName(equipment.getName()); proportionCheck.setClientId(tProportion.getClientId()); proportionCheck.setType(tProportion.getType()); proportionCheck.setProportion(tProportion.getProportion()); proportionCheck.setAdminProportion(tProportion.getAdminProportion()); proportionCheck.setAgencyId(agencyId); proportionCheck.setMerchantId(merchantId); proportionCheck.setPersonageId(personageId); proportionCheck.setAgencyProportion(tProportion.getAgencyProportion()); proportionCheck.setMerchantProportion(tProportion.getMerchantProportion()); proportionCheck.setPersonageProportion(tProportion.getPersonageProportion()); proportionCheck.setAgencyName(tProportion.getAgencyName()); proportionCheck.setMerchantName(tProportion.getMerchantName()); proportionCheck.setPersonageName(tProportion.getPersonageName()); proportionCheck.setCreateDate(new Date()); proportionCheck.setModifyDate(new Date()); //没有,判断是否为99%和1%组合 if (tProportion.getProportion().compareTo(new BigDecimal("99")) == 0 && tProportion.getAdminProportion().compareTo(new BigDecimal("1")) == 0) { tProportion.setAgencyId(agencyId); tProportion.setMerchantId(merchantId); tProportion.setPersonageId(personageId); tProportion.setEquipmentId(equipment.getId()); tProportion.setEquipmentName(equipment.getName()); tProportion.setAgencyProportion(BigDecimal.valueOf(0.00)); tProportion.setMerchantProportion(BigDecimal.valueOf(0.00)); tProportion.setPersonageProportion(BigDecimal.valueOf(0.00)); tProportion.setCreateDate(new Date()); tProportion.setModifyDate(new Date()); tProportionService.save(tProportion); proportionCheck.setCheckType("1"); tProportionCheckService.save(proportionCheck); return R.ok("添加成功"); } else { proportionCheck.setCheckType("0"); tProportionCheckService.save(proportionCheck); return R.ok("已提交审核"); } } } @ApiOperation(value = "") @GetMapping("/getById") public ResponseModel getById(String id, String type) { if (StringUtils.isEmpty(id) && StringUtils.isEmpty(type)) { return R.fail(ResponseCodesEnum.A0100); } if (type.equals("0")) { //未审核 LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TProportionCheck::getId, id); List list = tProportionCheckService.list(query); TProportionCheck tProportionCheck = list.get(0); return R.ok(tProportionCheck); } else { //已审核 LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TProportion::getId, id); List list = tProportionService.list(query); TProportion tProportion = list.get(0); return R.ok(tProportion); } } @ApiOperation(value = "获取机器分销信息") @GetMapping("/getProportion") public ResponseModel getProportion(@RequestParam String equipmentId) { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TProportion::getEquipmentId, Long.valueOf(equipmentId)); // List list = tProportionService.list(query); // TProportion tProportion = list.get(0); TProportion proportion = tProportionService.getOne(query); return R.ok(proportion); } @ApiOperation(value = "批量设置机器分销") @GetMapping("/setProportion") public ResponseModel setProportion() { LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TAdmin::getIfForeign, "0"); List list = adminService.list(query); List equipmentList = new ArrayList<>(); if (list.size() > 0) { for (TAdmin admin : list) { LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TEquipment::getAdminId, admin.getId()); List list1 = tEquipmentService.list(query1); if (list1.size() > 0) { for (TEquipment equipment : list1) { String s = equipment.getClientId().substring(equipment.getClientId().length() - 1, equipment.getClientId().length()); if (!s.equals("x")) { equipmentList.add(equipment); } } } } } if (equipmentList.size() > 0) { for (TEquipment equipment : equipmentList) { String clientId = equipment.getClientId(); LambdaQueryWrapper query2 = Wrappers.lambdaQuery(); query2.eq(TEquipment::getClientId, clientId); List list2 = tEquipmentService.list(query2); TEquipment equipment1 = list2.get(0); if (equipment1 != null && equipment1.getId() != null) { TAdmin admin = adminService.getById(equipment1.getAdminId()); String name = admin.getName(); //查询机器是否已经有设置分销 LambdaQueryWrapper query1 = Wrappers.lambdaQuery(); query1.eq(TProportion::getClientId, equipment1.getClientId()); query1.eq(TProportion::getEquipmentId, equipment1.getId()); List list1 = tProportionService.list(query1); if (list1.size() > 0) { //已有 } else { //没有,需要创建 //1,判断是否新机器 // Date createDate = equipment.getCreateDate(); // long time = createDate.getTime(); // DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // String day= "2022-09-21 23:59:59"; // try { // Date parse = simpleDateFormat.parse(day); // if(time>parse.getTime()){ // return "新机器,不能已此方式生成分销!"; // } // } catch (ParseException e) { // e.printStackTrace(); // } //先找到原账户的分销 LambdaQueryWrapper query3 = Wrappers.lambdaQuery(); query3.eq(TProportion::getAdminId, admin.getId()); List list3 = tProportionService.list(query3); if (list3.size() > 0) { TProportion adminProportion = list3.get(0); if (StringUtils.isEmpty(adminProportion.getClientId())) { TProportion equipmentProportion = new TProportion(); equipmentProportion.setCreateDate(new Date()); equipmentProportion.setModifyDate(new Date()); equipmentProportion.setAdminId(admin.getId()); equipmentProportion.setClientId(equipment.getClientId()); equipmentProportion.setEquipmentId(equipment.getId()); equipmentProportion.setAdminProportion(adminProportion.getAdminProportion()); Integer type = adminProportion.getType(); if (type != null) { switch (type) { case 1: equipmentProportion.setProportion(adminProportion.getAgencyProportion()); equipmentProportion.setAgencyProportion(new BigDecimal("0.00")); equipmentProportion.setMerchantProportion(new BigDecimal("0.00")); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(0); break; case 2: equipmentProportion.setProportion(adminProportion.getMerchantProportion()); equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion()); // if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setAgencyId(admin.getAgencyId()); // TAdmin byId = adminService.getById(admin.getAgencyId()); // equipmentProportion.setAgencyName(byId.getUsername()); // } equipmentProportion.setAgencyId(admin.getAgencyId()); TAdmin byId = adminService.getById(admin.getAgencyId()); equipmentProportion.setAgencyName(byId.getUsername()); equipmentProportion.setMerchantProportion(new BigDecimal("0.00")); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(1); break; case 3: equipmentProportion.setProportion(adminProportion.getPersonageProportion()); equipmentProportion.setAgencyProportion(adminProportion.getAgencyProportion()); // if(adminProportion.getAgencyProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setAgencyId(admin.getAgencyId()); // TAdmin byId = adminService.getById(admin.getAgencyId()); // equipmentProportion.setAgencyName(byId.getUsername()); // } equipmentProportion.setAgencyId(admin.getAgencyId()); TAdmin byId1 = adminService.getById(admin.getAgencyId()); equipmentProportion.setAgencyName(byId1.getUsername()); equipmentProportion.setMerchantProportion(adminProportion.getMerchantProportion()); // if(adminProportion.getMerchantProportion().compareTo(new BigDecimal("0.00"))!=0){ // equipmentProportion.setMerchantId(admin.getMerchantId()); // TAdmin byId = adminService.getById(admin.getMerchantId()); // equipmentProportion.setMerchantName(byId.getUsername()); // } equipmentProportion.setMerchantId(admin.getMerchantId()); TAdmin byId2 = adminService.getById(admin.getMerchantId()); equipmentProportion.setMerchantName(byId2.getUsername()); equipmentProportion.setPersonageProportion(new BigDecimal("0.00")); equipmentProportion.setType(2); break; } boolean save = tProportionService.save(equipmentProportion); } } } else { } } } } } return R.ok(); } }