Advertisement
jul_tanuwijaya

Untitled

Jul 5th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.77 KB | None | 0 0
  1. package org.jleaf.erp.mlm.bo.member;
  2.  
  3. import java.util.List;
  4.  
  5. import javax.persistence.Query;
  6.  
  7. import org.jleaf.core.AbstractBusinessFunction;
  8. import org.jleaf.core.BusinessFunction;
  9. import org.jleaf.core.Dto;
  10. import org.jleaf.core.GeneralConstants;
  11. import org.jleaf.core.annotation.Info;
  12. import org.jleaf.core.annotation.InfoIn;
  13. import org.jleaf.core.annotation.InfoOut;
  14. import org.jleaf.core.dao.CriteriaHelper;
  15. import org.jleaf.core.dao.CriteriaHelper.CriteriaHelperEnum;
  16. import org.jleaf.core.dao.QueryBuilder;
  17. import org.jleaf.erp.mlm.dao.MemberDao;
  18. import org.jleaf.erp.mlm.entity.Member;
  19. import org.jleaf.util.DtoUtil;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Service;
  22.  
  23.  
  24. /**
  25.  * @author Alvin Yurisman, 16 February 2015
  26.  *
  27.  * modified 2 April 2015 : add keyword filter
  28.  * modified 28 Januari 2016 : tambah where name saat menerima parameter _keyword
  29.  * modified 11 September 2017 : mengembalikan data DS Id, DS code dan DS name
  30.  */
  31.  
  32. @Service
  33. @InfoIn(value = {@Info(name = "memberCode", description = "member code", type = String.class, required=false),
  34.                  @Info(name = "name", description = "name", type = String.class, required=false),
  35.                  @Info(name = "mobilePhoneNumber", description = "Mobile Phone Number", type = String.class, required=false),
  36.                  @Info(name = "active", description = "active", type = String.class, required=false),
  37.                  @Info(name = "_keyword", description = "keyword filter", type = String.class, required=false),
  38.                  @Info(name = "limit", description = "offset", type = Long.class, required=false),
  39.                  @Info(name = "offset", description = "limit", type = Long.class, required=false)})
  40. @InfoOut(value = {@Info(name = "memberList", description = "member list (memberId, memberCode, name, uplineId, uplineName, sponsorId, sponsorName, active, flgDataComplete, mobilePhone, activeDatetime, registeredDate,dsId,dsCode,dsName)")})
  41.  
  42. public class GetMemberList extends AbstractBusinessFunction implements BusinessFunction {
  43.    
  44.     @Autowired
  45.     MemberDao memberDao;
  46.    
  47.     @SuppressWarnings("unchecked")
  48.     @Override
  49.     public Dto execute(Dto inputDto) throws Exception {
  50.         List<Object[]> result = null;
  51.        
  52.         String keyword = inputDto.getString("_keyword");
  53.         String mobilePhoneNumber = GeneralConstants.EMPTY_VALUE;
  54.        
  55.         if(inputDto.get("mobilePhoneNumber")!=null){
  56.             mobilePhoneNumber = inputDto.getString("mobilePhoneNumber");
  57.         }
  58.        
  59.         QueryBuilder builder = new QueryBuilder();
  60.         builder.add(" SELECT a.member_id, a.member_code, a.name, b.member_code as uplineId, b.name as uplineName, ")
  61.             .add(" c.member_code as sponsorId, c.name as sponsorName, a.active, a.flg_data_complete, a.mobile_phone, SUBSTRING(a.active_datetime,1,6) as active_date , d.registered_date, ")
  62.             .add(" X.member_id as ds_id,X.member_code as ds_code,X.name as ds_name")
  63.             .add(" FROM mlm_member a ")
  64.             .add(" INNER JOIN mlm_member b ON a.upline_id = b.member_id ")
  65.             .add(" INNER JOIN mlm_member c ON a.sponsor_id = c.member_id ")
  66.             .add(" INNER JOIN mlm_bkt d ON a.member_code = d.bkt_code ")
  67.             .add(" LEFT JOIN ").add(Member.TABLE_NAME).add(" X ON X.member_id =A.ds_id ")
  68.             .add(" WHERE true")
  69.             .addIfNotEmpty(keyword, " AND ( "
  70.               + CriteriaHelper.likeExpressionIgnoreCase(keyword, "a.member_code", CriteriaHelperEnum.BOTH)
  71.               + " OR  "
  72.               + CriteriaHelper.likeExpressionIgnoreCase(keyword, "a.mobile_phone", CriteriaHelperEnum.BOTH)
  73.               + " OR  "
  74.               + CriteriaHelper.likeExpressionIgnoreCase(keyword, "a.name", CriteriaHelperEnum.BOTH)
  75.               +" ) ")
  76.             .addIfNotEmpty(inputDto.getString("memberCode"), " AND " + CriteriaHelper.likeExpressionIgnoreCase(inputDto.getString("memberCode"), "a.member_code"))
  77.             .addIfNotEmpty(mobilePhoneNumber, " AND " + CriteriaHelper.likeExpressionIgnoreCase(mobilePhoneNumber, "a.mobile_phone"))
  78.             .addIfNotEmpty(inputDto.getString("name"), " AND " + CriteriaHelper.likeExpressionIgnoreCase(inputDto.getString("name"), "a.name"))
  79.             .addIfNotEmpty(inputDto.getString("active"), " AND " + CriteriaHelper.equalsExpressionIgnoreCase(inputDto.getString("active"), "a.active"))
  80.             .add(" ORDER BY a.member_code, a.name ASC ");
  81.             if(inputDto.getLong("limit")!=null) builder.add(" LIMIT " + inputDto.getLong("limit"));
  82.             if(inputDto.getLong("offset")!=null) builder.add(" OFFSET " + inputDto.getLong("offset"));
  83.            
  84.         Query query = memberDao.createNativeQuery(builder.toString());
  85.         result = query.getResultList();
  86.    
  87.         return new Dto().putList("memberList", DtoUtil.createDtoListFromArray(result, "memberId", "memberCode", "name", "uplineId", "uplineName", "sponsorId", "sponsorName", "active", "flgDataComplete","mobilePhone","activeDatetime","registeredDate","dsId","dsCode","dsName"));
  88.     }
  89.  
  90.     @Override
  91.     public String getDescription() {
  92.         return "return get member list";
  93.     }
  94.  
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement