console代码书写风格

81 阅读1分钟
  • module
    • abnormal (一个模块一个包)
      • constant (常量/枚举)
        • ReportAbnormalStatus.java
      • controller (controller类)
        • ReportAbnormalController.java
      • service (service类)
        • CsReportAbnormalService.java
      • model (对应数据库实体类)
        • CsReportAbnormal.java
      • query (数据查询对象)
        • CsAbnormalQueryCondition.java
      • vo (显示层对象)
        • CsAbnormalVo.java
  • resources(资源)
    • sql-ext (读取该目录下的sql文件)
      • abnormal
        • ReportAbnormalService.sql

controller类

@RestController
@RequestMapping(value = "/api/abnormal")
public class ReportAbnormalController extends BaseController {

    private static final Logger LOGGER = LoggerFactory.getLogger(ReportAbnormalController.class);
    

    @Autowired
    private CsReportAbnormalService csReportAbnormalService;

     /**
     * @author Johnson
     * @description 异常分页查询
     * @date 2020/7/16 10:44
     * @params [condition]
     * @return com.opencns.sdk.support.result.Result
     **/
    // 自定义注解 权限校验(sys_menu_btn.btn_code) 多个权限以","隔开
    @PreAuthorize("071205")
    @PostMapping(value = "/getPageList")
    //@DataScope()
    public Result getPageList(@RequestBody CsAbnormalQueryCondition condition){
        // 调用service 方法
        Page<Record> page = csReportAbnormalService.getPageList(condition);
        return Result.success("异常信息分页查询",page);
    }

Service类


@Service
public class CsReportAbnormalService extends ConsoleBaseService {

/**
 * @author Johnson
 * @description 异常分页查询
 * @date 2020/7/15 15:35
 * @params [condition]
 * @return com.opencns.sdk.support.paging.Page<com.opencns.sdk.sql.Record>
 **/
public Page<Record> getPageList(CsAbnormalQueryCondition condition) {
    // 调用父类的对象
    return dao.template("ReportAbnormalService.getPageList", condition).paginate(condition.getPageNumber(), condition.getPageSize());
}

ReportAbnormalService.sql

-- 声明一个命名空间
#namespace("ReportAbnormalService")
    -- 声明这个命名空间下的 sql名称
    #sql("getPageList")
    /**
    异常分页查询
     */
     SELECT
     -- 标志查询的列,映射字段会自动去下划线 转为驼峰命名
     @pageTag() {
        id,
        abnormal_id,
        dispatch_id,
        dispatch_no,
        abnormal_time,
        abnormal_type,
        abnormal_desc,
        status,
        abnormal_slove_id,
        abnormal_slove_name,
        abnormal_slove_time,
        abnormal_slove_desc
     @}
     FROM
     (select
        p.id,
        p.abnormal_id,
        p.dispatch_id,
        p.dispatch_no,
        p.abnormal_time,
        p.abnormal_type,
        p.abnormal_desc,
        p.status,
        p.abnormal_slove_id,
        p.abnormal_slove_name,
        p.abnormal_slove_time,
        p.abnormal_slove_desc
     from cs_report_abnormal p
     where 1=1
     -- <<???>>
     -- 标志是条件,会自动去除第一个 and
     -- :XXX 标志替换字符
     <<and p.dispatch_no like concat('%', :dispatchNo, '%')>>
     <<and p.abnormal_time >= :startTime>>
     <<and p.abnormal_time <= :endTime>>
     <<and p.status = :status>>
     <<and c.dept_code like concat('%', :deptCode, '%') >>
     <<and c.tax_site_code like concat('%', :taxSiteCode, '%') >>
     ) as tab
     order by abnormal_time desc,
              dispatch_no
     #end
#end

CsReportAbnormal.java 实体类

@Entity
@Table(name = "cs_report_abnormal")  // 标明映射DB.table
public class CsReportAbnormal extends ConsoleBaseModel {

    /**
     * 异常uuid
     */
    private String abnormalId;

    /**
     * 异常编号
     */
    private String abnormalNo;
    // get/set 之类
}