BE_SiteContent_Get.groovy 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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.sweetfish.convert.json.JsonConvert
  12. import com.sweetfish.service.RetResult
  13. import org.apache.commons.lang3.StringUtils
  14. import javax.annotation.Resource
  15. class BE_SiteContent_Get implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  16. @Resource
  17. private JsonConvert jsonConvert
  18. @Resource
  19. private RedisService redisService
  20. @Resource
  21. private NoSqlKeysService keysService
  22. @Resource
  23. private ConfigService configService
  24. @Override
  25. String scriptName() {
  26. return "网站内容获取详情"
  27. }
  28. @Override
  29. ERPModule module() {
  30. return ERPModule.CONFIG
  31. }
  32. @Override
  33. OperatorWait getAWait(InvokeCallParams s) {
  34. return OperatorWait.AWAIT
  35. }
  36. private <T> T getRedisDocInfo(String redisKey, String field, Class<T> clazz) {
  37. String docJson = redisService.hget(redisKey, field)
  38. if (StringUtils.isNotBlank(docJson)) {
  39. return jsonConvert.convertFrom(clazz, docJson)
  40. } else return null
  41. }
  42. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  43. SiteContent siteContent = jsonConvert.convertFrom(SiteContent.class, source.params)
  44. SiteContent redisInfo = getRedisDocInfo(keysService.getRedisKey(RedisKeys.KEY_SITE_CONTENT, source.supplierCode), String.valueOf(siteContent.id), SiteContent.class)
  45. if (redisInfo == null) {
  46. return RetResult.<InvokeCallResult> errorT().retinfo("无效的网站内容信息")
  47. }
  48. SiteContent cacheContent = configService.getCacheSiteContentInfo(redisInfo.id, source.supplierCode)
  49. if (cacheContent != null) {
  50. redisInfo.content = cacheContent.content
  51. }
  52. return RetResult.<InvokeCallResult> successT().result(
  53. InvokeCallResult.success().data(jsonConvert.convertTo(redisInfo))
  54. )
  55. }
  56. }