BE_SiteContent_Select.groovy 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import com.sdtool.common.api.BusinessExecutor
  2. import com.sdtool.common.api.ConfigService
  3. import com.sdtool.common.api.NoSqlKeysService
  4. import com.sdtool.common.datas.ERPModule
  5. import com.sdtool.common.datas.RedisKeys
  6. import com.sdtool.common.entity.base.InvokeCallParams
  7. import com.sdtool.common.entity.base.InvokeCallResult
  8. import com.sdtool.common.entity.site.SiteContent
  9. import com.dySweetFishPlugin.redis.RedisService
  10. import com.dySweetFishPlugin.sql.dao.OperatorWait
  11. import com.google.common.collect.Lists
  12. import com.sweetfish.convert.json.JsonConvert
  13. import com.sweetfish.service.RetResult
  14. import org.apache.commons.lang3.StringUtils
  15. import javax.annotation.Resource
  16. class BE_SiteContent_Select implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  17. @Resource
  18. private JsonConvert jsonConvert
  19. @Resource
  20. private RedisService redisService
  21. @Resource
  22. private NoSqlKeysService keysService
  23. @Resource
  24. private ConfigService configService
  25. @Override
  26. String scriptName() {
  27. return "网站内容选取"
  28. }
  29. @Override
  30. ERPModule module() {
  31. return ERPModule.CONFIG
  32. }
  33. @Override
  34. OperatorWait getAWait(InvokeCallParams s) {
  35. return OperatorWait.AWAIT
  36. }
  37. private <T> List<T> getRedisDocInfos(String redisKey, Class<T> resultClazz) {
  38. Map<String, String> docMap = redisService.hgetAll(redisKey)
  39. List<T> result = Lists.newLinkedList()
  40. docMap.forEach((key, value) -> result.add(jsonConvert.convertFrom(resultClazz, value)))
  41. return result
  42. }
  43. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  44. List<SiteContent> redisInfoList = getRedisDocInfos(keysService.getRedisKey(RedisKeys.KEY_SITE_CONTENT, source.supplierCode), SiteContent.class)
  45. SiteContent searchContent = jsonConvert.convertFrom(SiteContent.class, source.params)
  46. SiteContent siteContent = redisInfoList.find { StringUtils.equalsIgnoreCase(it.groupName, searchContent.groupName) && StringUtils.equalsIgnoreCase(it.caption, searchContent.caption) }
  47. if (siteContent == null) {
  48. return RetResult.<InvokeCallResult> errorT().retinfo("无效的网站内容信息")
  49. }
  50. SiteContent cacheContent = configService.getCacheSiteContentInfo(siteContent.id, source.supplierCode)
  51. if (cacheContent != null) {
  52. siteContent.content = cacheContent.content
  53. }
  54. return RetResult.<InvokeCallResult> successT().result(
  55. InvokeCallResult.success().data(jsonConvert.convertTo(siteContent))
  56. )
  57. }
  58. }