package com.ruoyi.chargingPile.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.chargingPile.api.dto.GetPermissionConfigurationDTO; import com.ruoyi.chargingPile.api.dto.PartnerListDTO; import com.ruoyi.chargingPile.api.model.Partner; import com.ruoyi.chargingPile.api.model.TPartnerSite; import com.ruoyi.chargingPile.api.model.TSiteMenu; import com.ruoyi.chargingPile.api.query.GetPartnerList; import com.ruoyi.chargingPile.api.query.SetPermissionConfiguration; import com.ruoyi.chargingPile.api.domain.SiteMenu; import com.ruoyi.chargingPile.dto.ResetPassword; import com.ruoyi.chargingPile.service.IPartnerService; import com.ruoyi.chargingPile.service.TPartnerSiteService; import com.ruoyi.chargingPile.service.TSiteMenuService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.annotation.Logical; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; 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.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Set; /** * @author zhibing.pu * @Date 2024/8/7 13:49 */ @RestController @RequestMapping("/partner") public class PartnerController { @Resource private IPartnerService partnerService; @Resource private SysUserClient sysUserClient; @Resource private TSiteMenuService siteMenuService; @Resource private TPartnerSiteService partnerSiteService; @RequiresPermissions(value = {"/balanceSheetRecord", "/partners", "/chargingPile/add", "/chargingPile/select", "/chargingPile/update"}, logical = Logical.OR) @ResponseBody @GetMapping("/getPartnerList") @ApiOperation(value = "获取合作商列表", tags = {"管理后台-合作商管理"}) public AjaxResult> getPartnerList(GetPartnerList partnerList){ PageInfo list = partnerService.getPartnerList(partnerList); return AjaxResult.success(list); } @RequiresPermissions(value = {"/partners/add"}, logical = Logical.OR) @ResponseBody @PostMapping("/addPartner") @ApiOperation(value = "添加合作商", tags = {"管理后台-合作商管理"}) @Log(title = "【合作商列表】添加合作商", businessType = BusinessType.INSERT) public AjaxResult addPartner(@RequestBody Partner partner){ return partnerService.addPartner(partner); } @RequiresPermissions(value = {"/partners/seleete", "/partners/update"}, logical = Logical.OR) @ResponseBody @GetMapping("/getPartner/{id}") @ApiOperation(value = "获取合作商详情", tags = {"管理后台-合作商管理", "管理后台-充电桩信息"}) @ApiImplicitParams({ @ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true) }) public AjaxResult getPartner(@PathVariable Integer id){ Partner partner = partnerService.getPartner(id); return AjaxResult.success(partner); } @ResponseBody @GetMapping("/getPartnerR/{id}") public R getPartnerR(@PathVariable("id") Integer id){ Partner partner = partnerService.getPartner(id); return R.ok(partner); } @ResponseBody @GetMapping("/getAllPartner") public R> getAllPartner(){ return R.ok(partnerService.list()); } @RequiresPermissions(value = {"/partners/update"}, logical = Logical.OR) @ResponseBody @PostMapping("/editPartner") @ApiOperation(value = "编辑合作商", tags = {"管理后台-合作商管理"}) @Log(title = "【合作商列表】编辑合作商", businessType = BusinessType.UPDATE) public AjaxResult editPartner(@RequestBody Partner partner){ return partnerService.editPartner(partner); } @RequiresPermissions(value = {"/partners/del"}, logical = Logical.OR) @ResponseBody @DeleteMapping("/delPartner") @ApiOperation(value = "删除合作商", tags = {"管理后台-合作商管理"}) @ApiImplicitParams({ @ApiImplicitParam(value = "合作商id", name = "id", dataTypeClass = Integer.class, required = true) }) @Log(title = "【合作商列表】删除合作商", businessType = BusinessType.DELETE) public AjaxResult delPartner(@RequestParam("id") List id){ return partnerService.delPartner(id); } @RequiresPermissions(value = {"/partners/resetPassword"}, logical = Logical.OR) @ResponseBody @PostMapping("/resetPassword") @ApiOperation(value = "合作商重置密码", tags = {"管理后台-合作商管理"}) @Log(title = "【合作商列表】重置合作商密码", businessType = BusinessType.UPDATE) public AjaxResult resetPassword(@RequestBody ResetPassword resetPassword){ return partnerService.resetPassword(resetPassword); } @Autowired private TokenService tokenService; @RequiresPermissions(value = {"/site/add", "/site/update"}, logical = Logical.OR) @ResponseBody @GetMapping("/getPartner") @ApiOperation(value = "获取所有合作商", tags = {"管理后台-站点管理"}) public AjaxResult> getPartner(){ SysUser sysUser = sysUserClient.getSysUser(tokenService.getLoginUser().getUserid()).getData(); Integer roleType = sysUser.getRoleType(); Integer objectId = sysUser.getObjectId(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper().eq(Partner::getDelFlag, 0); if(2 == roleType){ wrapper.eq(Partner::getId, objectId); } List list = partnerService.list(wrapper); return AjaxResult.success(list); } @RequiresPermissions(value = {"/site/partner_authority"}, logical = Logical.OR) @ResponseBody @GetMapping("/getPermissionConfiguration/{siteId}") @ApiOperation(value = "获取合作商权限设置", tags = {"管理后台-站点管理"}) public AjaxResult getPermissionConfiguration(@PathVariable("siteId") Integer siteId, Integer partnerId){ GetPermissionConfigurationDTO permissionConfiguration = partnerService.getPermissionConfiguration(siteId, partnerId); return AjaxResult.success(permissionConfiguration); } @RequiresPermissions(value = {"/site/partner_authority"}, logical = Logical.OR) @ResponseBody @PostMapping("/setPermissionConfiguration/{siteId}") @ApiOperation(value = "设置合作商权限", tags = {"管理后台-站点管理"}) @Log(title = "【合作商列表】设置合作商权限", businessType = BusinessType.OTHER) public AjaxResult setPermissionConfiguration(@RequestBody SetPermissionConfiguration req){ partnerService.setPermissionConfiguration(req); return AjaxResult.success(); } /** * 根据id获取合作商信息 * @param id * @return */ @PostMapping("/getPartnerById/{id}") public R getPartnerById(@PathVariable("id") Integer id){ Partner partner = partnerService.getPartner(id); return R.ok(partner); } /** * 获取合作商授权的站点数据 * @param partnerId * @param siteMenu * @return */ @PostMapping("/authSite/{partnerId}") public R> authSite(@PathVariable("partnerId") Integer partnerId, @RequestParam("siteMenu") String siteMenu){ Set integers = partnerService.authSite(partnerId, SiteMenu.getSiteMenu(siteMenu)); return R.ok(integers); } /** * 判断合作商权限 * @param partnerId * @param siteId * @param siteMenu * @return */ @PostMapping("/authMenu/{partnerId}") public Boolean authMenu(@PathVariable("partnerId") Integer partnerId, @RequestParam("siteId") Integer siteId, @RequestParam("siteMenu") String siteMenu){ return partnerService.authMenu(partnerId, siteId, SiteMenu.getSiteMenu(siteMenu)); } // 充电算帐单按钮权限 @PostMapping("/getChargingBillMenu/{partnerId}/{siteId}") R> getChargingBillMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charge_bill_order/download").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charge_bill_order").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); List booleans = new ArrayList<>(); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 充电时段统计按钮权限 @PostMapping("/getChargingListMenu/{partnerId}/{siteId}") R> getChargingListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_period_statistics/order_info").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_period_statistics/charging_curve").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_period_statistics").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite2!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 账户结算帐单按钮权限 @PostMapping("/getAccountMenu/{partnerId}/{siteId}") R> getAccountMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/account_settlement/download").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/account_settlement").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); List booleans = new ArrayList<>(); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 结算表记录按钮权限 @PostMapping("/getSettlementListMenu/{partnerId}/{siteId}") R> getSettlementListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/balance_sheet_record/download").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/balance_sheet_record/del").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/balance_sheet_record").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite2!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 充电桩订单按钮权限 @PostMapping("/getChargingOrderMenu/{partnerId}/{siteId}") R> getChargingOrderMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_pile_order/record").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_pile_order").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); List booleans = new ArrayList<>(); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 订单申诉按钮权限 @PostMapping("/managePageListMenu/{partnerId}/{siteId}") R> managePageListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/order_appeal/view").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/order_appeal/handle").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/order_appeal").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite2!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 停车记录按钮权限 @PostMapping("/parkingRecordListMenu/{partnerId}/{siteId}") R> parkingRecordListMenu(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/parking_record/view").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/parking_record/exit_parking_lot").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/parking_record").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite2!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 充电监控记录按钮权限 @PostMapping("/watchChargingOrder/{partnerId}/{siteId}") R> watchChargingOrder(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_pile_order/monitoring_record/info").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu two = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_pile_order/monitoring_record/del").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite1 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, two.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); TSiteMenu three = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charging_pile_order/monitoring_record").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite2 = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, three.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite1!=null){ booleans.add(true); }else{ booleans.add(false); } if (partnerSite2!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } // 充电评价数据权限 @PostMapping("/chargeEvaluation/{partnerId}/{siteId}") R> chargeEvaluation(@PathVariable("partnerId")Integer partnerId,@PathVariable("siteId") Integer siteId){ List booleans = new ArrayList<>(); TSiteMenu one = siteMenuService.getOne(new LambdaQueryWrapper().eq(TSiteMenu::getPath, "/data/charge_evaluation").eq(TSiteMenu::getStatus, 0)); TPartnerSite partnerSite = partnerSiteService.getOne(new LambdaQueryWrapper() .eq(TPartnerSite::getPartnerId, partnerId) .eq(TPartnerSite::getSiteMenuId, one.getMenuId()) .eq(TPartnerSite::getSiteId, siteId)); if (partnerSite!=null){ booleans.add(true); }else{ booleans.add(false); } return R.ok(booleans); } }