BE_SiteConfig_Save.groovy 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import com.sdtool.common.api.BusinessExecutor
  2. import com.sdtool.common.api.ConfigService
  3. import com.sdtool.common.datas.ERPModule
  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.JSONWriter
  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_Save implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  14. @Resource(name = "APP_HOME")
  15. private String appHome
  16. @Resource
  17. private ConfigService configService
  18. @Override
  19. String scriptName() {
  20. return "保存网站配置"
  21. }
  22. @Override
  23. ERPModule module() {
  24. return ERPModule.CONFIG
  25. }
  26. @Override
  27. OperatorWait getAWait(InvokeCallParams s) {
  28. return OperatorWait.ASNYC
  29. }
  30. @Override
  31. boolean needLogin(InvokeCallParams source) {
  32. return true
  33. }
  34. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  35. def jsonSlurper = new JsonSlurper()
  36. def invokeData = jsonSlurper.parseText(source.params)
  37. //直接存source.params有些编码上的问题,改用fastjson中转一下
  38. String configJson = JSON.toJSONString(invokeData, JSONWriter.Feature.PrettyFormat)
  39. String fileName = "default_SiteConfig.json"
  40. if (source.currentUser.userFrom == TokenUserFrom.PC_MALL_FRONT.value) {
  41. fileName = source.currentUser.id + "_SiteConfig.json"
  42. } else if (invokeData.containsKey('_siteHost_') && invokeData._siteHost_ != null && invokeData._siteHost_.trim()) {
  43. fileName = invokeData._siteHost_ + "_SiteConfig.json"
  44. }
  45. def siteConfigFile = new File(appHome + File.separator +
  46. "conf" + File.separator +
  47. "script" + File.separator +
  48. source.supplierCode + File.separator +
  49. "config" + File.separator +
  50. fileName)
  51. siteConfigFile.setText(configJson, "UTF-8")
  52. //清一下read的缓存
  53. configService.reloadScriptCache("SiteConfig_Read", ERPModule.CONFIG, source.dataSourceId, source.supplierCode)
  54. return RetResult.<InvokeCallResult> successT().result(
  55. InvokeCallResult.success().data("")
  56. )
  57. }
  58. }