kaiyu
2021-08-25 ac625fa6aee52f467243c78764625cf053dcfe81
screen-manage
重构组织模块日志插入代码
3 files modified
111 ■■■■■ changed files
screen-common/src/main/java/com/moral/util/DateUtils.java 25 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/Organization.java 12 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java 74 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -1,6 +1,7 @@
package com.moral.util;
import lombok.extern.slf4j.Slf4j;
import org.springframework.util.StringUtils;
import java.math.BigDecimal;
@@ -13,7 +14,7 @@
import java.time.ZonedDateTime;
import java.util.*;
@Slf4j
public class DateUtils {
    /**
     * 日期格式(yyyy)
@@ -79,6 +80,11 @@
     * 日期格式(yyyy-MM-dd HH)
     * */
    public static final String yyyy_MM_dd_HH_EN = "yyyy-MM-dd HH";
    /*
    * Date类toString格式
    * */
    public static final String EEE_MMM_dd_HH_mm_ss_zzz_yyyy = "EEE MMM dd HH:mm:ss zzz yyyy";
    /**
     * DateFormat缓存
     */
@@ -86,6 +92,23 @@
    /**
    * @Description: Date的toString格式转为Date
            * @Param: []
            * @return: java.util.Date
            * @Author: 陈凯裕
            * @Date: 2021/8/25
            */
    public static Date dateStringToDate(String formatStr){
        try {
            SimpleDateFormat sdf = new SimpleDateFormat(EEE_MMM_dd_HH_mm_ss_zzz_yyyy, Locale.US);
            return sdf.parse(formatStr);
        } catch (ParseException e) {
            log.error(e.getMessage());
            return null;
        }
    }
    /**
     * 获取DateFormat
     *
     * @param formatStr
screen-manage/src/main/java/com/moral/api/entity/Organization.java
@@ -7,6 +7,7 @@
import java.io.Serializable;
import java.util.Date;
import com.moral.anno.FieldName;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -33,6 +34,7 @@
    /**
     * 父Id
     */
    @FieldName("父组织Id")
    private Integer parentId;
    /**
@@ -43,6 +45,7 @@
    /**
     * 组织名称
     */
    @FieldName("组织名称")
    private String name;
    /**
@@ -53,6 +56,7 @@
    /**
     * 省份名称
     */
    @FieldName("省份")
    private String provinceName;
    /**
@@ -63,6 +67,7 @@
    /**
     * 城市名称
     */
    @FieldName("城市")
    private String cityName;
    /**
@@ -73,6 +78,7 @@
    /**
     * 区名称
     */
    @FieldName("区")
    private String areaName;
    /**
@@ -83,26 +89,31 @@
    /**
     * 地图定位级别名称
     */
    @FieldName("定位级别")
    private String locationLevelName;
    /**
     * 地址
     */
    @FieldName("地址")
    private String address;
    /**
     * 手机号
     */
    @FieldName("手机")
    private String phone;
    /**
     * 邮箱
     */
    @FieldName("邮箱")
    private String email;
    /**
     * 微信号
     */
    @FieldName("微信")
    private String wechat;
    /**
@@ -118,6 +129,7 @@
    /**
     * 到期时间
     */
    @FieldName("到期时间")
    private Date expireTime;
    /**
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -20,9 +20,11 @@
import com.moral.api.service.OrganizationService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.service.UserService;
import com.moral.api.util.CompareFieldUtils;
import com.moral.api.util.LogUtils;
import com.moral.constant.Constants;
import com.moral.constant.ResponseCodeEnum;
import com.moral.pojo.CompareFieldResult;
import com.moral.util.ConvertUtils;
import com.moral.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,6 +36,8 @@
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.function.Predicate;
@@ -103,10 +107,7 @@
        organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        //操作插入日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("添加了组织:").append(organization.getName() + ";");
        logUtils.saveOperationForManage(request, content.toString(), Constants.INSERT_OPERATE_TYPE);
        insertLog(organization);
        return organizationDTO;
    }
@@ -149,7 +150,7 @@
        organizationDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        //操作插入日志
        insertUpdateLog(organizationUpdateForm, organization, oldOrganization);
        updateLog(oldOrganization,organization);
        return organizationDTO;
    }
@@ -245,14 +246,13 @@
        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
        //操作插入日志
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("删除了组织:").append(existOrganization.getName());
        if (form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG))
            content.append("以及所有子组织;");
        else
            content.append(";");
        logUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
        logUtils.saveOperationForManage(content.toString(), Constants.DELETE_OPERATE_TYPE);
        return dto;
    }
@@ -484,5 +484,65 @@
        }
    }
    /**
    * @Description: 插入操作插入日志
            * @Param: [organization]
            * @return: void
            * @Author: 陈凯裕
            * @Date: 2021/8/25
            */
    private void insertLog(Organization organization){
        StringBuilder content = new StringBuilder();
        content.append("添加了组织:").append(organization.getName() + ";");
        logUtils.saveOperationForManage(content.toString(), Constants.INSERT_OPERATE_TYPE);
    }
    public void updateLog(Organization oldOrganization,Organization newOrganization){
        List<CompareFieldResult> results = CompareFieldUtils.compare(Organization.class, oldOrganization, newOrganization);
        for (CompareFieldResult result : results) {
            //改变父组织特殊处理
            if(result.getFieldName().equals("parentId")){
                //父组织id转换为名称
                String oldData = result.getOldData();
                String newData = result.getNewData();
                if (!oldData.equals("0"))
                    oldData = organizationMapper.selectById(Integer.parseInt(oldData)).getName();
                else
                    oldData = "null";
                if (!newData.equals("0"))
                    newData = organizationMapper.selectById(Integer.parseInt(newData)).getName();
                else
                    newData = "null";
                result.setNewData(newData);
                result.setOldData(oldData);
                result.setFieldAnnoName("父组织");
            }
            //过期时间格式转换
            if(result.getFieldName().equals("expireTime")){
                //DateToString的时间格式改为yyyy-MM-dd
                String oldData = result.getOldData();
                String newData = result.getNewData();
                if(oldData!=null){
                    Date oldDate = DateUtils.dateStringToDate(oldData);
                    oldData = DateUtils.dateToDateString(oldDate, "yyyy-MM-dd");
                }
                if(newData!=null){
                    Date newDate = DateUtils.dateStringToDate(newData);
                    newData = DateUtils.dateToDateString(newDate, "yyyy-MM-dd");
                }
                result.setNewData(newData);
                result.setOldData(oldData);
                result.setFieldAnnoName("过期时间");
            }
        }
    }
}