SaleLogUtil.java 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. package com.steerinfo.dil.util;
  2. import com.steerinfo.dil.mapper.SaleLogMapper;
  3. import com.steerinfo.dil.model.SaleLog;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.stereotype.Component;
  6. import java.math.BigDecimal;
  7. import java.util.ArrayList;
  8. import java.util.Date;
  9. import java.util.List;
  10. import java.util.Map;
  11. @Component
  12. public class SaleLogUtil {
  13. @Autowired
  14. private SaleLogMapper saleLogMapper;
  15. public final static int INSERT = 1;
  16. public final static int UPDATE = 2;
  17. public final static int DELETE = 3;
  18. public final static int OPEN = 4;
  19. public final static int CLOSE = 5;
  20. /**
  21. * 插入运输订单的操作日志
  22. * @param orderId
  23. * @param descriptoin
  24. * @param oprationType 操作类型
  25. * @param map 可以传null
  26. * @return
  27. */
  28. public int logOrder(BigDecimal orderId,String descriptoin,Map<String,Object> map,int oprationType){
  29. try{
  30. SaleLog saleLog=new SaleLog();
  31. saleLog.setResultId(saleLogMapper.selectMaxId());
  32. saleLog.setOrderId(orderId);
  33. saleLog.setDescription(descriptoin);
  34. //saleLog.setJsonData(""+map);
  35. saleLog.setInsertTime(new Date());
  36. saleLog.setInsertUsername(getUserName(map));
  37. switch (oprationType){
  38. case INSERT:
  39. saleLog.setOprationType("新增");
  40. break;
  41. case UPDATE:
  42. saleLog.setOprationType("修改");
  43. break;
  44. case DELETE:
  45. saleLog.setOprationType("删除");
  46. break;
  47. case OPEN:
  48. saleLog.setOprationType("启用");
  49. break;
  50. case CLOSE:
  51. saleLog.setOprationType("关闭");
  52. break;
  53. default:
  54. saleLog.setOprationType("未知操作");
  55. }
  56. return saleLogMapper.insertSelective(saleLog);
  57. }catch (Exception e){
  58. e.printStackTrace();
  59. return -1;
  60. }
  61. }
  62. public int logOrder(BigDecimal orderId,String descriptoin,String userName,int oprationType){
  63. try{
  64. SaleLog saleLog=new SaleLog();
  65. saleLog.setResultId(saleLogMapper.selectMaxId());
  66. saleLog.setOrderId(orderId);
  67. saleLog.setDescription(descriptoin);
  68. //saleLog.setJsonData(""+map);
  69. saleLog.setInsertTime(new Date());
  70. saleLog.setInsertUsername(userName);
  71. switch (oprationType){
  72. case INSERT:
  73. saleLog.setOprationType("新增");
  74. break;
  75. case UPDATE:
  76. saleLog.setOprationType("修改");
  77. break;
  78. case DELETE:
  79. saleLog.setOprationType("删除");
  80. break;
  81. case OPEN:
  82. saleLog.setOprationType("启用");
  83. break;
  84. case CLOSE:
  85. saleLog.setOprationType("关闭");
  86. break;
  87. default:
  88. saleLog.setOprationType("未知操作");
  89. }
  90. return saleLogMapper.insertSelective(saleLog);
  91. }catch (Exception e){
  92. e.printStackTrace();
  93. return -1;
  94. }
  95. }
  96. public int logOrder(String orderNumber,String descriptoin,String userName,int oprationType){
  97. try{
  98. List<BigDecimal> orderIds = saleLogMapper.getOrderIds(orderNumber);
  99. List<SaleLog> list =new ArrayList<>();
  100. for(BigDecimal orderId:orderIds){
  101. SaleLog saleLog=new SaleLog();
  102. saleLog.setResultId(saleLogMapper.selectMaxId());
  103. saleLog.setOrderId(orderId);
  104. saleLog.setDescription(descriptoin);
  105. //saleLog.setJsonData(""+map);
  106. saleLog.setInsertTime(new Date());
  107. saleLog.setInsertUsername(userName);
  108. switch (oprationType){
  109. case INSERT:
  110. saleLog.setOprationType("新增");
  111. break;
  112. case UPDATE:
  113. saleLog.setOprationType("修改");
  114. break;
  115. case DELETE:
  116. saleLog.setOprationType("删除");
  117. break;
  118. case OPEN:
  119. saleLog.setOprationType("启用");
  120. break;
  121. case CLOSE:
  122. saleLog.setOprationType("关闭");
  123. break;
  124. default:
  125. saleLog.setOprationType("未知操作");
  126. }
  127. list.add(saleLog);
  128. }
  129. return saleLogMapper.batchInsert(list);
  130. }catch (Exception e){
  131. e.printStackTrace();
  132. return -1;
  133. }
  134. }
  135. /**
  136. * 插入运输订单的操作日志
  137. * @param descriptoin
  138. * @param oprationType 操作类型
  139. * @param map 必传
  140. * @return
  141. */
  142. public int logOrder(Map<String,Object> map,String descriptoin,int oprationType){
  143. try{
  144. SaleLog saleLog=new SaleLog();
  145. saleLog.setResultId(saleLogMapper.selectMaxId());
  146. saleLog.setOrderId(getOrderId(map));
  147. saleLog.setDescription(descriptoin);
  148. saleLog.setInsertTime(new Date());
  149. saleLog.setInsertUsername(getUserName(map));
  150. switch (oprationType){
  151. case INSERT:
  152. saleLog.setOprationType("新增");
  153. break;
  154. case UPDATE:
  155. saleLog.setOprationType("修改");
  156. break;
  157. case DELETE:
  158. saleLog.setOprationType("删除");
  159. break;
  160. case OPEN:
  161. saleLog.setOprationType("启用");
  162. break;
  163. case CLOSE:
  164. saleLog.setOprationType("关闭");
  165. break;
  166. default:
  167. saleLog.setOprationType("未知操作");
  168. }
  169. return saleLogMapper.insertSelective(saleLog);
  170. }catch (Exception e){
  171. e.printStackTrace();
  172. return -1;
  173. }
  174. }
  175. /**
  176. * 批量插入
  177. * @param list
  178. * @param descriptoin
  179. * @param oprationType
  180. * @return
  181. */
  182. public int logOrderBatch(List<Map<String,Object>> list,String descriptoin,int oprationType){
  183. try{
  184. List<SaleLog> saleLogs=new ArrayList<>();
  185. String oprationTypeStr;
  186. switch (oprationType){
  187. case INSERT:
  188. oprationTypeStr="新增";
  189. break;
  190. case UPDATE:
  191. oprationTypeStr="修改";
  192. break;
  193. case DELETE:
  194. oprationTypeStr="删除";
  195. break;
  196. case OPEN:
  197. oprationTypeStr="启用";
  198. break;
  199. case CLOSE:
  200. oprationTypeStr="关闭";
  201. break;
  202. default:
  203. oprationTypeStr="未知操作";
  204. }
  205. for(Map<String,Object> map:list){
  206. SaleLog saleLog=new SaleLog();
  207. saleLog.setResultId(saleLogMapper.selectMaxId());
  208. saleLog.setOrderId(getOrderId(map));
  209. saleLog.setDescription(descriptoin);
  210. saleLog.setInsertTime(new Date());
  211. saleLog.setInsertUsername(getUserName(map));
  212. saleLog.setOprationType(oprationTypeStr);
  213. saleLogs.add(saleLog);
  214. }
  215. return saleLogMapper.batchInsert(saleLogs);
  216. }catch (Exception e){
  217. e.printStackTrace();
  218. return -1;
  219. }
  220. }
  221. /**
  222. * 处理插入用户名
  223. * @param map
  224. * @return
  225. */
  226. private String getUserName(Map<String,Object> map){
  227. try{
  228. if(map==null){
  229. return "system";
  230. }else if(map.get("userName")!=null){
  231. return ""+map.get("userName");
  232. }else if(map.get("userId")!=null){
  233. return saleLogMapper.getUserNameById(map);
  234. }else{
  235. return "未知用户";
  236. }
  237. }catch (Exception e){
  238. e.printStackTrace();
  239. return "未知用户";
  240. }
  241. }
  242. /**
  243. * 获取OrderId
  244. * @param map
  245. * @return
  246. */
  247. private BigDecimal getOrderId(Map<String,Object> map) throws Exception {
  248. if(map.get("orderId")!=null){
  249. return DataChange.dataToBigDecimal(map.get("orderId"));
  250. }else if(map.get("resultTotalId")!=null){
  251. return saleLogMapper.getOrderIdByTotal(map);
  252. }else{
  253. throw new Exception("没有订单Id,保存日志失败");
  254. }
  255. }
  256. }