BE_SiteConfig_Read.groovy 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import com.yinjie.printerAuthorize.common.api.BusinessExecutor
  2. import com.yinjie.printerAuthorize.common.datas.ERPModule
  3. import com.yinjie.printerAuthorize.common.datas.LocalTypeToken
  4. import com.yinjie.printerAuthorize.common.datas.TokenUserFrom
  5. import com.yinjie.printerAuthorize.common.entity.base.InvokeCallParams
  6. import com.yinjie.printerAuthorize.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. }