JeecgDemoServiceImpl.java 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. package com.jeecg.demo.service.impl;
  2. import java.io.Serializable;
  3. import java.sql.PreparedStatement;
  4. import java.sql.SQLException;
  5. import java.text.SimpleDateFormat;
  6. import java.util.ArrayList;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.UUID;
  11. import org.apache.log4j.Logger;
  12. import org.jeecgframework.core.common.dao.jdbc.JdbcDao;
  13. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  14. import org.jeecgframework.core.util.ApplicationContextUtil;
  15. import org.jeecgframework.core.util.DateUtils;
  16. import org.jeecgframework.core.util.MyClassLoader;
  17. import org.jeecgframework.core.util.StringUtil;
  18. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.jdbc.core.BatchPreparedStatementSetter;
  21. import org.springframework.stereotype.Service;
  22. import org.springframework.transaction.annotation.Transactional;
  23. import com.jeecg.demo.entity.JeecgDemoEntity;
  24. import com.jeecg.demo.service.JeecgDemoServiceI;
  25. @Service("jeecgDemoService")
  26. @Transactional
  27. public class JeecgDemoServiceImpl extends CommonServiceImpl implements JeecgDemoServiceI {
  28. private static final Logger logger = Logger.getLogger(JeecgDemoServiceImpl.class);
  29. // add-begin--Author:weict Date:20170609 for:TASK #2087 【demo】springjdbc demo--------------------
  30. @Autowired
  31. private JdbcDao jdbcDao;
  32. // add-end--Author:weict Date:20170609 for:TASK #2087 【demo】springjdbc demo----------------------
  33. public void delete(JeecgDemoEntity entity) throws Exception{
  34. super.delete(entity);
  35. //执行删除操作增强业务
  36. this.doDelBus(entity);
  37. }
  38. public Serializable save(JeecgDemoEntity entity) throws Exception{
  39. Serializable t = super.save(entity);
  40. //执行新增操作增强业务
  41. this.doAddBus(entity);
  42. return t;
  43. }
  44. public void saveOrUpdate(JeecgDemoEntity entity) throws Exception{
  45. super.saveOrUpdate(entity);
  46. //执行更新操作增强业务
  47. this.doUpdateBus(entity);
  48. }
  49. /**
  50. * 新增操作增强业务
  51. * @param t
  52. * @return
  53. */
  54. private void doAddBus(JeecgDemoEntity t) throws Exception{
  55. //-----------------sql增强 start----------------------------
  56. //-----------------sql增强 end------------------------------
  57. //-----------------java增强 start---------------------------
  58. //-----------------java增强 end-----------------------------
  59. }
  60. /**
  61. * 更新操作增强业务
  62. * @param t
  63. * @return
  64. */
  65. private void doUpdateBus(JeecgDemoEntity t) throws Exception{
  66. //-----------------sql增强 start----------------------------
  67. //-----------------sql增强 end------------------------------
  68. //-----------------java增强 start---------------------------
  69. //-----------------java增强 end-----------------------------
  70. }
  71. /**
  72. * 删除操作增强业务
  73. * @param id
  74. * @return
  75. */
  76. private void doDelBus(JeecgDemoEntity t) throws Exception{
  77. //-----------------sql增强 start----------------------------
  78. //-----------------sql增强 end------------------------------
  79. //-----------------java增强 start---------------------------
  80. //-----------------java增强 end-----------------------------
  81. }
  82. private Map<String,Object> populationMap(JeecgDemoEntity t){
  83. Map<String,Object> map = new HashMap<String,Object>();
  84. map.put("id", t.getId());
  85. map.put("name", t.getName());
  86. map.put("age", t.getAge());
  87. map.put("birthday", t.getBirthday());
  88. map.put("content", t.getContent());
  89. map.put("dep_id", t.getDepId());
  90. map.put("email", t.getEmail());
  91. map.put("phone", t.getPhone());
  92. map.put("salary", t.getSalary());
  93. map.put("sex", t.getSex());
  94. map.put("status", t.getStatus());
  95. map.put("create_date", t.getCreateDate());
  96. map.put("create_by", t.getCreateBy());
  97. map.put("create_name", t.getCreateName());
  98. map.put("update_by", t.getUpdateBy());
  99. map.put("update_date", t.getUpdateDate());
  100. map.put("update_name", t.getUpdateName());
  101. return map;
  102. }
  103. /**
  104. * 替换sql中的变量
  105. * @param sql
  106. * @param t
  107. * @return
  108. */
  109. public String replaceVal(String sql,JeecgDemoEntity t){
  110. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  111. sql = sql.replace("#{name}",String.valueOf(t.getName()));
  112. sql = sql.replace("#{age}",String.valueOf(t.getAge()));
  113. sql = sql.replace("#{birthday}",String.valueOf(t.getBirthday()));
  114. sql = sql.replace("#{content}",String.valueOf(t.getContent()));
  115. sql = sql.replace("#{dep_id}",String.valueOf(t.getDepId()));
  116. sql = sql.replace("#{email}",String.valueOf(t.getEmail()));
  117. sql = sql.replace("#{phone}",String.valueOf(t.getPhone()));
  118. sql = sql.replace("#{salary}",String.valueOf(t.getSalary()));
  119. sql = sql.replace("#{sex}",String.valueOf(t.getSex()));
  120. sql = sql.replace("#{status}",String.valueOf(t.getStatus()));
  121. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  122. sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
  123. sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
  124. sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
  125. sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
  126. sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
  127. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  128. return sql;
  129. }
  130. /**
  131. * 执行JAVA增强
  132. */
  133. private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
  134. if(StringUtil.isNotEmpty(cgJavaValue)){
  135. Object obj = null;
  136. try {
  137. if("class".equals(cgJavaType)){
  138. //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  139. obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
  140. }else if("spring".equals(cgJavaType)){
  141. obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
  142. }
  143. if(obj instanceof CgformEnhanceJavaInter){
  144. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  145. javaInter.execute("jeecg_demo",data);
  146. }
  147. } catch (Exception e) {
  148. e.printStackTrace();
  149. throw new Exception("执行JAVA增强出现异常!");
  150. }
  151. }
  152. }
  153. // add-begin--Author:weict Date:20170609 for:TASK #2087 【demo】springjdbc demo--------------------
  154. /**
  155. * JDBC批量添加
  156. */
  157. @Override
  158. public void jdbcBatchSave() throws Exception {
  159. final List<JeecgDemoEntity> jeecgDemoList=new ArrayList<JeecgDemoEntity>();
  160. for(int i=0;i<1000;i++){
  161. JeecgDemoEntity jeecgDemo=new JeecgDemoEntity();
  162. jeecgDemo.setId(UUID.randomUUID().toString().replaceAll("-", ""));
  163. jeecgDemo.setName("批量测试"+i);
  164. jeecgDemo.setAge(10);
  165. jeecgDemoList.add(jeecgDemo);
  166. }
  167. String sql="insert into jeecg_demo (id,name,age,create_date) values (?,?,?,?)";
  168. logger.info("-------批处理sql ----"+ sql);
  169. jdbcDao.batchUpdate(sql, new BatchPreparedStatementSetter()
  170. {
  171. public void setValues(PreparedStatement ps,int i)throws SQLException
  172. {
  173. String id=jeecgDemoList.get(i).getId();
  174. String name=jeecgDemoList.get(i).getName();
  175. int age=jeecgDemoList.get(i).getAge();
  176. ps.setString(1, id);
  177. ps.setString(2, name);
  178. ps.setInt(3, age);
  179. ps.setString(4, DateUtils.date2Str(new SimpleDateFormat("yyyy-MM-dd HH:mm")));
  180. }
  181. public int getBatchSize()
  182. {
  183. return jeecgDemoList.size();
  184. }
  185. });
  186. }
  187. /**
  188. * 执行存储过程
  189. */
  190. @Override
  191. public void jdbcProcedure() throws Exception {
  192. String sql = "call delete_jeecgDemo_createDate('"+DateUtils.getDate("yyyy-MM-dd")+"')";
  193. logger.info("-------执行存储过程--sql ----"+ sql);
  194. jdbcDao.execute(sql);
  195. }
  196. // add-end--Author:weict Date:20170609 for:TASK #2087 【demo】springjdbc demo----------------------
  197. }