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.in(TProportionCheck::getCheckType,"0","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); }else { //已审核 LambdaQueryWrapper query = Wrappers.lambdaQuery(); if(admin.getType()>1){ query.eq(TProportion::getAdminId,admin.getId()); } // 公司平台 // 申泽平台管理员 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(TProportion::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(TProportion::getAdminId,adminIds); } query.orderByDesc(TProportion::getCreateDate); Page page = new Page<>(current, size, true); IPage iPage = tProportionService.page(page, query); List records = iPage.getRecords(); if(records.size()>0){ for(TProportion proportion:records){ if(proportion.getEquipmentId()!=null){ TEquipment equipment = tEquipmentService.getById(proportion.getEquipmentId()); if(equipment != null) { if(StringUtils.isNotEmpty(equipment.getName())){ proportion.setEquipmentName(equipment.getName()); }else { proportion.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) { TAdmin admin = adminService.getById(adminId); 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); if(equipmentList.size()<=0){ return R.fail("找不到该机器!"); } TEquipment equipment = equipmentList.get(0); //查看是否有审核中的 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()); List admins = adminService.list(queryTAdmin); if(admins.size()>0){ TAdmin tAdmin = admins.get(0); agencyId = tAdmin.getId(); }else { return R.fail("找不到第一个分账人!"); } } if(tProportion.getType()>1){ //2个 LambdaQueryWrapper queryTAdmin1 = Wrappers.lambdaQuery(); queryTAdmin1.eq(TAdmin::getUsername,tProportion.getMerchantName()); List admins1 = adminService.list(queryTAdmin1); if(admins1.size()>0){ TAdmin tAdmin = admins1.get(0); merchantId = tAdmin.getId(); }else { return R.fail("找不到第二个分账人!"); } } if(tProportion.getType()>2){ //3个 LambdaQueryWrapper queryTAdmin2 = Wrappers.lambdaQuery(); queryTAdmin2.eq(TAdmin::getUsername,tProportion.getPersonageName()); List admins2 = adminService.list(queryTAdmin2); if(admins2.size()>0){ TAdmin tAdmin = admins2.get(0); personageId = tAdmin.getId(); }else { return R.fail("找不到第三个分账人!"); } } LambdaQueryWrapper query = Wrappers.lambdaQuery(); query.eq(TProportion::getAdminId,tProportion.getAdminId()); query.eq(TProportion::getClientId,tProportion.getClientId()); List list = tProportionService.list(query); if(list.size()>0){ //已有,属于第二次提交信息,需要审核 TProportion oldProportion = list.get(0); //已有,判断是否为99%和1%组合 // if(tProportion.getProportion().compareTo(new BigDecimal("99"))==0&&tProportion.getAdminProportion().compareTo(new BigDecimal("1"))==0){ // oldProportion.setAgencyId(agencyId); // oldProportion.setMerchantId(merchantId); // oldProportion.setPersonageId(personageId); // oldProportion.setAgencyProportion(BigDecimal.valueOf(0.00)); // oldProportion.setMerchantProportion(BigDecimal.valueOf(0.00)); // oldProportion.setPersonageProportion(BigDecimal.valueOf(0.00)); // oldProportion.setModifyDate(new Date()); // tProportionService.updateById(tProportion); // return R.ok("修改成功"); // }else { //提交审核 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 { //没有,判断是否为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); 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()); proportionCheck.setCheckType("0"); tProportionCheckService.save(proportionCheck); return R.ok("已提交审核"); } // tProportion.setSettleableBalance(BigDecimal.valueOf(0.00)); // tProportion.setCreateDate(new Date()); // tProportion.setModifyDate(new Date()); // tProportionService.save(tProportion); } } @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); return R.ok(tProportion); } @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(); } }