Commit 9ded255c by chongli

小程序赛事相关接口和调试

parent 3c84a98b
......@@ -45,11 +45,7 @@ public abstract class AbstractOrderController<H extends AbstractOrderBean<T>, T,
@RequestMapping(value = "/placeOrderWeiXinPay", method = RequestMethod.POST)
public Response<JSONObject> placeOrderWeiXinPay(@RequestBody Request<H> request) {
Response<JSONObject> response = new Response<JSONObject>();
try {
response = this.getOrderService().placeOrderWeiXinPay(request.getBody());
} catch (Exception e) {
e.printStackTrace();
}
response = this.getOrderService().placeOrderWeiXinPay(request.getBody());
return response;
}
......
......@@ -23,6 +23,7 @@ import com.ctrip.fun.common.vo.order.EventActivityOrderResourceBean;
import com.ctrip.fun.common.vo.order.LatestOnGoingOrderOverTimeInfoQuery;
import com.ctrip.fun.common.vo.order.LatestOnGoingOrderOverTimeInfoResponseBean;
import com.ctrip.fun.common.vo.order.OrderStatusEnum;
import com.ctrip.fun.common.vo.product.EventActivityCheckQuery;
import com.ctrip.fun.golf.domain.order.Order;
import com.ctrip.fun.golf.service.order.AbstractOrderService;
import com.ctrip.fun.golf.service.order.EventActivityOrderService;
......@@ -65,4 +66,16 @@ public class EventActivityOrderController extends AbstractOrderController<EventA
return response;
}
}
@ResponseBody
@RequestMapping(value = "/checkHasWaittingDealOrders", method = RequestMethod.POST)
public Response<String> checkHasWaittingDealOrders(@RequestBody Request<EventActivityCheckQuery> request) {
Response<String> response = new Response<String>();
response.setStatus(ResponseStatusEnum.SUCCESS.getValue());
response.setBody(eventActivityOrderService.checkHasWaittingDealOrders(request.getBody()));
response.setMessage("");
return response;
}
}
......@@ -736,7 +736,34 @@ public class OrderDao extends GenericHibernateDao<Order, Integer> {
criteria.add(Restrictions.in("orderId", orderIds));
return criteria.list();
}
//查询某个人在某个资源、某个时间、包含有指定打球人的待支付订单的id
public List<Order> queryEventActivityWaittingDealOrders(Date priceDate, String uid, int resourceId,List<String> mobileNos) {
StringBuffer sqlBuffer = new StringBuffer("SELECT DISTINCT orderId from ord_customerinfo where OrderID in (");
sqlBuffer.append("SELECT a.OrderID from ord_order a LEFT JOIN ord_eventactivityorderitem b on a.OrderID=b.orderId ");
sqlBuffer.append("where a.uid=:uid and resourceId=:resourceId and playDate=:playDate and a.ProcessStatus&64<>64 and a.ProcessStatus&16<>16");
sqlBuffer.append(") and MobileNo in (:mobileNos)");
Session session = this.getSession();
Query query = session.createSQLQuery(sqlBuffer.toString());
query.setParameter("uid", uid);
query.setParameter("resourceId", resourceId);
query.setParameter("playDate", priceDate);
query.setParameterList("mobileNos", mobileNos);
query.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
List<Map<String, Object>> list = query.list();
if (list == null || list.isEmpty()) {
return null;
}
List<Integer> orderIds = new ArrayList<Integer>();
for (Map<String, Object> map : list) {
orderIds.add((Integer) map.get("orderId"));
}
Criteria criteria = this.getCriteria();
criteria.add(Restrictions.in("orderId", orderIds));
return criteria.list();
}
public List<Order> queryEventActivityOrders(Date priceDate, String uid, int resourceId) {
// String sql = "select t.orderId from ord_eventactivityorderitem t where t.playDate=:playDate and t.resourceId=:resourceId";
......
......@@ -26,12 +26,13 @@ public class WeiXinAtcion {
* @param refund_fee1 计划退款的金额(以“元”为单位)
* @throws Exception
*/
public static Map<String, String> wechatRefund(String out_trade_no,int all_total_fee,int refund_fee) throws Exception{
public static Map<String, String> wechatRefund(String out_trade_no,int all_total_fee,int refund_fee,String notify_url) throws Exception{
SortedMap<Object, Object> packageParams = new TreeMap<Object, Object>();
packageParams.put("appid",Configure.getAppID());
packageParams.put("mch_id",Configure.getMch_id());
packageParams.put("op_user_id",Configure.getMch_id());
packageParams.put("nonce_str", WXUtil.generate());
packageParams.put("notify_url", notify_url);
packageParams.put("out_trade_no", out_trade_no);
packageParams.put("out_refund_no", WXUtil.generate());
packageParams.put("total_fee",String.valueOf(all_total_fee));
......@@ -96,6 +97,7 @@ public class WeiXinAtcion {
result.put("signType", "MD5");
result.put("paySign", WXUtil.createSign_ChooseWXPay("UTF-8", params, Configure.getKey()));
result.put("return_code", "Success");
result.put("orderNo", out_trade_no);
}else {
result.put("return_code", "Fail");
result.put("return_msg", map.get("fail"));
......
......@@ -228,7 +228,7 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
return null;
}
public Response<JSONObject> placeOrderWeiXinPay(H abstractOrderBean) throws Exception{
public Response<JSONObject> placeOrderWeiXinPay(H abstractOrderBean){
this.checkParameters(abstractOrderBean);
if (this.beforePlaceOrder(abstractOrderBean)) {
this.adjustOrderPayAmount(abstractOrderBean);
......@@ -1139,9 +1139,6 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
this.checkPrePayCard(order);
this.checkVoucher(order);
Response<JSONObject> response = new Response<JSONObject>();
response.setStatus(0);
response.setMessage("异常");
BigDecimal invoiceAmount = order.getInvoiceAmount() == null ? new BigDecimal(0) : order.getInvoiceAmount();
BigDecimal postageAmount = order.getPostageAmount() == null ? new BigDecimal(0) : order.getPostageAmount();
......@@ -1156,6 +1153,8 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
try {
jSONObject = WeiXinAtcion.weixinPlay(userExt.getMiniAppOpenId(),needPayAmount.multiply(new BigDecimal("100")).intValue(), order.getOrderNo()+"", this.getNotifyUrlForWeiXinPay(order), "dingqiu");
} catch (Exception e) {
response.setStatus(ResponseStatusEnum.FAIL.getValue());
response.setMessage("支付异常");
e.printStackTrace();
}
if ("Success".equals(jSONObject.get("return_code").toString())) {
......@@ -1216,11 +1215,11 @@ public abstract class AbstractOrderService<H extends AbstractOrderBean<T>, T> ex
createAndSendInsureRequest(abstractOrderBean, order);
order.setInsuranceStatus(OrderInsuranceStatusEnum.INSURED.getValue());
}
//更新vip会员信息
this.updateVipmemberInfo(order);
this.getOrderDao().update(order);
response.setStatus(ResponseStatusEnum.SUCCESS.getValue());
response.setMessage("请求成功");
return response;
}
......
......@@ -560,6 +560,17 @@ public class EventActivityOrderService extends
return true;
}
public String checkHasWaittingDealOrders(EventActivityCheckQuery query){
int resourceId = query.getResourceId();
Date priceDate = DateUtil.parseDate(query.getPriceDate());
List<Order> list = this.getOrderDao().queryEventActivityWaittingDealOrders(priceDate, query.getUid(), resourceId, query.getPlayers());
if(list!=null&&list.size()>0){
return list.get(0).getOrderNo()+"";
}
return "";
}
private boolean checkRealTimeTeeTime(EventActivityOrderBean eventActivityOrderBean) {
if (eventActivityOrderBean.getRealTimeTeeTimeType() == null) {
// 老版本没有实时TeeTime字段
......
......@@ -4,6 +4,10 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -62,13 +66,15 @@ public class UserOrderBehaviourStatisticsDaoTest {
}
@Test
public void testOrderUpdate() {
String xml = "<xml><appid><![CDATA[wx51a2695abf1a0b12]]></appid><bank_type><![CDATA[CFT]]></bank_type><cash_fee><![CDATA[1]]></cash_fee><fee_type><![CDATA[CNY]]></fee_type><is_subscribe><![CDATA[N]]></is_subscribe><mch_id><![CDATA[1276126201]]></mch_id><nonce_str><![CDATA[b4b7c21fcf674c07bf958ca7277fc8e4]]></nonce_str><openid><![CDATA[orY7M4s7zl49RM76YW406I1pJBtg]]></openid><out_trade_no><![CDATA[15366316128222]]></out_trade_no><result_code><![CDATA[SUCCESS]]></result_code><return_code><![CDATA[SUCCESS]]></return_code><sign><![CDATA[A3B1178255A110BE36755D67DE1521B1]]></sign><time_end><![CDATA[20180911100700]]></time_end><total_fee>1</total_fee><trade_type><![CDATA[JSAPI]]></trade_type><transaction_id><![CDATA[4200000167201809117404876092]]></transaction_id></xml>";
try {
eventActivityNotifyService.notifyForWeiXinPay(xml);
} catch (Exception e) {
e.printStackTrace();
}
public void testOrderUpdate() throws Exception {
List<String> mobileNos = new ArrayList<String>();
mobileNos.add("15555555555");
mobileNos.add("18014006769");
DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd");
Date myDate2 = dateFormat2.parse("2018-09-24");
List<Order> list = orderDao.queryEventActivityWaittingDealOrders(myDate2, "15555555555", 104123, mobileNos);
System.out.println(list.size());
}
@Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment