2月26日工作内容

First Post:

Last Update:

2月26日工作内容

配置代码文档模板

  1. 实现创建新类时候自动添加注释:

    设置里面加入以下内容,位置如图:

1
2
3
4
5
6
/**
* @description: TODO
* @author ${USER}
* @date ${DATE} ${TIME}
* @version 1.0
*/

image-20240226133913906

  1. 可以手动在旧代码基础上生成注释,按照顺序添加模板组合

    在模板组合填充模板信息(上图步骤5),然后编辑模板当中引用的变量(上图步骤6)

    其中,模板信息及相应变量如下:

    • 方法注释(*)

      1
      2
      3
      4
      5
      6
      7
      ** 
      * @description: $description$
      * @param: $params$
      * @return: $returns$
      * @author $USER$
      * @date: $date$ $time$
      */

      image-20240226142716694

      • params: groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+='' + params[i] + ((i < params.size() - 1) ? '\\n':'')}; return result", methodParameters())

      • returns: methodReturn Type()

      • USER: user()

      • date: date

      • time: time()

    • 类注释(**)

      1
      2
      3
      4
      5
      6
      **
      * @description: TODO
      * @author $user$
      * @date $date$ $time$
      * @version 1.0
      */

      image-20240226143242256

      • user: user()

      • date: date

      • time: time()

解决一个客户提出的空表常见问题

image-20240226171904411

干这行总会遇到客户提出的奇奇怪怪的需求,这个客户在系统刚初始化的时候表里还没有数据,员工业绩没显示出来,就提出一个需求:业绩排行榜要能看到每个人

经过多次调试SQL语句,发现问题是出在表中初始的时候是空数据,where语句会导致查询结果直接为空

我的解决方式:

针对业绩排行榜没有显示每一个人的问题,放宽了SQL查询条件,原本为空的时候会因为where语句限制而查询不到,现加入 IS NULL,跟左连接、COALESCE一起配合使用,达到查询不到的时候就显示为0的效果,脱敏SQL如下:

1
2
3
4
5
6
7
8
9
10
11
12
SELECT
admin_user_info.admin_id,
admin_user_info.name AS admin_name,
COALESCE(SUM(CASE WHEN client_under_review.del_flag = 0 THEN net_income ELSE 0 END), 0) AS total_net_income
FROM admin_user_info
LEFT JOIN client_under_review ON client_under_review.admin_id = admin_user_info.admin_id
WHERE
(client_under_review.del_flag = 0 OR client_under_review.del_flag IS NULL)
AND admin_user.del_flag = 0
AND (client_under_review.xxx_date BETWEEN '2024-02-01' AND '2024-02-31' OR client_under_review.xxx_date IS NULL)
GROUP BY admin_user_info.admin_id, admin_user_info.name, admin_user_info.create_time
ORDER BY COALESCE(SUM(CASE WHEN client_under_review.del_flag = 0 THEN client_under_review.net_income ELSE 0 END), 0) DESC