libs/facade-goldcorn-0.0.1.jarBinary files differ
libs/lib-common.jarBinary files differ
pom.xml
@@ -17,6 +17,7 @@ <dubbo.version>2.7.5</dubbo.version> <curator.version>4.0.1</curator.version> <zookeeper.version>3.4.6</zookeeper.version> <seata.version>1.4.1</seata.version> </properties> <dependencies> @@ -44,6 +45,24 @@ <scope>system</scope> <systemPath>${basedir}/libs/javax.servlet-api-3.1.0.jar</systemPath> </dependency> <dependency> <groupId>com.ks</groupId> <artifactId>lib-common</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${basedir}/libs/lib-common.jar</systemPath> </dependency> <dependency> <groupId>com.ks</groupId> <artifactId>facade-goldcorn</artifactId> <version>0.0.1-SNAPSHOT</version> <scope>system</scope> <systemPath>${basedir}/libs/facade-goldcorn-0.0.1.jar</systemPath> </dependency> <dependency> <groupId>showapi</groupId> @@ -435,6 +454,7 @@ <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.7.1.RELEASE</version> </dependency> <dependency> @@ -473,6 +493,12 @@ <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> @@ -487,12 +513,25 @@ <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>${spring.mongodb.version}</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb-cross-store</artifactId> <version>${spring.mongodb.version}</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> @@ -534,13 +573,34 @@ <groupId>org.springframework.data</groupId> <artifactId>spring-data-solr</artifactId> <version>2.1.3.RELEASE</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.1.2</version> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <!-- https://mvnrepository.com/artifact/io.netty/netty-all --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.25.Final</version> </dependency> <!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 --> <dependency> @@ -654,6 +714,18 @@ <!--<artifactId>guava</artifactId>--> <!--</exclusion>--> <!--</exclusions>--> <exclusions> <exclusion> <groupId>io.netty</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <!-- zookeeper --> <dependency> @@ -671,7 +743,7 @@ </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>netty</artifactId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> @@ -691,6 +763,42 @@ <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency> <dependency> <groupId>io.seata</groupId> <artifactId>seata-all</artifactId> <version>${seata.version}</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </exclusion> <exclusion> <groupId>io.netty</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> <!--<dependency>--> <!--<groupId>io.seata</groupId>--> <!--<artifactId>seata-spring-boot-starter</artifactId>--> <!--<version>${seata.version}</version>--> <!--</dependency>--> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.10.1</version> </dependency> @@ -732,6 +840,43 @@ <goal>install-file</goal> </goals> </execution> <execution> <id>install-lib-common</id> <phase>clean</phase> <configuration> <file>${basedir}/libs/lib-common.jar</file> <repositoryLayout>default</repositoryLayout> <groupId>com.ks</groupId> <artifactId>lib-common</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <generatePom>true</generatePom> </configuration> <goals> <goal>install-file</goal> </goals> </execution> <execution> <id>install-facade-goldcorn</id> <phase>clean</phase> <configuration> <file>${basedir}/libs/facade-goldcorn-0.0.1.jar</file> <repositoryLayout>default</repositoryLayout> <groupId>com.ks</groupId> <artifactId>facade-goldcorn</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <generatePom>true</generatePom> </configuration> <goals> <goal>install-file</goal> </goals> </execution> </executions> </plugin> src/main/java/com/yeshi/buwan/controller/AlipayController.java
@@ -2,11 +2,7 @@ import com.alipay.api.AlipayApiException; import com.alipay.api.internal.util.AlipaySignature; import com.alipay.api.response.AlipayTradeQueryResponse; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.exception.vip.VIPException; import com.yeshi.buwan.service.inter.order.OrderService; import com.yeshi.buwan.service.inter.vip.VIPService; import com.yeshi.buwan.util.RedisManager; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.util.log.LoggerUtil; @@ -14,10 +10,8 @@ import com.yeshi.buwan.util.vip.VIPOrderUtil; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.yeshi.utils.alipay.AlipayH5PayUtil; import org.yeshi.utils.entity.alipay.AlipayAppInfo; import javax.annotation.Resource; @@ -25,8 +19,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; src/main/java/com/yeshi/buwan/controller/TestController.java
@@ -1,7 +1,7 @@ package com.yeshi.buwan.controller; import com.yeshi.buwan.domain.system.DetailSystem; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.OrderRecord; import com.yeshi.buwan.exception.PPTVException; import com.yeshi.buwan.exception.vip.VIPException; import com.yeshi.buwan.funtv.FunTVUtil; @@ -60,9 +60,9 @@ @RequestMapping("vipPay") public void vipPay(String id) { VIPOrderRecord record = orderService.getOrderRecord(id); OrderRecord record = orderService.getOrderRecord(id); try { orderService.paySuccess(record.getId(), VIPOrderRecord.PAY_WAY_ALIPAY, record.getMoney(), new Date()); orderService.paySuccess(record.getId(), OrderRecord.PAY_WAY_ALIPAY, record.getMoney(), new Date()); } catch (VIPException e) { e.printStackTrace(); } catch (PPTVException e) { src/main/java/com/yeshi/buwan/controller/admin/api/VipAdminController.java
@@ -3,7 +3,7 @@ import com.google.gson.*; import com.yeshi.buwan.domain.user.LoginUser; import com.yeshi.buwan.domain.vip.UserVIPInfo; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.OrderRecord; import com.yeshi.buwan.service.inter.LoginUserService; import com.yeshi.buwan.service.inter.order.OrderService; import com.yeshi.buwan.service.inter.vip.VIPService; @@ -110,13 +110,13 @@ Integer state = null; if (pay != null) { if (pay) { state = VIPOrderRecord.STATE_PAY; state = OrderRecord.STATE_PAY; } else { state = VIPOrderRecord.STATE_NOT_PAY; state = OrderRecord.STATE_NOT_PAY; } } List<VIPOrderRecord> list = orderService.listOrderRecord(uid, state, page, Constant.pageCount); List<OrderRecord> list = orderService.listOrderRecord(uid, state, page, Constant.pageCount); long count = orderService.countOrderRecord(uid, state); JSONObject data = new JSONObject(); data.put("pageEntity", new PageEntity(page, Constant.pageCount, (int) count)); src/main/java/com/yeshi/buwan/controller/api/VIPController.java
@@ -1,13 +1,11 @@ package com.yeshi.buwan.controller.api; import com.google.gson.*; import com.yeshi.buwan.domain.system.SystemConfig; import com.yeshi.buwan.domain.user.LoginUser; import com.yeshi.buwan.domain.vip.*; import com.yeshi.buwan.exception.goldcorn.GoldCornException; import com.yeshi.buwan.exception.order.OrderException; import com.yeshi.buwan.exception.order.PayException; import com.yeshi.buwan.exception.vip.VIPException; import com.yeshi.buwan.pptv.entity.VideoPPTVMap; import com.yeshi.buwan.service.inter.LoginUserService; import com.yeshi.buwan.service.inter.juhe.PPTVService; @@ -127,8 +125,8 @@ }).create(); JSONObject root = new JSONObject(); List<VIPOrderRecord> list = orderService.listOrderRecord(loginUid, null, page, Constant.pageCount); for (VIPOrderRecord record : list) { List<OrderRecord> list = orderService.listOrderRecord(loginUid, null, page, Constant.pageCount); for (OrderRecord record : list) { record.setIpInfo(null); record.setUpdateTime(null); } @@ -189,7 +187,7 @@ } } VIPOrderRecord record = new VIPOrderRecord(); OrderRecord record = new OrderRecord(); record.setUid(loginUid); if (vipPrice != null) record.setType(vipPrice.getType()); @@ -199,7 +197,7 @@ record.setGoldCorn(goldCorn); record.setMoney(vipPrice.getActualPrice()); record.setPayWay(payWay); record.setState(VIPOrderRecord.STATE_NOT_PAY); record.setState(OrderRecord.STATE_NOT_PAY); record.setIpInfo(IPUtil.getRemotIP(request) + ":" + IPUtil.getRemotePort(request)); try { orderService.createOrder(record); @@ -221,7 +219,7 @@ String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId()); switch (payWay) { case VIPOrderRecord case OrderRecord .PAY_WAY_ALIPAY: { //生成支付宝支付订单 String form = VipUtil.getVipChargeAlipayForm(record.getId(), orderNo, record.getMoney()); @@ -235,7 +233,7 @@ } case VIPOrderRecord case OrderRecord .PAY_WAY_WX: { //生成微信支付订单 try { @@ -266,14 +264,14 @@ @ResponseBody @RequestSerializableByKey(key = "'vip-checkPay-'+#id") public String checkPay(AcceptData acceptData, String loginUid, String id) { VIPOrderRecord record = orderService.getOrderRecord(id); OrderRecord record = orderService.getOrderRecord(id); if (record == null || !record.getUid().equalsIgnoreCase(loginUid)) { return JsonUtilV2.loadFalseJson("记录不存在/不是您的订单"); } record = orderService.checkOrderPayState(id); //未支付 if (record != null && record.getState() != VIPOrderRecord.STATE_PAY) { if (record != null && record.getState() != OrderRecord.STATE_PAY) { return JsonUtilV2.loadFalseJson(1, "支付未完成"); } src/main/java/com/yeshi/buwan/dao/vip/OrderRecordDao.java
File was renamed from src/main/java/com/yeshi/buwan/dao/vip/VIPOrderRecordDao.java @@ -2,18 +2,18 @@ import com.yeshi.buwan.dao.base.BaseDao; import com.yeshi.buwan.domain.vip.OrderType; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.OrderRecord; import org.springframework.stereotype.Repository; import java.util.List; @Repository public class VIPOrderRecordDao extends BaseDao<VIPOrderRecord> { public class OrderRecordDao extends BaseDao<OrderRecord> { private String getHql(DaoQuery daoQuery) { String hql = "from VIPOrderRecord r where 1=1"; String hql = "from OrderRecord r where 1=1"; if (daoQuery.state != null) { hql += " and r.state=" + daoQuery.state; @@ -32,7 +32,7 @@ } public List<VIPOrderRecord> list(DaoQuery daoQuery) { public List<OrderRecord> list(DaoQuery daoQuery) { return super.list(getHql(daoQuery), daoQuery.start, daoQuery.count, null); } src/main/java/com/yeshi/buwan/dao/vip/UserVIPInfoDao.java
@@ -2,7 +2,6 @@ import com.yeshi.buwan.dao.base.BaseDao; import com.yeshi.buwan.domain.vip.UserVIPInfo; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import org.springframework.stereotype.Repository; @Repository src/main/java/com/yeshi/buwan/domain/vip/OrderRecord.java
File was renamed from src/main/java/com/yeshi/buwan/domain/vip/VIPOrderRecord.java @@ -4,7 +4,7 @@ import java.util.Date; //会员订单记录 public class VIPOrderRecord { public class OrderRecord { //未支付 public final static int STATE_NOT_PAY = 0; src/main/java/com/yeshi/buwan/pptv/PPTVVipManager.java
@@ -2,7 +2,7 @@ import com.yeshi.buwan.domain.user.LoginUserExtra; import com.yeshi.buwan.domain.vip.OrderType; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.OrderRecord; import com.yeshi.buwan.domain.vip.VIPPrice; import com.yeshi.buwan.exception.PPTVException; import com.yeshi.buwan.exception.vip.VIPException; @@ -39,8 +39,8 @@ * @throws VIPException */ @Transactional(rollbackFor = Exception.class) public void buyVIP(VIPOrderRecord record) throws PPTVException, VIPException { if (record.getState() != VIPOrderRecord.STATE_PAY) { public void buyVIP(OrderRecord record) throws PPTVException, VIPException { if (record.getState() != OrderRecord.STATE_PAY) { throw new VIPException(11, "尚未支付成功"); } @@ -80,8 +80,8 @@ * @throws VIPException */ @Transactional(rollbackFor = Exception.class) public void buyVideo(VIPOrderRecord record) throws PPTVException, VIPException { if (record.getState() != VIPOrderRecord.STATE_PAY) { public void buyVideo(OrderRecord record) throws PPTVException, VIPException { if (record.getState() != OrderRecord.STATE_PAY) { throw new VIPException(11, "尚未支付成功"); } src/main/java/com/yeshi/buwan/service/imp/order/OrderServiceImpl.java
@@ -2,10 +2,10 @@ import com.alipay.api.AlipayApiException; import com.alipay.api.response.AlipayTradeQueryResponse; import com.yeshi.buwan.dao.vip.VIPOrderRecordDao; import com.yeshi.buwan.dao.vip.OrderRecordDao; import com.yeshi.buwan.domain.vip.OrderType; import com.yeshi.buwan.domain.vip.UserVIPInfo; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.OrderRecord; import com.yeshi.buwan.domain.vip.VIPPriceType; import com.yeshi.buwan.dto.order.PayWayInfoDTO; import com.yeshi.buwan.exception.PPTVException; @@ -15,11 +15,13 @@ import com.yeshi.buwan.exception.vip.VIPException; import com.yeshi.buwan.pptv.PPTVVipManager; import com.yeshi.buwan.service.inter.order.OrderService; import com.yeshi.buwan.service.manager.GoldCornManager; import com.yeshi.buwan.util.Constant; import com.yeshi.buwan.util.RedisManager; import com.yeshi.buwan.util.StringUtil; import com.yeshi.buwan.util.user.VipUtil; import com.yeshi.buwan.util.vip.VIPOrderUtil; import io.seata.spring.annotation.GlobalTransactional; import org.hibernate.Query; import org.hibernate.Session; import org.slf4j.Logger; @@ -42,13 +44,12 @@ @Service public class OrderServiceImpl implements OrderService { private static Logger logger = LoggerFactory.getLogger("OrderService"); private static Logger orderLogger = LoggerFactory.getLogger("order"); @Resource private VIPOrderRecordDao vipOrderRecordDao; private OrderRecordDao vipOrderRecordDao; @Resource private PPTVVipManager pptvVipManager; @@ -56,15 +57,18 @@ @Resource private RedisManager redisManager; @Resource private GoldCornManager goldCornManager; @Transactional(rollbackFor = Exception.class) @Override public VIPOrderRecord createOrder(VIPOrderRecord record) throws OrderException { public OrderRecord createOrder(OrderRecord record) throws OrderException { if (record.getMoney() == null || record.getType() == null || record.getOrderType() == null || record.getUid() == null) { throw new OrderException(1, "参数不完整"); } if (record.getState() == null) { record.setState(VIPOrderRecord.STATE_NOT_PAY); record.setState(OrderRecord.STATE_NOT_PAY); } if (record.getCreateTime() == null) { @@ -80,16 +84,23 @@ } @Transactional(rollbackFor = Exception.class) @GlobalTransactional(timeoutMills = 30000, name = "buwan-order", rollbackFor = Exception.class) @Override public PayWayInfoDTO payOrder(VIPOrderRecord record) throws OrderException, GoldCornException, PayException { public PayWayInfoDTO payOrder(OrderRecord record) throws OrderException, GoldCornException, PayException { //TODO 影视豆支付 String orderNo = VIPOrderUtil.getOutOrderNo(record.getOrderType(), record.getId()); switch (record.getPayWay()) { case VIPOrderRecord case OrderRecord .PAY_WAY_ALIPAY_GOLDCORN: //TODO 扣影视豆 try { goldCornManager.consumeGoldCorn(record, record.getGoldCorn()); } catch (Exception e) { throw new GoldCornException(1, "影视豆扣除出错"); } orderLogger.info("订单影视豆支付成功:id-{}", record.getId()); case VIPOrderRecord case OrderRecord .PAY_WAY_ALIPAY: { //生成支付宝支付订单 String form = VipUtil.getVipChargeAlipayForm(record.getId(), orderNo, record.getMoney()); @@ -98,14 +109,18 @@ redisManager.cacheCommonString(id, form, 120); String payUrl = Constant.HOST + "/BuWan/alipay/printPayForm?formId=" + id; orderLogger.info("订单创建支付宝支付链接成功:id-{} 链接-{}", record.getId(), payUrl); return new PayWayInfoDTO(VIPOrderRecord return new PayWayInfoDTO(OrderRecord .PAY_WAY_ALIPAY, payUrl); } case VIPOrderRecord case OrderRecord .PAY_WAY_WX_GOLDCORN: //TODO 扣影视豆 try { goldCornManager.consumeGoldCorn(record, record.getGoldCorn()); } catch (Exception e) { throw new GoldCornException(1, "影视豆扣除出错"); } orderLogger.info("订单影视豆支付成功:id-{} 类型-{}", record.getId(), record.getOrderType().name()); case VIPOrderRecord case OrderRecord .PAY_WAY_WX: { //生成微信支付订单 try { @@ -117,15 +132,19 @@ } String payUrl = VipUtil.createWXOrder(record.getId(), record.getIpInfo(), orderNo, record.getMoney(), title); orderLogger.info("订单创建微信支付链接成功:id-{} 链接-{}", record.getId(), payUrl); return new PayWayInfoDTO(VIPOrderRecord.PAY_WAY_WX, payUrl); return new PayWayInfoDTO(OrderRecord.PAY_WAY_WX, payUrl); } catch (Exception e) { logger.error("生成微信支付订单出错", e); throw new PayException(2, e.getMessage()); } } case VIPOrderRecord.PAY_WAY_GOLDCORN: { //TODO 扣影视豆 case OrderRecord.PAY_WAY_GOLDCORN: { try { goldCornManager.consumeGoldCorn(record, record.getGoldCorn()); } catch (Exception e) { throw new GoldCornException(1, "影视豆扣除出错"); } orderLogger.info("订单影视豆支付成功:id-{}", record.getId()); } break; @@ -133,49 +152,49 @@ throw new OrderException(1, "支付方式不存在"); } private int getPayState(VIPOrderRecord record) { private int getPayState(OrderRecord record) { switch (record.getPayWay()) { case VIPOrderRecord.PAY_WAY_ALIPAY: case VIPOrderRecord.PAY_WAY_WX: case OrderRecord.PAY_WAY_ALIPAY: case OrderRecord.PAY_WAY_WX: if (record.getMoneyPay() != null && record.getMoneyPay()) return VIPOrderRecord.STATE_PAY; return OrderRecord.STATE_PAY; else return VIPOrderRecord.STATE_NOT_PAY; case VIPOrderRecord.PAY_WAY_ALIPAY_GOLDCORN: case VIPOrderRecord.PAY_WAY_WX_GOLDCORN: return OrderRecord.STATE_NOT_PAY; case OrderRecord.PAY_WAY_ALIPAY_GOLDCORN: case OrderRecord.PAY_WAY_WX_GOLDCORN: if (record.getMoneyPay() != null && record.getMoneyPay() && record.getGoldCornPay() != null && record.getGoldCornPay()) return VIPOrderRecord.STATE_PAY; return OrderRecord.STATE_PAY; else return VIPOrderRecord.STATE_NOT_PAY; case VIPOrderRecord.PAY_WAY_GOLDCORN: return OrderRecord.STATE_NOT_PAY; case OrderRecord.PAY_WAY_GOLDCORN: if (record.getGoldCornPay() != null && record.getGoldCornPay()) return VIPOrderRecord.STATE_PAY; return OrderRecord.STATE_PAY; else return VIPOrderRecord.STATE_NOT_PAY; return OrderRecord.STATE_NOT_PAY; } return VIPOrderRecord.STATE_NOT_PAY; return OrderRecord.STATE_NOT_PAY; } @Transactional(rollbackFor = Exception.class) @Override public VIPOrderRecord paySuccess(String id, int payWay, BigDecimal payMoney, Date payTime) throws public OrderRecord paySuccess(String id, int payWay, BigDecimal payMoney, Date payTime) throws VIPException, PPTVException { orderLogger.info("订单支付成功目的执行:id-{},支付方式-{},支付金额-{},支付时间-{}", id, payWay, payMoney, payTime.getTime()); Session session = vipOrderRecordDao.getSession(); //修改记录 Query query = session.createSQLQuery("select * from wk_vip_order_record r where r.id=? for update").addEntity(VIPOrderRecord.class).setCacheable(false).setParameter(0, id); List<VIPOrderRecord> list = query.list(); Query query = session.createSQLQuery("select * from wk_vip_order_record r where r.id=? for update").addEntity(OrderRecord.class).setCacheable(false).setParameter(0, id); List<OrderRecord> list = query.list(); if (list != null && list.size() > 0) { VIPOrderRecord record = list.get(0); if (record.getState() != VIPOrderRecord.STATE_NOT_PAY) OrderRecord record = list.get(0); if (record.getState() != OrderRecord.STATE_NOT_PAY) throw new VIPException(1, "订单未处于待支付状态"); if (record.getPayWay() != VIPOrderRecord.PAY_WAY_GOLDCORN) { if (record.getPayWay() != OrderRecord.PAY_WAY_GOLDCORN) { record.setPayMoney(payMoney); record.setMoneyPay(true); } else { @@ -187,7 +206,7 @@ record.setState(getPayState(record)); //已经支付成功 if (record.getState() == VIPOrderRecord.STATE_PAY) { if (record.getState() == OrderRecord.STATE_PAY) { session.createSQLQuery("insert into wk_vip_order_pay_success(id,create_time) value(?,now())").setParameter(0, id).executeUpdate(); } @@ -202,7 +221,7 @@ session.update(record); if (record.getState() == VIPOrderRecord.STATE_PAY) { if (record.getState() == OrderRecord.STATE_PAY) { orderLogger.info("订单全部支付成功:id-{}", id); //购买VIP pptvVipManager.buyVIP(record); @@ -217,7 +236,7 @@ record.setVipEndTime(new Date(payTime.getTime() + 1000 * 60 * 60L * 24 * 7)); session.update(record); //单片购买成功(7天有效期) if (record.getState() == VIPOrderRecord.STATE_PAY) { if (record.getState() == OrderRecord.STATE_PAY) { orderLogger.info("订单全部支付成功:id-{}", id); //购买单片 pptvVipManager.buyVideo(record); @@ -236,32 +255,34 @@ @Transactional(rollbackFor = Exception.class) @Override public void cancelOrder(String id, String reason) throws OrderException { public void cancelOrder(String id, String reason) throws OrderException, GoldCornException { Session session = vipOrderRecordDao.getSession(); Query query = session.createSQLQuery("select * from wk_vip_order_record r where r.id=? for update").addEntity(VIPOrderRecord.class).setCacheable(false).setParameter(0, id); List<VIPOrderRecord> list = query.list(); Query query = session.createSQLQuery("select * from wk_vip_order_record r where r.id=? for update").addEntity(OrderRecord.class).setCacheable(false).setParameter(0, id); List<OrderRecord> list = query.list(); //订单不存在 if (list == null || list.size() == 0) throw new OrderException(1, "订单不存在"); VIPOrderRecord record = list.get(0); if (record.getState() == VIPOrderRecord.STATE_PAY) { OrderRecord record = list.get(0); if (record.getState() == OrderRecord.STATE_PAY) { throw new OrderException(1, "已支付成功的订单不能取消"); } if (record.getPayWay() != VIPOrderRecord.PAY_WAY_GOLDCORN && record.getMoneyPay() != null && record.getMoneyPay()) { if (record.getPayWay() != OrderRecord.PAY_WAY_GOLDCORN && record.getMoneyPay() != null && record.getMoneyPay()) { throw new OrderException(2, "资金支付成功的订单不能取消"); } //返回豆 if (record.getGoldCornPay() != null && record.getGoldCornPay() && record.getGoldCorn() != null && record.getGoldCorn() > 0) { //TODO 退回影视豆 try { goldCornManager.drawbackGoldCorn(record); } catch (Exception e) { throw new GoldCornException(1, "影视豆退款成功"); } } //设置订单状态 record.setState(VIPOrderRecord.STATE_CANCEL); record.setState(OrderRecord.STATE_CANCEL); record.setUpdateTime(new Date()); record.setRemarks(reason); vipOrderRecordDao.update(record); @@ -271,13 +292,13 @@ @Transactional(rollbackFor = Exception.class) @Override public VIPOrderRecord checkOrderPayState(String id) { VIPOrderRecord record = vipOrderRecordDao.find(VIPOrderRecord.class, id); if (record.getState() == VIPOrderRecord.STATE_PAY) public OrderRecord checkOrderPayState(String id) { OrderRecord record = vipOrderRecordDao.find(OrderRecord.class, id); if (record.getState() == OrderRecord.STATE_PAY) return record; switch (record.getPayWay()) { case VIPOrderRecord.PAY_WAY_ALIPAY: { case OrderRecord.PAY_WAY_ALIPAY: { //支付宝 AlipayTradeQueryResponse res = null; try { @@ -285,7 +306,7 @@ //支付成功 if (res.isSuccess() && "TRADE_SUCCESS".equalsIgnoreCase(res.getTradeStatus())) { try { return paySuccess(id, VIPOrderRecord.PAY_WAY_ALIPAY, new BigDecimal(res.getTotalAmount()), new Date()); return paySuccess(id, OrderRecord.PAY_WAY_ALIPAY, new BigDecimal(res.getTotalAmount()), new Date()); } catch (Exception e) { e.printStackTrace(); } @@ -296,7 +317,7 @@ } break; case VIPOrderRecord.PAY_WAY_WX: { case OrderRecord.PAY_WAY_WX: { //微信 try { WXPayOrderInfoV3 info = WXPayV3Util.getPayOrderInfo(VIPOrderUtil.getOutOrderNo(record.getOrderType(), id), VipUtil.getWXAPP()); @@ -316,9 +337,9 @@ @Override public List<VIPOrderRecord> listOrderRecord(String uid, Integer state, int page, int pageSize) { public List<OrderRecord> listOrderRecord(String uid, Integer state, int page, int pageSize) { VIPOrderRecordDao.DaoQuery query = new VIPOrderRecordDao.DaoQuery(); OrderRecordDao.DaoQuery query = new OrderRecordDao.DaoQuery(); query.start = (page - 1) * pageSize; query.count = pageSize; query.uid = uid; @@ -329,15 +350,15 @@ @Override public long countOrderRecord(String uid, Integer state) { VIPOrderRecordDao.DaoQuery query = new VIPOrderRecordDao.DaoQuery(); OrderRecordDao.DaoQuery query = new OrderRecordDao.DaoQuery(); query.uid = uid; query.state = state; return vipOrderRecordDao.count(query); } @Override public VIPOrderRecord getOrderRecord(String id) { return vipOrderRecordDao.find(VIPOrderRecord.class, id); public OrderRecord getOrderRecord(String id) { return vipOrderRecordDao.find(OrderRecord.class, id); } src/main/java/com/yeshi/buwan/service/inter/order/OrderService.java
@@ -1,6 +1,6 @@ package com.yeshi.buwan.service.inter.order; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.OrderRecord; import com.yeshi.buwan.dto.order.PayWayInfoDTO; import com.yeshi.buwan.exception.PPTVException; import com.yeshi.buwan.exception.goldcorn.GoldCornException; @@ -22,7 +22,7 @@ * @return * @throws OrderException */ public VIPOrderRecord createOrder(VIPOrderRecord orderRecord) throws OrderException; public OrderRecord createOrder(OrderRecord orderRecord) throws OrderException; /** @@ -32,7 +32,7 @@ * @param state * @return */ public List<VIPOrderRecord> listOrderRecord(String uid, Integer state, int page, int pageSize); public List<OrderRecord> listOrderRecord(String uid, Integer state, int page, int pageSize); /** @@ -48,10 +48,10 @@ * * @param id */ public VIPOrderRecord checkOrderPayState(String id); public OrderRecord checkOrderPayState(String id); public VIPOrderRecord getOrderRecord(String id); public OrderRecord getOrderRecord(String id); /** @@ -59,7 +59,7 @@ * * @param record */ public PayWayInfoDTO payOrder(VIPOrderRecord record) throws OrderException, GoldCornException, PayException; public PayWayInfoDTO payOrder(OrderRecord record) throws OrderException, GoldCornException, PayException; /** @@ -73,7 +73,7 @@ * @throws VIPException * @throws PPTVException */ public VIPOrderRecord paySuccess(final String id, int payWay, BigDecimal payMoney, Date payTime) throws VIPException, PPTVException; public OrderRecord paySuccess(final String id, int payWay, BigDecimal payMoney, Date payTime) throws VIPException, PPTVException; /** @@ -81,7 +81,7 @@ * * @param id */ public void cancelOrder(String id, String reason) throws OrderException; public void cancelOrder(String id, String reason) throws OrderException, GoldCornException; } src/main/java/com/yeshi/buwan/service/inter/vip/VIPService.java
@@ -1,11 +1,7 @@ package com.yeshi.buwan.service.inter.vip; import com.yeshi.buwan.domain.vip.UserVIPInfo; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.exception.PPTVException; import com.yeshi.buwan.exception.vip.VIPException; import java.math.BigDecimal; import java.util.Date; import java.util.List; src/main/java/com/yeshi/buwan/service/manager/GoldCornManager.java
New file @@ -0,0 +1,109 @@ package com.yeshi.buwan.service.manager; import com.ks.goldcorn.exception.GoldAppException; import com.ks.goldcorn.exception.GoldTradeException; import com.ks.goldcorn.exception.GoldUserException; import com.ks.goldcorn.service.remote.GoldCornTradeService; import com.yeshi.buwan.domain.vip.OrderType; import com.yeshi.buwan.domain.vip.OrderRecord; import com.yeshi.buwan.exception.goldcorn.GoldCornException; import com.yeshi.buwan.service.inter.system.SystemConfigService; import com.yeshi.buwan.util.StringUtil; import org.apache.dubbo.config.annotation.Reference; import org.springframework.stereotype.Component; import javax.annotation.Resource; @Component public class GoldCornManager { @Resource private SystemConfigService systemConfigService; @Reference(version = "1.0") private GoldCornTradeService goldCornTradeService; /** * 获取金币系统的用户ID * * @param uid * @return * @throws Exception */ public String getUid(String uid) throws Exception { String prefix = systemConfigService.getConfigValueByKeyCache("thirdUidPrefix"); if (StringUtil.isNullOrEmpty(prefix)) { throw new Exception("用户ID前缀获取出错"); } return prefix + uid; } public String getAppCode() throws GoldAppException { String appCode = systemConfigService.getConfigValueByKeyCache("goldCornAppCode"); if (StringUtil.isNullOrEmpty(appCode)) { throw new GoldAppException(GoldAppException.CODE_NOT_EXIST, "应用不存在"); } return appCode; } /** * 金币消耗 * * @param record * @param goldCornCount 金币数量 * @throws GoldCornException * @throws Exception */ public void consumeGoldCorn(OrderRecord record, int goldCornCount) throws GoldCornException, Exception { String tuid = getUid(record.getUid()); String appCode = getAppCode(); String sourceCode = ""; String title = ""; String desc = ""; if (record.getOrderType() == OrderType.vip) { sourceCode = "buyVIP"; title = "购买VIP"; } else if (record.getOrderType() == OrderType.video) { sourceCode = "buyVideo"; title = "购买单片"; } consumeGoldCorn(appCode, tuid, sourceCode, goldCornCount, title, desc); } /** * 返回影视豆 * * @param record * @throws GoldCornException * @throws Exception */ public void drawbackGoldCorn(OrderRecord record) throws GoldCornException, Exception { String tuid = getUid(record.getUid()); String appCode = getAppCode(); String sourceCode = ""; String title = ""; String desc = ""; if (record.getOrderType() == OrderType.vip) { sourceCode = "buyVIP"; title = "购买VIP退款"; } else if (record.getOrderType() == OrderType.video) { sourceCode = "buyVideo"; title = "购买单片退款"; } addGoldCorn(appCode, tuid, sourceCode, record.getGoldCorn(), title, desc); } private void addGoldCorn(String appCode, String uid, String sourceCode, Integer goldCornCount, String title, String desc) throws GoldUserException, GoldAppException, GoldTradeException { goldCornTradeService.addGoldCorn(appCode, uid, sourceCode, goldCornCount, title, desc); } private void consumeGoldCorn(String appCode, String uid, String sourceCode, Integer goldCornCount, String title, String desc) throws GoldUserException, GoldAppException, GoldTradeException { goldCornTradeService.consumeGoldCorn(appCode, uid, sourceCode, goldCornCount, title, desc); } } src/main/java/com/yeshi/buwan/service/manager/SeataManagerTest.java
New file @@ -0,0 +1,47 @@ package com.yeshi.buwan.service.manager; import com.ks.goldcorn.exception.GoldSourceException; import com.ks.goldcorn.pojo.DO.GoldCornGetSource; import com.ks.goldcorn.service.remote.GoldCornGetSourceService; import com.yeshi.buwan.dao.user.LoginUserDao; import com.yeshi.buwan.domain.user.LoginUser; import com.yeshi.buwan.service.inter.LoginUserService; import io.seata.core.context.RootContext; import io.seata.spring.annotation.GlobalTransactional; import org.apache.dubbo.config.annotation.Reference; import org.hibernate.HibernateException; import org.hibernate.Session; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; @Component public class SeataManagerTest { @Resource private LoginUserDao loginUserDao; @Reference(version = "1.0") private GoldCornGetSourceService goldCornGetSourceService; @GlobalTransactional(timeoutMills = 30000, name = "buwan-order", rollbackFor = Exception.class) public void addGetResource() throws Exception { System.out.println("开始全局事务,XID = " + RootContext.getXID()); LoginUser loginUser = new LoginUser(); loginUser.setId("50134"); loginUser.setName("test3"); loginUserDao.updateSelective(loginUser); GoldCornGetSource get = new GoldCornGetSource(); get.setAppId(15L); get.setSourceCode("test1"); get.setSourceName("测试"); get.setGoldCorn(1); goldCornGetSourceService.addSource(get); throw new Exception("手动报错"); } } src/main/java/com/yeshi/buwan/util/SpringContext.java
@@ -1,5 +1,6 @@ package com.yeshi.buwan.util; import com.alibaba.druid.pool.DruidDataSource; import com.yeshi.buwan.domain.ResourceVideo; import com.yeshi.buwan.domain.VideoInfo; import com.yeshi.buwan.domain.VideoResource; @@ -11,19 +12,25 @@ import com.yeshi.buwan.service.imp.JobThreadExecutorServiceImpl; import com.yeshi.buwan.service.imp.ResourceVideoService; import com.yeshi.buwan.service.imp.VideoInfoService; import com.yeshi.buwan.service.inter.juhe.*; import com.yeshi.buwan.service.inter.juhe.FunTV2Service; import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; import com.yeshi.buwan.service.inter.juhe.Iqiyi2Service; import com.yeshi.buwan.service.inter.juhe.PPTVService; import com.yeshi.buwan.service.manager.SolrAlbumVideoDataManager; import com.yeshi.buwan.service.manager.SolrInternetSearchVideoDataManager; import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; import com.yeshi.buwan.util.mq.CMQManager; import com.yeshi.buwan.youku.entity.YouKuShowDetail; import io.seata.rm.datasource.DataSourceProxy; import io.seata.spring.annotation.GlobalTransactionScanner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationListener; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.stereotype.Component; import javax.annotation.Resource; import javax.sql.DataSource; import java.util.ArrayList; import java.util.List; @@ -64,6 +71,7 @@ } } private synchronized void onApplication(ContextRefreshedEvent context) { if (!isInited) { isInited = true; src/main/resources/consumer.xml
@@ -11,5 +11,6 @@ <dubbo:registry address="zookeeper://134.175.68.214:2181"/> <!-- url=dubbo://192.168.3.122:20882/com.yeshi.goods.facade.service.TaoBaoCouponCacheService --> <dubbo:annotation package="com"/> </beans> src/main/resources/domain/vip/OrderRecord.hbm.xml
File was renamed from src/main/resources/domain/vip/VIPOrderRecord.hbm.xml @@ -4,7 +4,7 @@ "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.yeshi.buwan.domain.vip"> <class name="VIPOrderRecord" table="wk_vip_order_record"> <class name="com.yeshi.buwan.domain.vip.OrderRecord" table="wk_vip_order_record"> <id name="id" column="id"> <generator class="native"></generator> </id> @@ -40,7 +40,6 @@ <property name="goldCorn" column="gold_corn" type="integer"></property> <property name="videoInfoId" column="video_info_id" type="string"></property> <property name="payWay" column="pay_way" type="integer"></property> <property name="moneyPay" column="money_pay" type="boolean"></property> <property name="goldCornPay" column="gold_corn_pay" type="boolean"></property> src/main/resources/env-dev/logback.xml
@@ -182,7 +182,7 @@ <logger name="org.springframework.transaction" level="INFO" /> <logger name="org.springframework.data.solr" level="DEBUG" /> <logger name="io.seata" level="DEBUG"></logger> <!-- 一切logger都会继承自root,root默认的层级level为debug --> src/main/resources/file.conf
New file @@ -0,0 +1,66 @@ transport { # tcp udt unix-domain-socket type = "TCP" #NIO NATIVE server = "NIO" #enable heartbeat heartbeat = true # the client batch send request enable enableClientBatchSendRequest = true #thread factory for netty threadFactory { bossThreadPrefix = "NettyBoss" workerThreadPrefix = "NettyServerNIOWorker" serverExecutorThread-prefix = "NettyServerBizHandler" shareBossWorker = false clientSelectorThreadPrefix = "NettyClientSelector" clientSelectorThreadSize = 1 clientWorkerThreadPrefix = "NettyClientWorkerThread" # netty boss thread size,will not be used for UDT bossThreadSize = 1 #auto default pin or 8 workerThreadSize = "default" } shutdown { # when destroy server, wait seconds wait = 3 } serialization = "seata" compressor = "none" } service { #transaction service group mapping vgroupMapping.buwan-seata-service-group = "default" #only support when registry.type=file, please don't set multiple addresses default.grouplist = "134.175.68.214:8191" #degrade, current not support enableDegrade = false #disable seata disableGlobalTransaction = false } client { rm { asyncCommitBufferLimit = 10000 lock { retryInterval = 10 retryTimes = 30 retryPolicyBranchRollbackOnConflict = true } reportRetryCount = 5 tableMetaCheckEnable = false reportSuccessEnable = false } tm { commitRetryCount = 5 rollbackRetryCount = 5 } undo { dataValidation = true logSerialization = "jackson" logTable = "undo_log" } log { exceptionRate = 100 } } src/main/resources/hibernate.cfg.xml
@@ -180,7 +180,7 @@ <!-- VIP --> <mapping resource="domain/vip/UserVIPInfo.hbm.xml"/> <mapping resource="domain/vip/VIPOrderRecord.hbm.xml"/> <mapping resource="domain/vip/OrderRecord.hbm.xml"/> <mapping class="com.yeshi.buwan.domain.AcFunTemporary"/> <mapping class="com.yeshi.buwan.acFun.AcFunVideo"/> src/main/resources/registry.conf
New file @@ -0,0 +1,79 @@ registry { # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa type = "file" nacos { application = "seata-server" serverAddr = "localhost" namespace = "" username = "" password = "" } eureka { serviceUrl = "http://localhost:8761/eureka" weight = "1" } redis { serverAddr = "localhost:6379" db = "0" password = "" timeout = "0" } zk { serverAddr = "127.0.0.1:2181" sessionTimeout = 6000 connectTimeout = 2000 username = "" password = "" } consul { serverAddr = "127.0.0.1:8500" } etcd3 { serverAddr = "http://localhost:2379" } sofa { serverAddr = "127.0.0.1:9603" region = "DEFAULT_ZONE" datacenter = "DefaultDataCenter" group = "SEATA_GROUP" addressWaitTime = "3000" } file { name = "file.conf" } } config { # file、nacos 、apollo、zk、consul、etcd3、springCloudConfig type = "file" nacos { serverAddr = "localhost" namespace = "" group = "SEATA_GROUP" username = "" password = "" } consul { serverAddr = "127.0.0.1:8500" } apollo { appId = "seata-server" apolloMeta = "http://192.168.1.204:8801" namespace = "application" } zk { serverAddr = "127.0.0.1:2181" sessionTimeout = 6000 connectTimeout = 2000 username = "" password = "" } etcd3 { serverAddr = "http://localhost:2379" } file { name = "file.conf" } } src/main/resources/seata.xml
New file @@ -0,0 +1,16 @@ <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="globalTransactionScanner" class="io.seata.spring.annotation.GlobalTransactionScanner"> <constructor-arg name="applicationId" value="buwan"/> <constructor-arg name="txServiceGroup" value="buwan-seata-service-group"/> </bean> <bean id="dataSourceProxy" class=" io.seata.rm.datasource.DataSourceProxy"> <constructor-arg name="targetDataSource" ref="dataSource"/> </bean> </beans> src/main/resources/spring.xml
@@ -216,4 +216,5 @@ <import resource="solr.xml"></import> <import resource="xxl-job.xml"></import> <import resource="consumer.xml"></import> <import resource="seata.xml"></import> </beans> src/test/java/com/hxh/spring/test/dubbo/GoldCornTest.java
New file @@ -0,0 +1,28 @@ package com.hxh.spring.test.dubbo; import com.ks.goldcorn.pojo.DO.GoldCornAppInfo; import com.ks.goldcorn.service.remote.GoldCornAppService; import org.apache.dubbo.config.annotation.Reference; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; @RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试 @ContextConfiguration(locations = {"classpath:spring.xml"}) @WebAppConfiguration public class GoldCornTest { @Reference(version = "1.0") private GoldCornAppService goldCornAppService; @Test public void getApp() { GoldCornAppInfo app = goldCornAppService.selectByCode("buwan"); System.out.println(app); } } src/test/java/com/hxh/spring/test/dubbo/SeataTest.java
New file @@ -0,0 +1,37 @@ package com.hxh.spring.test.dubbo; import com.yeshi.buwan.service.manager.SeataManagerTest; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import javax.annotation.Resource; @RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试 @ContextConfiguration(locations = {"classpath:spring.xml"}) @WebAppConfiguration public class SeataTest { @Resource private SeataManagerTest seataManagerTest; @Test public void getApp() { try { seataManagerTest.addGetResource(); } catch (Exception e) { e.printStackTrace(); } try { Thread.sleep(10000); } catch (InterruptedException e) { e.printStackTrace(); } } } src/test/java/com/hxh/spring/test/vip/VIPTest.java
@@ -1,7 +1,7 @@ package com.hxh.spring.test.vip; import com.yeshi.buwan.domain.vip.UserVIPInfo; import com.yeshi.buwan.domain.vip.VIPOrderRecord; import com.yeshi.buwan.domain.vip.OrderRecord; import com.yeshi.buwan.domain.vip.VIPPrice; import com.yeshi.buwan.domain.vip.VIPPriceType; import com.yeshi.buwan.exception.order.OrderException; @@ -12,29 +12,14 @@ import com.yeshi.buwan.service.inter.vip.VIPService; import com.yeshi.buwan.util.Constant; import com.yeshi.buwan.util.HttpUtil; import com.yeshi.buwan.util.log.LoggerUtil; import com.yeshi.buwan.util.user.VipUtil; import com.yeshi.buwan.util.vip.VIPOrderUtil; import net.sf.json.JSONObject; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import org.yeshi.utils.entity.wx.WXAPPInfo; import javax.annotation.Resource; import javax.crypto.Cipher; import javax.crypto.NoSuchPaddingException; import javax.crypto.spec.GCMParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.io.IOException; import java.math.BigDecimal; import java.security.GeneralSecurityException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.util.Base64; import java.util.Date; import java.util.List; @@ -120,7 +105,7 @@ @Test public void addOrderRecord() { VIPPrice price = vipPriceService.selectByPrimaryKey("172a8327fcd3685ab3c0f740d031da09"); VIPOrderRecord record = new VIPOrderRecord(); OrderRecord record = new OrderRecord(); record.setMoney(price.getActualPrice()); record.setType(price.getType()); record.setUid(766693 + ""); @@ -134,7 +119,7 @@ @Test public void listRecord() { List<VIPOrderRecord> list = orderService.listOrderRecord(null, null, 1, 10); List<OrderRecord> list = orderService.listOrderRecord(null, null, 1, 10); long count = orderService.countOrderRecord(null, null); @@ -142,11 +127,11 @@ count = orderService.countOrderRecord(766693 + "", null); list = orderService.listOrderRecord(766693 + "", VIPOrderRecord.STATE_NOT_PAY, 1, 10); count = orderService.countOrderRecord(766693 + "", VIPOrderRecord.STATE_NOT_PAY); list = orderService.listOrderRecord(766693 + "", OrderRecord.STATE_NOT_PAY, 1, 10); count = orderService.countOrderRecord(766693 + "", OrderRecord.STATE_NOT_PAY); list = orderService.listOrderRecord(766693 + "", VIPOrderRecord.STATE_PAY, 1, 10); count = orderService.countOrderRecord(766693 + "", VIPOrderRecord.STATE_PAY); list = orderService.listOrderRecord(766693 + "", OrderRecord.STATE_PAY, 1, 10); count = orderService.countOrderRecord(766693 + "", OrderRecord.STATE_PAY); System.out.println(list); } @@ -154,7 +139,7 @@ @Test public void paySuccess() { // try { // vipService.paySuccess("",VIPOrderRecord.PAY_WAY_WX,new BigDecimal("14.8"),) // vipService.paySuccess("",OrderRecord.PAY_WAY_WX,new BigDecimal("14.8"),) // } catch (Exception e) { // e.printStackTrace(); // } @@ -196,7 +181,7 @@ @Test public void test3() throws Exception { VIPOrderRecord record = orderService.getOrderRecord("82"); OrderRecord record = orderService.getOrderRecord("82"); pptvVipManager.buyVIP(record); }