BE_SiteConfig_Save.groovy 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import com.yinjie.printerAuthorize.common.api.BusinessExecutor
  2. import com.yinjie.printerAuthorize.common.api.ConfigService
  3. import com.yinjie.printerAuthorize.common.datas.ERPModule
  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.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. }