351e9b1c2e62692f199f1dede34bba4d19884abd.svn-base 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.chinacreator.videoalliance.order.dao;
  2. import java.sql.SQLException;
  3. import org.apache.commons.lang.math.NumberUtils;
  4. import org.springframework.stereotype.Component;
  5. import com.chinacreator.videoalliance.order.bean.DiscntInfo;
  6. import com.chinacreator.videoalliance.order.bean.EcbProductInfo;
  7. import com.chinacreator.videoalliance.order.bean.OrderInfo;
  8. import com.chinacreator.videoalliance.order.util.JsonUtil;
  9. import com.frameworkset.common.poolman.SQLExecutor;
  10. @Component
  11. public class EcbDiscntInfoDao {
  12. public void order(EcbProductInfo ecbProductInfo,OrderInfo orderInfo) throws SQLException{
  13. DiscntInfo discntInfo = get(ecbProductInfo,orderInfo);
  14. String sql = "merge into TD_DISCNT_INFO a using (select #[userid] userid, #[discntid] discntid,#[discnttype] discnttype from dual) b "+
  15. "on (a.userid = b.userid and a.discntid = b.discntid and a.discnttype = b.discnttype)"+
  16. "when matched then update set "+
  17. "ordertime=to_date(#[ordertime], 'yyyymmddhh24miss'), "+
  18. "endtime=to_date(#[endtime], 'yyyymmddhh24miss'), "+
  19. " inserttime=sysdate,status=0,syncstatus=1,orderchannel=#[orderchannel] "+
  20. "when not matched then insert (userid,ordertime,endtime,status,orderchannel,discnttype,syncstatus,inserttime,discntid,discntfee) values ("+
  21. "#[userid],to_date(#[ordertime],'yyyyMMddhh24miss'),to_date(#[endtime],'yyyyMMddhh24miss'),0,#[orderchannel],#[discnttype],1,sysdate,#[discntid],#[discntfee]) ";
  22. SQLExecutor.insertBean("net3g", sql, discntInfo);
  23. }
  24. public static void main(String[] args) throws SQLException {
  25. EcbDiscntInfoDao dao = new EcbDiscntInfoDao();
  26. // EcbProductInfo ecbProductInfo = new EcbProductInfo();
  27. // ecbProductInfo.setDiscntCode("8244270");
  28. // ecbProductInfo.setDiscntEndDate("20170930235959");
  29. // ecbProductInfo.setDiscntValue("0");
  30. // ecbProductInfo.setDiscntStartDate("20170923235959");
  31. // OrderInfo orderInfo = new OrderInfo();
  32. // orderInfo.setUserid("18600088691");
  33. // //dao.order(ecbProductInfo, orderInfo);
  34. // //dao.queryByDiscntid("18600088691", "8244270", "0",0);
  35. // dao.cancel(ecbProductInfo, orderInfo);
  36. System.out.println(dao.queryByUserid("13015788682", "0",0) .getEndtime());
  37. }
  38. public DiscntInfo get(EcbProductInfo ecbProductInfo,OrderInfo orderInfo){
  39. DiscntInfo discntInfo = new DiscntInfo();
  40. discntInfo.setUserid(orderInfo.getUserid());
  41. discntInfo.setDiscntid(ecbProductInfo.getDiscntCode());
  42. discntInfo.setCancelchannel(orderInfo.getCancelchannel());
  43. discntInfo.setDiscnttype(ecbProductInfo.getDiscntValue());
  44. discntInfo.setOrderchannel(orderInfo.getOrderchannel());
  45. discntInfo.setOrdertime(ecbProductInfo.getDiscntStartDate());
  46. discntInfo.setEndtime(ecbProductInfo.getDiscntEndDate());
  47. discntInfo.setDiscntfee(ecbProductInfo.getDiscntFee());
  48. System.out.println(JsonUtil.objectToJson(discntInfo));
  49. return discntInfo;
  50. }
  51. public void cancel(EcbProductInfo ecbProductInfo,OrderInfo orderInfo) throws SQLException{
  52. DiscntInfo discntInfo = get(ecbProductInfo,orderInfo);
  53. String sql = "merge into TD_DISCNT_INFO a using (select #[userid] userid, #[discntid] discntid,#[discnttype] discnttype from dual) b "+
  54. "on (a.userid = b.userid and a.discntid = b.discntid and a.discnttype = b.discnttype)"+
  55. "when matched then update set "+
  56. "ordertime=to_date(#[ordertime], 'yyyymmddhh24miss'), "+
  57. "endtime=to_date(#[endtime], 'yyyymmddhh24miss'),CANCELTIME=sysdate, "+
  58. "inserttime=sysdate,status=1,syncstatus=1,cancelchannel=#[cancelchannel] "+
  59. "when not matched then insert (userid,canceltime,ordertime,endtime,status,cancelchannel,discnttype,syncstatus,inserttime,discntid) values ("+
  60. "#[userid],sysdate,to_date(#[ordertime],'yyyyMMddhh24miss'),to_date(#[endtime],'yyyyMMddhh24miss'),1,#[cancelchannel],#[discnttype],1,sysdate,#[discntid]) ";
  61. SQLExecutor.updateBean("net3g", sql, discntInfo);
  62. }
  63. public boolean queryByDiscntid(String userid,String discntid,String discnttype,int status) throws SQLException{
  64. String sql ="select count(1) from TD_DISCNT_INFO where userid =? and discntid=? and discnttype= ? and status=?";
  65. return NumberUtils.toInt(SQLExecutor.queryFieldWithDBName("net3g", sql, userid,discntid,discnttype,status)) >0;
  66. }
  67. public DiscntInfo queryByUserid(String userid,String discnttype,int status) throws SQLException{
  68. String sql ="select to_char(ORDERTIME,'yyyymmddhh24miss') ORDERTIME,to_char(ENDTIME,'yyyymmddhh24miss') ENDTIME,DISCNTID,DISCNTTYPE,discntfee from TD_DISCNT_INFO where userid =? and discnttype= ? and status=?";
  69. return SQLExecutor.queryObjectWithDBName(DiscntInfo.class, "net3g", sql, userid,discnttype,status);
  70. }
  71. }