AppVersionServiceImpl.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. package cn.com.lzt.appversion.service.impl;
  2. import cn.com.lzt.appversion.entity.AppVersionEntity;
  3. import cn.com.lzt.appversion.service.AppVersionServiceI;
  4. import cn.com.lzt.common.dao.RedisDao;
  5. import cn.com.lzt.common.service.TSysFileServiceI;
  6. import cn.com.lzt.common.util.CustomerConstant;
  7. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  8. import org.jeecgframework.core.util.ApplicationContextUtil;
  9. import org.jeecgframework.core.util.MyClassLoader;
  10. import org.jeecgframework.core.util.StringUtil;
  11. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.io.Serializable;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. import java.util.UUID;
  20. @Service("appVersionService")
  21. @Transactional
  22. public class AppVersionServiceImpl extends CommonServiceImpl implements AppVersionServiceI {
  23. @Autowired
  24. private TSysFileServiceI tSysFileService;
  25. @Autowired
  26. private RedisDao redisDao;
  27. public void delete(AppVersionEntity entity) throws Exception{
  28. super.delete(entity);
  29. //执行删除操作增强业务
  30. this.doDelBus(entity);
  31. //添加删除文件
  32. tSysFileService.deleteByBusiId(entity.getId(), CustomerConstant.APPVERSION);
  33. //更新缓存中版本号
  34. AppVersionEntity appVersionNew = this.findNewAppVersion(entity.getSystemFlag());
  35. if(appVersionNew != null){
  36. Map<String,Object> param = new HashMap<String,Object>();
  37. param.put("versionCode", appVersionNew.getVersionCode());
  38. param.put("systemFlag", appVersionNew.getSystemFlag());
  39. param.put("updateFlag", appVersionNew.getUpdateFlag());
  40. try {
  41. redisDao.save(CustomerConstant.APPVERSION_FLAG + appVersionNew.getSystemFlag(), param);
  42. } catch (Exception e) {
  43. e.printStackTrace();
  44. }
  45. }else{
  46. try {
  47. redisDao.delete(CustomerConstant.APPVERSION_FLAG + entity.getSystemFlag());
  48. } catch (Exception e) {
  49. e.printStackTrace();
  50. }
  51. }
  52. }
  53. public Serializable save(AppVersionEntity entity) throws Exception{
  54. Serializable t = super.save(entity);
  55. //执行新增操作增强业务
  56. this.doAddBus(entity);
  57. return t;
  58. }
  59. public Serializable save(AppVersionEntity entity, String tempBusiId) throws Exception{
  60. Serializable t = super.save(entity);
  61. tSysFileService.updateBusiIdWithTempBusiId(tempBusiId, entity.getId());
  62. //更新缓存中版本号
  63. AppVersionEntity appVersionNew = this.findNewAppVersion(entity.getSystemFlag());
  64. if(appVersionNew != null){
  65. Map<String,Object> param = new HashMap<String,Object>();
  66. param.put("versionCode", appVersionNew.getVersionCode());
  67. param.put("systemFlag", appVersionNew.getSystemFlag());
  68. param.put("updateFlag", appVersionNew.getUpdateFlag());
  69. try {
  70. redisDao.save(CustomerConstant.APPVERSION_FLAG + appVersionNew.getSystemFlag(), param);
  71. } catch (Exception e) {
  72. e.printStackTrace();
  73. }
  74. }else{
  75. try {
  76. redisDao.delete(CustomerConstant.APPVERSION_FLAG + entity.getSystemFlag());
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. }
  80. }
  81. return t;
  82. }
  83. public Serializable saveAndUpdateRedis(AppVersionEntity entity, String tempBusiId) throws Exception{
  84. Serializable t = super.save(entity);
  85. tSysFileService.updateBusiIdWithTempBusiId(tempBusiId, entity.getId());
  86. //将最新版本号存入redis
  87. Map<String,Object> param = new HashMap<String,Object>();
  88. param.put("versionCode", entity.getVersionCode());
  89. param.put("systemFlag", entity.getSystemFlag());
  90. param.put("updateFlag", entity.getUpdateFlag());
  91. try {
  92. redisDao.save(CustomerConstant.APPVERSION_FLAG + entity.getSystemFlag(), param);
  93. } catch (Exception e) {
  94. e.printStackTrace();
  95. }
  96. return t;
  97. }
  98. public void saveOrUpdate(AppVersionEntity entity) throws Exception{
  99. super.saveOrUpdate(entity);
  100. //执行更新操作增强业务
  101. this.doUpdateBus(entity);
  102. }
  103. public void saveOrUpdate(AppVersionEntity entity, String tempBusiId) throws Exception{
  104. super.saveOrUpdate(entity);
  105. tSysFileService.updateBusiIdWithTempBusiId(tempBusiId, entity.getId());
  106. //更新时需要更新版本号信息,将最新的版本号放入redis缓存
  107. AppVersionEntity appVersion = this.findNewAppVersion(entity.getSystemFlag());
  108. if(appVersion != null){
  109. Map<String,Object> param = new HashMap<String,Object>();
  110. param.put("versionCode", appVersion.getVersionCode());
  111. param.put("systemFlag", appVersion.getSystemFlag());
  112. param.put("updateFlag", appVersion.getUpdateFlag());
  113. try {
  114. redisDao.save(CustomerConstant.APPVERSION_FLAG + appVersion.getSystemFlag(), param);
  115. } catch (Exception e) {
  116. e.printStackTrace();
  117. }
  118. }
  119. }
  120. /**
  121. * 查询最新版本的app安装包信息
  122. *
  123. * @return
  124. */
  125. public AppVersionEntity findNewAppVersion(String systemFlag) {
  126. List<AppVersionEntity> versionInfoList = this.findHql(
  127. "FROM AppVersionEntity WHERE systemFlag=? ORDER BY createDate DESC", systemFlag);
  128. if(versionInfoList != null && versionInfoList.size() > 0 ){
  129. return versionInfoList.get(0);
  130. }
  131. return null;
  132. }
  133. /**
  134. * 新增操作增强业务
  135. * @param t
  136. * @return
  137. */
  138. private void doAddBus(AppVersionEntity t) throws Exception{
  139. //-----------------sql增强 start----------------------------
  140. //-----------------sql增强 end------------------------------
  141. //-----------------java增强 start---------------------------
  142. //-----------------java增强 end-----------------------------
  143. }
  144. /**
  145. * 更新操作增强业务
  146. * @param t
  147. * @return
  148. */
  149. private void doUpdateBus(AppVersionEntity t) throws Exception{
  150. //-----------------sql增强 start----------------------------
  151. //-----------------sql增强 end------------------------------
  152. //-----------------java增强 start---------------------------
  153. //-----------------java增强 end-----------------------------
  154. }
  155. /**
  156. * 删除操作增强业务
  157. * @param id
  158. * @return
  159. */
  160. private void doDelBus(AppVersionEntity t) throws Exception{
  161. //-----------------sql增强 start----------------------------
  162. //-----------------sql增强 end------------------------------
  163. //-----------------java增强 start---------------------------
  164. //-----------------java增强 end-----------------------------
  165. }
  166. private Map<String,Object> populationMap(AppVersionEntity t){
  167. Map<String,Object> map = new HashMap<String,Object>();
  168. map.put("id", t.getId());
  169. map.put("version_code", t.getVersionCode());
  170. map.put("system_flag", t.getSystemFlag());
  171. map.put("update_flag", t.getUpdateFlag());
  172. map.put("remark", t.getRemark());
  173. map.put("create_name", t.getCreateName());
  174. map.put("create_by", t.getCreateBy());
  175. map.put("create_date", t.getCreateDate());
  176. map.put("update_name", t.getUpdateName());
  177. map.put("update_by", t.getUpdateBy());
  178. map.put("update_date", t.getUpdateDate());
  179. return map;
  180. }
  181. /**
  182. * 替换sql中的变量
  183. * @param sql
  184. * @param t
  185. * @return
  186. */
  187. public String replaceVal(String sql,AppVersionEntity t){
  188. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  189. sql = sql.replace("#{version_code}",String.valueOf(t.getVersionCode()));
  190. sql = sql.replace("#{system_flag}",String.valueOf(t.getSystemFlag()));
  191. sql = sql.replace("#{update_flag}",String.valueOf(t.getUpdateFlag()));
  192. sql = sql.replace("#{remark}",String.valueOf(t.getRemark()));
  193. sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
  194. sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
  195. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  196. sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
  197. sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
  198. sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
  199. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  200. return sql;
  201. }
  202. /**
  203. * 执行JAVA增强
  204. */
  205. private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
  206. if(StringUtil.isNotEmpty(cgJavaValue)){
  207. Object obj = null;
  208. try {
  209. if("class".equals(cgJavaType)){
  210. //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  211. obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
  212. }else if("spring".equals(cgJavaType)){
  213. obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
  214. }
  215. if(obj instanceof CgformEnhanceJavaInter){
  216. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  217. javaInter.execute("t_bus_app_version",data);
  218. }
  219. } catch (Exception e) {
  220. e.printStackTrace();
  221. throw new Exception("执行JAVA增强出现异常!");
  222. }
  223. }
  224. }
  225. }