7f0ba070ff63f8aac0075da8d4a6f9c0ae1a0779.svn-base 6.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.chinacreator.videoalliance.order.dao;
  2. import com.chinacreator.videoalliance.order.bean.DiscntInfo;
  3. import com.chinacreator.videoalliance.order.bean.EcbProductInfo;
  4. import com.chinacreator.videoalliance.order.bean.OrderInfo;
  5. import com.frameworkset.common.poolman.SQLExecutor;
  6. import org.apache.commons.lang.math.NumberUtils;
  7. import org.springframework.stereotype.Component;
  8. import java.sql.SQLException;
  9. @Component
  10. public class EcbDiscntNewDao {
  11. public void order(EcbProductInfo ecbProductInfo,OrderInfo orderInfo) throws SQLException{
  12. DiscntInfo discntInfo = get(ecbProductInfo,orderInfo);
  13. String sql = "merge into TD_NEW_DISCNT_INFO a using (select #[userid] userid, #[discntid] discntid,#[discnttype] discnttype from dual) b "+
  14. "on (a.userid = b.userid and a.discntid = b.discntid and a.discnttype = b.discnttype)"+
  15. "when matched then update set "+
  16. "ordertime=to_date(#[ordertime], 'yyyymmddhh24miss'), "+
  17. "endtime=to_date(#[endtime], 'yyyymmddhh24miss'), CANCELTIME='',"+
  18. " inserttime=sysdate,status=0,syncstatus=1,orderchannel=#[orderchannel] "+
  19. "when not matched then insert (userid,ordertime,endtime,status,orderchannel,discnttype,syncstatus,inserttime,discntid,discntfee,discntName,productId,productName,packageCode,packageName,discntOrderState) values ("+
  20. "#[userid],to_date(#[ordertime],'yyyyMMddhh24miss'),to_date(#[endtime],'yyyyMMddhh24miss'),0,#[orderchannel],#[discnttype],1,sysdate,#[discntid],#[discntfee],#[discntName],#[productId],#[productName],#[packageCode],#[packageName],#[discntOrderState]) ";
  21. SQLExecutor.insertBean("net3g", sql, discntInfo);
  22. }
  23. public static void main(String[] args) throws SQLException {
  24. // EcbDiscntNewDao dao = new EcbDiscntNewDao();
  25. // EcbProductInfo ecbProductInfo = new EcbProductInfo();
  26. // ecbProductInfo.setDiscntCode("8244270");
  27. // ecbProductInfo.setDiscntEndDate("20170930235959");
  28. // ecbProductInfo.setDiscntValue("0");
  29. // ecbProductInfo.setDiscntStartDate("20170923235959");
  30. // OrderInfo orderInfo = new OrderInfo();
  31. // orderInfo.setUserid("18600088691");
  32. // //dao.order(ecbProductInfo, orderInfo);
  33. // //dao.queryByDiscntid("18600088691", "8244270", "0",0);
  34. // dao.cancel(ecbProductInfo, orderInfo);
  35. System.out.println("test");
  36. }
  37. public DiscntInfo get(EcbProductInfo ecbProductInfo,OrderInfo orderInfo){
  38. DiscntInfo discntInfo = new DiscntInfo();
  39. discntInfo.setUserid(orderInfo.getUserid());
  40. discntInfo.setDiscntid(ecbProductInfo.getDiscntCode());
  41. discntInfo.setCancelchannel(orderInfo.getCancelchannel());
  42. discntInfo.setDiscnttype(ecbProductInfo.getDiscntValue());
  43. discntInfo.setOrderchannel(orderInfo.getOrderchannel());
  44. discntInfo.setOrdertime(ecbProductInfo.getDiscntStartDate());
  45. discntInfo.setEndtime(ecbProductInfo.getDiscntEndDate());
  46. discntInfo.setDiscntfee(ecbProductInfo.getDiscntFee());
  47. discntInfo.setDiscntName(ecbProductInfo.getDiscntName());
  48. discntInfo.setPackageCode(ecbProductInfo.getPackageCode());
  49. discntInfo.setPackageName(ecbProductInfo.getPackageName());
  50. discntInfo.setProductId(ecbProductInfo.getProductId());
  51. discntInfo.setProductName(ecbProductInfo.getProductName());
  52. discntInfo.setDiscntOrderState(ecbProductInfo.getDiscntOrderState());
  53. return discntInfo;
  54. }
  55. public void cancel(EcbProductInfo ecbProductInfo,OrderInfo orderInfo) throws SQLException{
  56. DiscntInfo discntInfo = get(ecbProductInfo,orderInfo);
  57. String sql = "merge into TD_NEW_DISCNT_INFO a using (select #[userid] userid, #[discntid] discntid,#[discnttype] discnttype from dual) b "+
  58. "on (a.userid = b.userid and a.discntid = b.discntid and a.discnttype = b.discnttype)"+
  59. "when matched then update set "+
  60. "ordertime=to_date(#[ordertime], 'yyyymmddhh24miss'), "+
  61. "endtime=to_date(#[endtime], 'yyyymmddhh24miss'),CANCELTIME=sysdate, "+
  62. "status=1,syncstatus=1,cancelchannel=#[cancelchannel] "+
  63. "when not matched then insert (userid,canceltime,ordertime,endtime,status,cancelchannel,discnttype,syncstatus,inserttime,discntid,discntfee,discntName,productId,productName,packageCode,packageName,discntOrderState) values ("+
  64. "#[userid],sysdate,to_date(#[ordertime],'yyyyMMddhh24miss'),to_date(#[endtime],'yyyyMMddhh24miss'),1,#[cancelchannel],#[discnttype],1,sysdate,#[discntid],#[discntfee],#[discntName],#[productId],#[productName],#[packageCode],#[packageName],#[discntOrderState]) ";
  65. SQLExecutor.updateBean("net3g", sql, discntInfo);
  66. }
  67. public boolean queryByDiscntid(String userid,String discntid,String discnttype,int status) throws SQLException{
  68. String sql ="select count(1) from TD_NEW_DISCNT_INFO where userid =? and discntid=? and discnttype= ? and status=?";
  69. return NumberUtils.toInt(SQLExecutor.queryFieldWithDBName("net3g", sql, userid,discntid,discnttype,status)) >0;
  70. }
  71. public DiscntInfo queryByUserid(String userid,String discnttype,int status) throws SQLException{
  72. String sql ="select to_char(ORDERTIME,'yyyymmddhh24miss') ORDERTIME,to_char(ENDTIME,'yyyymmddhh24miss') ENDTIME,DISCNTID,DISCNTTYPE,discntfee from TD_NEW_DISCNT_INFO where orderchannel='H5_ko' and userid =? and discnttype= ? and status=?";
  73. return SQLExecutor.queryObjectWithDBName(DiscntInfo.class, "net3g", sql, userid,discnttype,status);
  74. }
  75. public DiscntInfo queryByUserid(String userid,String discnttype) throws SQLException{
  76. String sql ="select to_char(ORDERTIME,'yyyymmddhh24miss') ORDERTIME,to_char(ENDTIME,'yyyymmddhh24miss') ENDTIME,DISCNTID,DISCNTTYPE,discntfee,discntOrderState,PACKAGECODE,PRODUCTID,DISCNTTYPE from TD_NEW_DISCNT_INFO where userid =? and discnttype= ? and (endtime is null or endtime > sysdate)";
  77. return SQLExecutor.queryObjectWithDBName(DiscntInfo.class, "net3g", sql, userid,discnttype);
  78. }
  79. public EcbProductInfo queryProduct(String userid,String discnttype) throws SQLException{
  80. String sql ="select to_char(ORDERTIME,'yyyymmddhh24miss') discntStartDate,to_char(ENDTIME,'yyyymmddhh24miss') discntEndDate,DISCNTID discntCode,DISCNTTYPE discntValue,decode(discnttype,'','1040','0','1040','1150') spid,"
  81. + "discntfee discntFee ,discntOrderState,DISCNTNAME,PRODUCTID,PRODUCTNAME,PACKAGECODE, PACKAGENAME from TD_NEW_DISCNT_INFO where userid =? and discnttype= ? and status=0";
  82. return SQLExecutor.queryObjectWithDBName(EcbProductInfo.class, "net3g", sql, userid,discnttype);
  83. }
  84. }