BE_AuthorizePrinterClient.groovy 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. import com.dySweetFishPlugin.redis.RedisService
  2. import com.dySweetFishPlugin.sql.TableIdService
  3. import com.dySweetFishPlugin.sql.dao.TunaService
  4. import com.sweetfish.convert.json.JsonConvert
  5. import com.sweetfish.service.RetResult
  6. import com.yinjie.printerAuthorize.business.dao.PrintersDao
  7. import com.yinjie.printerAuthorize.common.api.BusinessExecutor
  8. import com.yinjie.printerAuthorize.common.api.NoSqlKeysService
  9. import com.yinjie.printerAuthorize.common.api.printersAuthorize.AuthorizationService
  10. import com.yinjie.printerAuthorize.common.datas.ERPModule
  11. import com.yinjie.printerAuthorize.common.datas.LocalTypeToken
  12. import com.yinjie.printerAuthorize.common.datas.RedisKeys
  13. import com.yinjie.printerAuthorize.common.entity.base.InvokeCallParams
  14. import com.yinjie.printerAuthorize.common.entity.base.InvokeCallResult
  15. import com.yinjie.printerAuthorize.common.entity.printers.AuthorizationItem
  16. import com.yinjie.printerAuthorize.common.entity.printers.PrinterClient
  17. import org.apache.commons.lang3.StringUtils
  18. import org.apache.logging.log4j.LogManager
  19. import org.apache.logging.log4j.Logger
  20. import javax.annotation.Resource
  21. class BE_AuthorizePrinterClient implements BusinessExecutor<InvokeCallParams, InvokeCallResult> {
  22. private final Logger logger = LogManager.getLogger(this.getClass().getSimpleName())
  23. @Resource
  24. private JsonConvert jsonConvert
  25. @Resource
  26. private RedisService redisService
  27. @Resource
  28. private NoSqlKeysService keysService
  29. @Resource
  30. private TunaService tunaService
  31. @Resource
  32. private TableIdService tableIdService
  33. @Resource
  34. private AuthorizationService authorizationService
  35. private PrintersDao printersDao
  36. @Override
  37. String scriptName() {
  38. return "重新授权数码机客户"
  39. }
  40. @Override
  41. ERPModule module() {
  42. return ERPModule.PRINTERS
  43. }
  44. @Override
  45. void start(long supplierCode) {
  46. printersDao = tunaService.generate(PrintersDao.class)
  47. }
  48. @Override
  49. RetResult<InvokeCallParams> checkExecute(InvokeCallParams source) {
  50. PrinterClient srcPrinter = jsonConvert.convertFrom(PrinterClient.class, source.params)
  51. String redisJson = redisService.hget(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_ID, source.supplierCode), srcPrinter.id as String)
  52. if (StringUtils.isBlank(redisJson)) {
  53. return RetResult.<InvokeCallParams> errorT().retinfo("目标机台不存在")
  54. }
  55. if (srcPrinter.authorizeDate == null) {
  56. return RetResult.<InvokeCallParams> errorT().retinfo("未指定机台授权日期")
  57. }
  58. //检查一下传入的权限字段是否和设置的位数一致
  59. if (StringUtils.isBlank(srcPrinter.permissions)) {
  60. return RetResult.<InvokeCallParams> errorT().retinfo("机台权限未设置")
  61. }
  62. InvokeCallParams callParams = InvokeCallParams.newBuilder()
  63. .dataSourceId(source.dataSourceId)
  64. .supplierCode(source.supplierCode)
  65. .build()
  66. RetResult<InvokeCallResult> retResult = authorizationService.callAuthorize(callParams, source.currentUser, source.dataSourceId, source.supplierCode)
  67. if (retResult.isSuccess()) {
  68. List<AuthorizationItem> itemList = jsonConvert.convertFrom(LocalTypeToken.listAuthorizationItem, retResult.result.data)
  69. if (srcPrinter.permissions.length() != itemList.size()) {
  70. return RetResult.<InvokeCallParams> errorT().retinfo("机台权限位数不正确")
  71. }
  72. }
  73. return RetResult.<InvokeCallParams> successT().result(source)
  74. }
  75. RetResult<InvokeCallResult> execute(InvokeCallParams source) {
  76. PrinterClient srcPrinter = jsonConvert.convertFrom(PrinterClient.class, source.params)
  77. String redisJson = redisService.hget(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_ID, source.supplierCode), srcPrinter.id as String)
  78. PrinterClient redisPrinter = jsonConvert.convertFrom(PrinterClient.class, redisJson)
  79. redisPrinter.setAuthorizeDate(srcPrinter.authorizeDate)
  80. redisPrinter.setAuthorizeDateLong(redisPrinter.authorizeDate.time)
  81. redisPrinter.setPermissions(srcPrinter.permissions)
  82. PrinterClient.update(redisPrinter, source.currentUser.id)
  83. redisService.hset(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_ID, source.supplierCode), redisPrinter.id as String, jsonConvert.convertTo(redisPrinter))
  84. redisService.hset(keysService.getRedisKey(RedisKeys.KEY_PRINTER_CLIENT_CODE, source.supplierCode), redisPrinter.printerUniqueCode, jsonConvert.convertTo(redisPrinter))
  85. printersDao.authorizePrinterClient(redisPrinter, source.dataSourceId, source.supplierCode)
  86. return RetResult.<InvokeCallResult> successT().result(InvokeCallResult.success())
  87. }
  88. }