package com.doumee.cloud.admin; import com.doumee.api.BaseController; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.config.annotation.CloudRequiredPermission; import com.doumee.dao.business.dto.*; import com.doumee.dao.business.model.YwConditioner; import com.doumee.dao.business.model.YwCustomerGs; import com.doumee.dao.business.model.YwElectrical; import com.doumee.service.business.YwCustomerRechargeBizService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.Map; @Api(tags = "商户充值") @RestController @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX + "/business/ywCustomerRecharge") public class YwCustomerRechargeCloudController extends BaseController { @Autowired private YwCustomerRechargeBizService ywCustomerRechargeBizService; @ApiOperation("商户分页列表") @PostMapping("/merchantPage") @CloudRequiredPermission("business:ywcustomerrecharge:query") public ApiResponse> merchantPage( @RequestBody PageWrap pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { if (pageWrap == null) { pageWrap = new PageWrap<>(); } return ApiResponse.success(ywCustomerRechargeBizService.findMerchantPage(pageWrap)); } @ApiOperation("商户详情") @GetMapping("/{customerId}/detail") @CloudRequiredPermission("business:ywcustomerrecharge:query") public ApiResponse detail(@PathVariable Integer customerId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.getDetail(customerId)); } @ApiOperation("关联电表列表") @PostMapping("/electrical/page") @CloudRequiredPermission("business:ywcustomerrecharge:query") public ApiResponse> electricalPage( @RequestBody PageWrap pageWrap, @RequestParam Integer customerId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.listCustomerElectrical(pageWrap, customerId)); } @ApiOperation("可选电表列表") @PostMapping("/electrical/selectablePage") @CloudRequiredPermission("business:ywcustomerrecharge:bindDevice") public ApiResponse> selectableElectricalPage( @RequestBody PageWrap pageWrap, @RequestParam Integer customerId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.pageSelectableElectrical(pageWrap, customerId)); } @PreventRepeat @ApiOperation("保存关联电表") @PostMapping("/electrical/save") @CloudRequiredPermission("business:ywcustomerrecharge:bindDevice") public ApiResponse saveElectrical(@RequestBody YwCustomerElectricalSaveDTO dto, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywCustomerRechargeBizService.saveCustomerElectrical(dto, getLoginUser(token)); return ApiResponse.success(null); } @ApiOperation("删除关联电表") @GetMapping("/electrical/delete") @CloudRequiredPermission("business:ywcustomerrecharge:bindDevice") public ApiResponse deleteElectrical(@RequestParam Integer customerId, @RequestParam Integer electricalId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywCustomerRechargeBizService.removeCustomerElectrical(customerId, electricalId, getLoginUser(token)); return ApiResponse.success(null); } @ApiOperation("关联空调列表") @PostMapping("/conditioner/page") @CloudRequiredPermission("business:ywcustomerrecharge:query") public ApiResponse> conditionerPage( @RequestBody PageWrap pageWrap, @RequestParam Integer customerId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.listCustomerConditioner(pageWrap, customerId)); } @ApiOperation("空调 GS 配置") @GetMapping("/conditioner/gsConfig") @CloudRequiredPermission("business:ywcustomerrecharge:query") public ApiResponse gsConfig(@RequestParam Integer customerId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.getCustomerGsConfig(customerId)); } @PreventRepeat @ApiOperation("保存空调 GS 配置") @PostMapping("/conditioner/saveGsConfig") @CloudRequiredPermission("business:ywcustomerrecharge:bindDevice") public ApiResponse saveGsConfig(@RequestBody YwCustomerGsConfigDTO dto, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywCustomerRechargeBizService.saveCustomerGsConfig(dto, getLoginUser(token)); return ApiResponse.success(null); } @PreventRepeat @ApiOperation("电表充值") @PostMapping("/recharge/electrical") @CloudRequiredPermission("business:ywcustomerrecharge:recharge") public ApiResponse rechargeElectrical(@RequestBody YwCustomerRechargeElectricalDTO dto, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.rechargeElectrical(dto, getLoginUser(token))); } @PreventRepeat @ApiOperation("电表清零") @PostMapping("/reset/electrical") @CloudRequiredPermission("business:ywcustomerrecharge:recharge") public ApiResponse resetElectrical(@RequestBody YwCustomerRechargeElectricalDTO dto, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.resetElectricalAccount(dto, getLoginUser(token))); } @ApiOperation("电表抄表刷新") @GetMapping("/readMeter") @CloudRequiredPermission("business:ywcustomerrecharge:recharge") public ApiResponse> readMeter(@RequestParam Integer customerId, @RequestParam Integer electricalId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.readMeterAndRefresh(customerId, electricalId, getLoginUser(token))); } @ApiOperation("电表远程信息") @GetMapping("/electrical/remoteInfo") @CloudRequiredPermission("business:ywcustomerrecharge:recharge") public ApiResponse> electricalRemoteInfo(@RequestParam Integer electricalId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.getElectricalRemoteInfo(electricalId)); } @ApiOperation("空调充值前信息") @GetMapping("/recharge/conditioner/info") @CloudRequiredPermission("business:ywcustomerrecharge:recharge") public ApiResponse> conditionerRechargeInfo(@RequestParam Integer customerId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.getConditionerRechargeInfo(customerId)); } @PreventRepeat @ApiOperation("空调充值") @PostMapping("/recharge/conditioner") @CloudRequiredPermission("business:ywcustomerrecharge:recharge") public ApiResponse rechargeConditioner(@RequestBody YwCustomerRechargeConditionerDTO dto, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.rechargeConditioner(dto, getLoginUser(token))); } @PreventRepeat @ApiOperation("空调清零") @PostMapping("/clean/conditioner") @CloudRequiredPermission("business:ywcustomerrecharge:recharge") public ApiResponse cleanConditioner(@RequestParam Integer customerId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.cleanConditionerAccount(customerId, getLoginUser(token))); } @ApiOperation("充值记录分页") @PostMapping("/rechargeRecord/page") @CloudRequiredPermission("business:ywcustomerrechargerecord:query") public ApiResponse> rechargeRecordPage( @RequestBody PageWrap pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.findRechargeRecordPage(pageWrap)); } @PreventRepeat @ApiOperation("再次提交充值") @PostMapping("/rechargeRecord/retry/{id}") @CloudRequiredPermission("business:ywcustomerrechargerecord:retry") public ApiResponse retryRecharge(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.retryRecharge(id, getLoginUser(token))); } @PreventRepeat @ApiOperation("手动同步充值状态") @PostMapping("/rechargeRecord/sync/{id}") @CloudRequiredPermission("business:ywcustomerrechargerecord:syncStatus") public ApiResponse syncRechargeStatus(@PathVariable Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerRechargeBizService.syncRechargeStatus(id, getLoginUser(token))); } @ApiOperation("导出充值记录") @PostMapping("/rechargeRecord/exportExcel") @CloudRequiredPermission("business:ywcustomerrechargerecord:exportExcel") public void exportRechargeRecord(@RequestBody PageWrap pageWrap, HttpServletResponse response, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywCustomerRechargeBizService.exportRechargeRecord(pageWrap, response); } }