MemTrafficController.java 6.19 KB
package org.rcisoft.business.memTraffic.controller;


/*固定导入*/
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.Operation;
import org.rcisoft.core.anno.CyOpeLogAnno;
import org.rcisoft.core.operlog.enums.CyLogTypeEnum;
import org.rcisoft.core.util.CyEpExcelUtil;
import org.springframework.validation.BindingResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import org.rcisoft.core.result.CyResult;
import org.rcisoft.core.util.CyResultGenUtil;
import org.rcisoft.core.model.CyPersistModel;
import org.rcisoft.core.constant.CyMessCons;
import org.rcisoft.core.controller.CyPaginationController;
import org.rcisoft.core.util.CyUserUtil;
import org.rcisoft.core.model.CyGridModel;
import org.rcisoft.core.exception.CyServiceException;
import jakarta.servlet.http.HttpServletResponse;
import javax.validation.Valid;


import org.rcisoft.business.memTraffic.entity.MemTraffic;
import org.rcisoft.business.memTraffic.service.MemTrafficService;

import java.util.List;

/**
* Created by cy on 2025年2月13日 上午10:00:53.
*/
@RestController
@RequestMapping("/memtraffic")
public class MemTrafficController extends CyPaginationController<MemTraffic> {


    @Autowired
    private MemTrafficService memTrafficServiceImpl;

    //@PreAuthorize("@cyPerm.hasPerm('sys:traffic:add')")
    @CyOpeLogAnno(title = "system-访问量表管理-新增访问量表", businessType = CyLogTypeEnum.INSERT)
    @Operation(summary="添加访问量表", description="添加访问量表")
    @PostMapping(value = "/add")
    public CyResult add(@Valid MemTraffic memTraffic, BindingResult bindingResult) {
        CyPersistModel data = memTrafficServiceImpl.persist(memTraffic);
        return CyResultGenUtil.builder(data,
            CyMessCons.MESSAGE_ALERT_SUCCESS,
            CyMessCons.MESSAGE_ALERT_ERROR,
        memTraffic);
    }
    //@PreAuthorize("@cyPerm.hasPerm('sys:traffic:delete')")
    @CyOpeLogAnno(title = "system-访问量表管理-删除访问量表", businessType = CyLogTypeEnum.DELETE)
    @Operation(summary="删除访问量表", description="删除访问量表")
    @Parameters({@Parameter(name = "businessId", description = "businessId", required = true,  schema = @Schema(type = "string"))})
    @DeleteMapping("/delete/{businessId:\\w+}")
    public CyResult delete(@PathVariable int businessId,MemTraffic memTraffic) {
        memTraffic.setBusinessId(String.valueOf(businessId));
        CyPersistModel data = memTrafficServiceImpl.remove(memTraffic);
        return CyResultGenUtil.builder(data,
            CyMessCons.MESSAGE_ALERT_SUCCESS,
            CyMessCons.MESSAGE_ALERT_ERROR,
        businessId);
    }

    //@PreAuthorize("@cyPerm.hasPerm('sys:traffic:update')")
    @CyOpeLogAnno(title = "system-访问量表管理-修改访问量表", businessType = CyLogTypeEnum.UPDATE)
    @Operation(summary="修改访问量表", description="修改访问量表")
    @Parameters({@Parameter(name = "businessId", description = "businessId", required = false,  schema = @Schema(type = "string"))})
    @PutMapping("/update/{businessId:\\w+}")
    public CyResult update(@PathVariable int businessId, @Valid MemTraffic memTraffic, BindingResult bindingResult) {
        memTraffic.setBusinessId(String.valueOf(businessId));
        CyPersistModel data = memTrafficServiceImpl.merge(memTraffic);
        return CyResultGenUtil.builder(data,
            CyMessCons.MESSAGE_ALERT_SUCCESS,
            CyMessCons.MESSAGE_ALERT_ERROR,
        memTraffic);
    }

    //@PreAuthorize("@cyPerm.hasPerm('sys:traffic:query')")
    @CyOpeLogAnno(title = "system-访问量表管理-查询访问量表", businessType = CyLogTypeEnum.QUERY)
    @Operation(summary="查询单一访问量表", description="查询单一访问量表")
    @Parameters({@Parameter(name = "businessId", description = "businessId", required = true,  schema = @Schema(type = "string"))})
    @GetMapping("/detail/{businessId:\\w+}")
    public CyResult detail(@PathVariable int businessId) {
        return CyResultGenUtil.builder(new CyPersistModel(1),
            CyMessCons.MESSAGE_ALERT_SUCCESS,
            CyMessCons.MESSAGE_ALERT_ERROR,
        memTrafficServiceImpl.findById(businessId));
    }

    //@PreAuthorize("@cyPerm.hasPerm('sys:traffic:list')")
    @CyOpeLogAnno(title = "system-访问量表管理-查询访问量表", businessType = CyLogTypeEnum.QUERY)
    @Operation(summary="查询访问量表集合", description="查询访问量表集合")
    @GetMapping(value = "/listAll")
    public CyResult listAll(MemTraffic memTraffic) {
        return CyResultGenUtil.builder(new CyPersistModel(1),
            CyMessCons.MESSAGE_ALERT_SUCCESS,
            CyMessCons.MESSAGE_ALERT_ERROR,
            memTrafficServiceImpl.findAll(memTraffic));
    }

    //@PreAuthorize("@cyPerm.hasPerm('sys:traffic:list')")
    @CyOpeLogAnno(title = "system-访问量表管理-查询访问量表", businessType = CyLogTypeEnum.QUERY)
    @Operation(summary="分页查询访问量表集合", description="分页查询访问量表集合")
    @GetMapping(value = "/list")
    public CyGridModel listByPagination(MemTraffic memTraffic) {
        memTrafficServiceImpl.findAllByPagination(getPaginationUtility(), memTraffic);
        return getGridModelResponse();
    }

    @CyOpeLogAnno(title = "system-访问量表管理-查询访问量表", businessType = CyLogTypeEnum.EXPORT)
    @Operation(summary = "导出访问量表信息", description = "导出访问量表信息")
    @GetMapping(value = "/export")
    public void outMemTraffic(HttpServletResponse response,MemTraffic memTraffic,@PathVariable @RequestParam(defaultValue = "0") String excelId) {
        String excelName="";
        switch(excelId){
            case "0": excelName="访问量表信息.xls";break;
            case "1": excelName="访问量表信息.xlsx";break;
            case "2": excelName="访问量表信息.csv";break;
        }
        List<MemTraffic> memTrafficList = memTrafficServiceImpl.export(memTraffic);
        CyEpExcelUtil.exportExcel(memTrafficList, "访问量表信息", "访问量表信息", MemTraffic.class, excelName, response);
    }
}