BE_SiteContent_List.groovy 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import com.sdtool.common.api.BusinessExecutor
  2. import com.sdtool.common.api.NoSqlKeysService
  3. import com.sdtool.common.datas.ERPModule
  4. import com.sdtool.common.datas.RedisKeys
  5. import com.sdtool.common.entity.base.InvokeCallParams
  6. import com.sdtool.common.entity.base.InvokeCallResult
  7. import com.sdtool.common.entity.site.SiteContent
  8. import com.dySweetFishPlugin.redis.RedisService
  9. import com.dySweetFishPlugin.sql.dao.OperatorWait
  10. import com.google.common.collect.Lists
  11. import com.sweetfish.convert.json.JsonConvert
  12. import com.sweetfish.service.RetResult
  13. import javax.annotation.Resource
  14. class BE_SiteContent_List implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  15. @Resource
  16. private JsonConvert jsonConvert
  17. @Resource
  18. private RedisService redisService
  19. @Resource
  20. private NoSqlKeysService keysService
  21. @Override
  22. String scriptName() {
  23. return "网站内容列表获取"
  24. }
  25. @Override
  26. ERPModule module() {
  27. return ERPModule.CONFIG
  28. }
  29. @Override
  30. OperatorWait getAWait(InvokeCallParams s) {
  31. return OperatorWait.AWAIT
  32. }
  33. private <T> List<T> getRedisDocInfos(String redisKey, Class<T> resultClazz) {
  34. Map<String, String> docMap = redisService.hgetAll(redisKey)
  35. List<T> result = Lists.newLinkedList()
  36. docMap.forEach((key, value) -> result.add(jsonConvert.convertFrom(resultClazz, value)))
  37. return result
  38. }
  39. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  40. List<SiteContent> redisInfoList = getRedisDocInfos(keysService.getRedisKey(RedisKeys.KEY_SITE_CONTENT, source.supplierCode), SiteContent.class)
  41. redisInfoList.sort { v1, v2 ->
  42. v1.sortIndex <=> v2.sortIndex ?: v1.id <=> v2.id
  43. }
  44. return RetResult.<InvokeCallResult> successT().result(
  45. InvokeCallResult.success().data(jsonConvert.convertTo(redisInfoList))
  46. )
  47. }
  48. }