Advertisement
smallufo

Untitled

Jan 19th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Groovy 1.45 KB | None | 0 0
  1. trait ICampaign {
  2.  
  3.   private Logger logger = LoggerFactory.getLogger(getClass());
  4.  
  5.   void onRegister(User user) {
  6.     logger.info("{} register" , user)
  7.   }
  8.  
  9.   void onLogin(User user) {
  10.     logger.info("{} login" , user)
  11.   }
  12.  
  13.   void onLogout(User user) {
  14.     logger.info("{} logout" , user)
  15.   }
  16. }
  17.  
  18.  
  19.  
  20.  
  21. class Campaign2016 implements ICampaign{
  22.  
  23.   private Logger logger = LoggerFactory.getLogger(getClass());
  24.  
  25.   @Override
  26.   void onRegister(User user) {
  27.     logger.info("{} registered" , user)
  28.  
  29.     Bonus b = new Bonus(user: user , value: 0).save()
  30.  
  31.     Bonus b2= Bonus.findByUser(user)
  32.     b2.value = b2.value + 10;
  33.   }
  34.  
  35. // 沒比要實作的,就不用寫(用 trait default 的即可)
  36. //  @Override
  37. //  void onLogin(User user) {
  38. //
  39. //  }
  40. //
  41. //  @Override
  42. //  void onLogout(User user) {
  43. //
  44. //  }
  45. }
  46.  
  47.  
  48.  
  49. @Transactional
  50. class CampaignService {
  51.  
  52.     private ICampaign ic = new Campaign2016();
  53.  
  54.     def onRegister(User user) {
  55.         ic.onRegister(user);
  56.     }
  57.  
  58.     def onLogin(User user) {
  59.         ic.onLogin(user);
  60.     }
  61.  
  62.     def onLogout(User user) {
  63.         ic.onLogout(user);
  64.     }
  65.  
  66. }
  67.  
  68.  
  69.  
  70.  
  71.  
  72. class TestController {
  73.  
  74.   def campaignService;
  75.  
  76.   @Transactional
  77.   def register() {
  78.     User user = new User(
  79.       username : RandomStringUtils.randomAlphabetic(6) ,
  80.       password : RandomStringUtils.randomAlphanumeric(8)
  81.     ).save();
  82.  
  83.     campaignService.onRegister(user)
  84.     render "register OK"
  85.   }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement