package com.steerinfo.dil.util; import com.steerinfo.dil.mapper.SaleLogMapper; import com.steerinfo.dil.model.SaleLog; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @Component public class SaleLogUtil { @Autowired private SaleLogMapper saleLogMapper; public final static int INSERT = 1; public final static int UPDATE = 2; public final static int DELETE = 3; public final static int OPEN = 4; public final static int CLOSE = 5; /** * 插入运输订单的操作日志 * @param orderId * @param descriptoin * @param oprationType 操作类型 * @param map 可以传null * @return */ public int logOrder(BigDecimal orderId,String descriptoin,Map map,int oprationType){ try{ SaleLog saleLog=new SaleLog(); saleLog.setResultId(saleLogMapper.selectMaxId()); saleLog.setOrderId(orderId); saleLog.setDescription(descriptoin); //saleLog.setJsonData(""+map); saleLog.setInsertTime(new Date()); saleLog.setInsertUsername(getUserName(map)); switch (oprationType){ case INSERT: saleLog.setOprationType("新增"); break; case UPDATE: saleLog.setOprationType("修改"); break; case DELETE: saleLog.setOprationType("删除"); break; case OPEN: saleLog.setOprationType("启用"); break; case CLOSE: saleLog.setOprationType("关闭"); break; default: saleLog.setOprationType("未知操作"); } return saleLogMapper.insertSelective(saleLog); }catch (Exception e){ e.printStackTrace(); return -1; } } public int logOrder(BigDecimal orderId,String descriptoin,String userName,int oprationType){ try{ SaleLog saleLog=new SaleLog(); saleLog.setResultId(saleLogMapper.selectMaxId()); saleLog.setOrderId(orderId); saleLog.setDescription(descriptoin); //saleLog.setJsonData(""+map); saleLog.setInsertTime(new Date()); saleLog.setInsertUsername(userName); switch (oprationType){ case INSERT: saleLog.setOprationType("新增"); break; case UPDATE: saleLog.setOprationType("修改"); break; case DELETE: saleLog.setOprationType("删除"); break; case OPEN: saleLog.setOprationType("启用"); break; case CLOSE: saleLog.setOprationType("关闭"); break; default: saleLog.setOprationType("未知操作"); } return saleLogMapper.insertSelective(saleLog); }catch (Exception e){ e.printStackTrace(); return -1; } } public int logOrder(String orderNumber,String descriptoin,String userName,int oprationType){ try{ List orderIds = saleLogMapper.getOrderIds(orderNumber); List list =new ArrayList<>(); for(BigDecimal orderId:orderIds){ SaleLog saleLog=new SaleLog(); saleLog.setResultId(saleLogMapper.selectMaxId()); saleLog.setOrderId(orderId); saleLog.setDescription(descriptoin); //saleLog.setJsonData(""+map); saleLog.setInsertTime(new Date()); saleLog.setInsertUsername(userName); switch (oprationType){ case INSERT: saleLog.setOprationType("新增"); break; case UPDATE: saleLog.setOprationType("修改"); break; case DELETE: saleLog.setOprationType("删除"); break; case OPEN: saleLog.setOprationType("启用"); break; case CLOSE: saleLog.setOprationType("关闭"); break; default: saleLog.setOprationType("未知操作"); } list.add(saleLog); } return saleLogMapper.batchInsert(list); }catch (Exception e){ e.printStackTrace(); return -1; } } /** * 插入运输订单的操作日志 * @param descriptoin * @param oprationType 操作类型 * @param map 必传 * @return */ public int logOrder(Map map,String descriptoin,int oprationType){ try{ SaleLog saleLog=new SaleLog(); saleLog.setResultId(saleLogMapper.selectMaxId()); saleLog.setOrderId(getOrderId(map)); saleLog.setDescription(descriptoin); saleLog.setInsertTime(new Date()); saleLog.setInsertUsername(getUserName(map)); switch (oprationType){ case INSERT: saleLog.setOprationType("新增"); break; case UPDATE: saleLog.setOprationType("修改"); break; case DELETE: saleLog.setOprationType("删除"); break; case OPEN: saleLog.setOprationType("启用"); break; case CLOSE: saleLog.setOprationType("关闭"); break; default: saleLog.setOprationType("未知操作"); } return saleLogMapper.insertSelective(saleLog); }catch (Exception e){ e.printStackTrace(); return -1; } } /** * 批量插入 * @param list * @param descriptoin * @param oprationType * @return */ public int logOrderBatch(List> list,String descriptoin,int oprationType){ try{ List saleLogs=new ArrayList<>(); String oprationTypeStr; switch (oprationType){ case INSERT: oprationTypeStr="新增"; break; case UPDATE: oprationTypeStr="修改"; break; case DELETE: oprationTypeStr="删除"; break; case OPEN: oprationTypeStr="启用"; break; case CLOSE: oprationTypeStr="关闭"; break; default: oprationTypeStr="未知操作"; } for(Map map:list){ SaleLog saleLog=new SaleLog(); saleLog.setResultId(saleLogMapper.selectMaxId()); saleLog.setOrderId(getOrderId(map)); saleLog.setDescription(descriptoin); saleLog.setInsertTime(new Date()); saleLog.setInsertUsername(getUserName(map)); saleLog.setOprationType(oprationTypeStr); saleLogs.add(saleLog); } return saleLogMapper.batchInsert(saleLogs); }catch (Exception e){ e.printStackTrace(); return -1; } } /** * 处理插入用户名 * @param map * @return */ private String getUserName(Map map){ try{ if(map==null){ return "system"; }else if(map.get("userName")!=null){ return ""+map.get("userName"); }else if(map.get("userId")!=null){ return saleLogMapper.getUserNameById(map); }else{ return "未知用户"; } }catch (Exception e){ e.printStackTrace(); return "未知用户"; } } /** * 获取OrderId * @param map * @return */ private BigDecimal getOrderId(Map map) throws Exception { if(map.get("orderId")!=null){ return DataChange.dataToBigDecimal(map.get("orderId")); }else if(map.get("resultTotalId")!=null){ return saleLogMapper.getOrderIdByTotal(map); }else{ throw new Exception("没有订单Id,保存日志失败"); } } }