BE_SiteConfig_Read.groovy 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import com.sdtool.common.api.BusinessExecutor
  2. import com.sdtool.common.datas.ERPModule
  3. import com.sdtool.common.datas.LocalTypeToken
  4. import com.sdtool.common.datas.TokenUserFrom
  5. import com.sdtool.common.entity.base.InvokeCallParams
  6. import com.sdtool.common.entity.base.InvokeCallResult
  7. import com.alibaba.fastjson2.JSON
  8. import com.alibaba.fastjson2.JSONObject
  9. import com.dySweetFishPlugin.sql.dao.OperatorWait
  10. import com.sweetfish.service.RetResult
  11. import groovy.json.JsonSlurper
  12. import javax.annotation.Resource
  13. class BE_SiteConfig_Read implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  14. @Resource(name = "APP_HOME")
  15. private String appHome
  16. JSONObject siteConfigData
  17. @Override
  18. String scriptName() {
  19. return "读取网站配置"
  20. }
  21. @Override
  22. ERPModule module() {
  23. return ERPModule.CONFIG
  24. }
  25. @Override
  26. OperatorWait getAWait(InvokeCallParams s) {
  27. return OperatorWait.SYNC
  28. }
  29. @Override
  30. void start(long supplierCode) {
  31. def siteConfigFile = new File(appHome + File.separator +
  32. "conf" + File.separator +
  33. "script" + File.separator +
  34. supplierCode + File.separator +
  35. "config" + File.separator +
  36. "default_SiteConfig.json")
  37. if (siteConfigFile.exists()) {
  38. String siteContent = siteConfigFile.getText("UTF-8")
  39. siteConfigData = JSON.parseObject(siteContent)
  40. } else {
  41. siteConfigData = new JSONObject()
  42. }
  43. //tt-2024-03-06 这里不太好清缓存,放redis里面不太舒服,有种办法是在保存的时候重载这个read脚本估计可行,待测试
  44. }
  45. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  46. Map<String, String> invokeData = JSON.parseObject(source.params, LocalTypeToken.fastJsonMapString)
  47. if ((invokeData != null) && (invokeData.containsKey("siteHost"))) {
  48. String fileName = invokeData["siteHost"] + "_SiteConfig.json"
  49. def userSiteConfigFile = new File(appHome + File.separator +
  50. "conf" + File.separator +
  51. "script" + File.separator +
  52. source.supplierCode + File.separator +
  53. "config" + File.separator +
  54. fileName)
  55. if (userSiteConfigFile.exists()) {
  56. String siteContent = userSiteConfigFile.getText("UTF-8")
  57. JSONObject userSteConfigData = JSON.parseObject(siteContent)
  58. return RetResult.<InvokeCallResult> successT().result(
  59. InvokeCallResult.success().data(userSteConfigData.toJSONString())
  60. )
  61. }
  62. }
  63. if ((source.currentUser != null) && (source.currentUser.userFrom == TokenUserFrom.PC_MALL_FRONT.value)) {
  64. String fileName = source.currentUser.id + "_SiteConfig.json"
  65. def userSiteConfigFile = new File(appHome + File.separator +
  66. "conf" + File.separator +
  67. "script" + File.separator +
  68. source.supplierCode + File.separator +
  69. "config" + File.separator +
  70. fileName)
  71. if (userSiteConfigFile.exists()) {
  72. String siteContent = userSiteConfigFile.getText("UTF-8")
  73. JSONObject userSteConfigData = JSON.parseObject(siteContent)
  74. return RetResult.<InvokeCallResult> successT().result(
  75. InvokeCallResult.success().data(userSteConfigData.toJSONString())
  76. )
  77. }
  78. }
  79. return RetResult.<InvokeCallResult> successT().result(
  80. InvokeCallResult.success().data(siteConfigData.toJSONString())
  81. )
  82. }
  83. }