package com.platform.yijia.controller; import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.platform.yijia.dao.PayOrderMapper; import com.platform.yijia.param.request.PayOrderRequest; import com.platform.yijia.pojo.*; import com.platform.yijia.service.*; import com.platform.yijia.utils.CodeMsg; import com.platform.yijia.utils.ResultData; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.naming.ldap.HasControls; import java.math.BigDecimal; import java.util.*; @Controller @RequestMapping("/demo") public class PayOrderController { private static Logger logger =(Logger) LoggerFactory.getLogger(PayOrderController.class); @Resource private PayOrderService payOrderService; @Resource private AppUserInfoService appUserInfoService; @Resource private StationService stationService; @Resource private CustomerGradeServices customerGradeServices; @Resource private PayOrderMapper payOrderMapper; @Resource private ElectronicMembershipCardService electronicMembershipCardService; //一键支付,生成订单 @RequestMapping(value = "/AddPayOrderInfo", consumes = "application/json", method = RequestMethod.POST) @ResponseBody public String AddPayOrderInfo(@RequestBody PayOrderRequest payOrderRequest){ logger.info("获取订单前端传来参数openID:"+ payOrderRequest.getOpenId()); logger.info("获取订单前端传来参数userType:"+ payOrderRequest.getUserType()); Gson gson =new Gson(); ResultData resultData =null; //根据token 和登录类型 身份验证 AppUserInfo appUserInfo =new AppUserInfo(); //订单类型 是小程序还是公众号 appUserInfo.setUserType(payOrderRequest.getUserType()); if(payOrderRequest.getUserType().equals("1")){ //1 是公众号 appUserInfo.setBlogOpenid(payOrderRequest.getOpenId()); }else if(payOrderRequest.getUserType().equals("2")){ //2是小程序 appUserInfo.setMinaOpenid(payOrderRequest.getOpenId()); } List appUserInfoList =appUserInfoService.Authentication(appUserInfo); //判断登录人员是否验证成功 if(appUserInfoList!=null&&appUserInfoList.size()>0){ PayOrder payOrder=new PayOrder(); payOrder.setConsumer(appUserInfoList.get(0).getBlogNickName()); //昵称 payOrder.setConsumerId(appUserInfoList.get(0).getUserId()); //用户id //添加订单信息,返回订单号 String ordNo =payOrderService.AddPayOrderInfo(payOrderRequest, payOrder); if(ordNo.equals("0")){ resultData=ResultData.error(CodeMsg.CHECK_DATA); }else if(ordNo.equals("1")){ resultData=ResultData.error(CodeMsg.PARAMS_NUll); }else { resultData=ResultData.success(ordNo); } // //接口修订 // Map stringObjectMap = payOrderService.AddPayOrderInfoNew(payOrderRequest, payOrder); // if(stringObjectMap.containsKey("balanceNoEnough")){ // resultData=ResultData.error(CodeMsg.BALANCE_NOT_EENOUGH); // }else { // resultData = ResultData.success(stringObjectMap); // } }else{ //登录人验证失败 resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST); } return gson.toJson(resultData); } //小程序支付生成订单 @RequestMapping(value = "/AddPayOrderInfoNew", consumes = "application/json", method = RequestMethod.POST) @ResponseBody @Transactional public String AddPayOrderInfoNew(@RequestBody PayOrderRequest payOrderRequest){ logger.info("获取订单前端传来参数openId:"+ payOrderRequest.getOpenId()); logger.info("获取订单前端传来参数userType:"+ payOrderRequest.getUserType()); Gson gson =new Gson(); ResultData resultData =null; AppUserInfo appUserInfo =new AppUserInfo(); appUserInfo.setUserType(payOrderRequest.getUserType()); //订单类型 是小程序还是公众号 if(payOrderRequest.getUserType().equals("1")){ appUserInfo.setBlogOpenid(payOrderRequest.getOpenId()); //1 是公众号 }else if(payOrderRequest.getUserType().equals("2")){ appUserInfo.setMinaOpenid(payOrderRequest.getOpenId()); //2是小程序 } List appUserInfoList =appUserInfoService.Authentication(appUserInfo); Map resultMap = new HashMap<>(); //返回结果集 //判断登录人员是否验证成功 if(appUserInfoList!=null && appUserInfoList.size()>0){ PayOrder payOrder = new PayOrder(); payOrder.setConsumer(appUserInfoList.get(0).getBlogNickName()); //昵称 payOrder.setConsumerId(appUserInfoList.get(0).getUserId()); //用户id Random random = new Random(); String result=""; for(int i=0;i<6;i++){ result+=random.nextInt(10); } String ordNo=System.nanoTime()+result; payOrder.setOrderNo(ordNo); //订单号 logger.info("生成的订单号:" + ordNo); payOrder.setDiscountCouponAmt(payOrderRequest.getDiscountCouponAmt()); //优惠劵金额 payOrder.setDiscountCoupon(payOrderRequest.getDiscountCoupon()); //优惠券 payOrder.setCarNo(payOrderRequest.getCarNo()); //车牌号、 payOrder.setCustomerGrade(payOrderRequest.getCustomerGrade()); //客户电话 payOrder.setMemberNo(payOrderRequest.getMemberNo()); //会员卡号 payOrder.setMemberAmt(payOrderRequest.getMemberAmt()); //会员支付金额 //payOrder.setPrintCount(payOrderRequest.getPrintCount()); //小票数量 payOrder.setScore(payOrderRequest.getScore()); //积分 payOrder.setStationId(payOrderRequest.getStationId()); //油站id payOrder.setStatus("0"); //创建订单 未支付状态 0 if(StringUtils.isNotBlank(payOrderRequest.getUserType())){ String userType = payOrderRequest.getUserType(); //支付方式:02公众号,03小程序', switch (userType){ case "1": payOrder.setPayWay("02"); break; case "2": payOrder.setPayWay("03"); break; } } payOrder.setCreatedDate(new Date()); //创建时间 payOrder.setOrderType(payOrderRequest.getOrderType()); //订单类型 payOrder.setOilGun(payOrderRequest.getOilGun()); //油枪号 //根据油站和油枪获取加油员和油品价格 油站名称 HashMap params = new HashMap<>(); params.put("oliGunNo", payOrderRequest.getOilGun()); params.put("stationId", payOrderRequest.getStationId()); String oilPersonnel = ""; //使用list原因:一个枪号对应多个加油员场景 List mapResultList = payOrderMapper.selectPersonelName(params); if(mapResultList != null && mapResultList.size() > 0){ for (Map per : mapResultList){ if(per.containsKey("personelName") && per.get("personelName").toString() !=null && per.get("personelName").toString() !=""){ oilPersonnel += per.get("personelName").toString() +","; } } if(oilPersonnel !=""){ payOrder.setOilPersonnel(oilPersonnel.substring(0, oilPersonnel.length()-1)); //加油员 } if(mapResultList.get(0).containsKey("stationName") && mapResultList.get(0).get("stationName").toString() !="" && mapResultList.get(0).get("stationName").toString() !=null ){ payOrder.setStationName(mapResultList.get(0).get("stationName").toString()); //油站名称 } } String orderType = payOrderRequest.getOrderType(); //获取订单类型 if(orderType.equals("1")){ //订单类型是油品时计算 resultMap = this.calculateAmt(payOrderRequest); //计算油价 加油升数 优惠金额 实收金额 优惠价格 payOrder.setOilPirce(resultMap.get("oilPrice").toString()); payOrder.setOrderLiters(resultMap.get("oilLiters").toString()); payOrder.setDiscountAmt(Double.valueOf(resultMap.get("discountAmt").toString())); payOrder.setAmt(Double.valueOf(resultMap.get("amt").toString())); } payOrder.setReceivableAmt(payOrderRequest.getReceivableAmt()); //订单应收金额 String oilName =payOrderRequest.getOilName(); payOrder.setOilName(oilName); //油品名称 String cardOilsType =""; switch (oilName){ //根据油品名称存储油品类型 1.柴油 2 汽油 case "92#": payOrder.setOilType("2"); cardOilsType ="2"; break; case "95#": payOrder.setOilType("2"); cardOilsType ="2"; break; case "97#": payOrder.setOilType("2"); cardOilsType ="2"; break; case "0#": payOrder.setOilType("1"); cardOilsType ="1"; break; case "-10#": payOrder.setOilType("1"); cardOilsType ="1"; break; case "-20#": payOrder.setOilType("1"); cardOilsType ="1"; break; } payOrder.setOilType(orderType); //判断当前传来支付类型是电子卡支付 还是微信 if(payOrderRequest.getPayType().equals("wx")){ payOrder.setPayType("wx"); //支付类型 switch (orderType){ case "1": //油品 payOrderMapper.insertSelective(payOrder); resultMap.put("ordNo", ordNo); resultData = ResultData.success(resultMap); break; case "2": //非油品 Map m = stationService.getStationAppIdAndAppSecret(payOrderRequest.getStationId()); if(m.containsKey("stationName") && m.get("stationName") !=null){ payOrder.setStationName(m.get("stationName")); } payOrder.setAmt(Double.valueOf(payOrderRequest.getReceivableAmt())); //非油品金额 payOrder.setDiscountAmt(Double.valueOf(0)); //优惠金额 payOrder.setOilPirce(payOrderRequest.getReceivableAmt().toString()); //非油品价格 payOrder.setOrderLiters("0"); resultMap.put("discountAmt", "0"); //优惠价格 resultMap.put("amt", payOrderRequest.getReceivableAmt()); //实收价格 resultMap.put("receivableAmt", payOrderRequest.getReceivableAmt()); //应收价格 resultMap.put("oilLiters", "0"); resultMap.put("discountPrice", "0"); payOrderMapper.insertSelective(payOrder); resultMap.put("ordNo", ordNo); resultData = ResultData.success(resultMap); break; } }else if(payOrderRequest.getPayType().equals("dzk")){ //电子会员卡 payOrder.setPayType("dzk"); //支付类型 payOrder.setPayDate(new Date()); //支付时间 payOrder.setReceivedAmt(Double.valueOf(resultMap.get("amt").toString())); //实收金额 CustomerCardUseRecord customerCardUseRecord = new CustomerCardUseRecord(); //电子会员卡插入消费记录 BigDecimal balance = null; //电子会员卡余额 payOrder.setDzkAmt(Double.valueOf(resultMap.get("amt").toString())); //订单电子会员卡消费金额 CustomerElectronicCard customerElectronicCard = new CustomerElectronicCard(); customerElectronicCard.setCardOilsType(cardOilsType); customerElectronicCard.setMinaOpenid(payOrderRequest.getOpenId()); customerElectronicCard.setStationId(payOrderRequest.getStationId()); //获取用户电子会员卡信息 CustomerElectronicCard cardInfo = electronicMembershipCardService.getElectronicCardInfoByMinaOpenId(customerElectronicCard); if(cardInfo !=null ){ customerCardUseRecord.setOrderNo(ordNo); //电子会员卡记录订单号 customerCardUseRecord.setUnionId(cardInfo.getUnionId()); //电子会员卡记录用户唯一标识 customerCardUseRecord.setCustomerNo(cardInfo.getCustomerNo()); customerCardUseRecord.setAmt(new BigDecimal(resultMap.get("amt").toString())); //电子会员卡记录用户余额 customerCardUseRecord.setStatus("1"); customerCardUseRecord.setCardOilsType(cardInfo.getCardOilsType()); customerCardUseRecord.setBalance(cardInfo.getAmt().subtract(new BigDecimal(resultMap.get("amt").toString()))); customerCardUseRecord.setStationName(cardInfo.getStationName()); customerCardUseRecord.setStationId(cardInfo.getStationId()); customerCardUseRecord.setUsageType("-"); customerCardUseRecord.setCustomerName(payOrder.getConsumer()); customerCardUseRecord.setCreateTime(new Date()); balance = cardInfo.getAmt(); } //判断订单金额是否小于电子会员卡的余额 if(balance !=null && customerCardUseRecord.getAmt().compareTo(balance) == -1){ electronicMembershipCardService.insetCardUseRecord(customerCardUseRecord); //更新电子会员卡余额 CustomerElectronicCard c = new CustomerElectronicCard(); c.setAmt(balance.subtract(customerCardUseRecord.getAmt())); c.setUnionId(customerCardUseRecord.getUnionId()); c.setStationId(customerCardUseRecord.getStationId()); c.setCardOilsType(cardOilsType); electronicMembershipCardService.updateElectronicCardInfoByUnionId(c); payOrder.setStatus("1"); payOrderMapper.insertSelective(payOrder); resultMap.put("ordNo", ordNo); resultData = ResultData.success(resultMap); }else { resultData=ResultData.error(CodeMsg.BALANCE_NOT_EENOUGH); } } }else{ //登录人验证失败 resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST); } return gson.toJson(resultData); } /*** * 计算订单金额 * @return */ public Map calculateAmt(PayOrderRequest payOrderRequest){ Map resultMap = new HashMap<>(); if(payOrderRequest.getReceivableAmt() !=null){ //应收金额 Double receivableAmt = payOrderRequest.getReceivableAmt(); //应收金额 用户输入的金额 Integer stationId = payOrderRequest.getStationId(); //油站ID //String oilGun = payOrderRequest.getOilGun(); //油枪号 String oilName = payOrderRequest.getOilName(); //油品名称 String openId = payOrderRequest.getOpenId(); //用户的openId String mobilePhone = payOrderRequest.getCustomerPhone(); //客户手机号 //获取油品价格 StationOilPrice stationOilPrice = new StationOilPrice(); stationOilPrice.setStationId(stationId); stationOilPrice.setOilName(oilName); StationOilPrice oilPriceInfo = stationService.getStationOilPrice(stationOilPrice); String oilPrice = oilPriceInfo.getOilPrice(); BigDecimal oilLiters = null; BigDecimal discountAmt =null; BigDecimal discountPrice = null; BigDecimal amt = null; resultMap.put("oilPrice", oilPrice); //油品价格 resultMap.put("receivableAmt", receivableAmt); //应收价格 //该油站的优惠方式 String stationDiscountWay = stationService.getStationDiscountWay(stationId.toString()); Map params = new HashMap(); params.put("stationId", stationId); params.put("oilName", oilName); BigDecimal receivableAmt_b = new BigDecimal(receivableAmt); //传入的应收金额 switch (stationDiscountWay){ case "1": //1.等级直降 //查询等级直降的优惠方式 params.put("mobilePhone", mobilePhone); params.put("minaOpenid", openId); //查询客户等级信息 List> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params); if(customerGradeInfo != null && customerGradeInfo.size() >0){ //已存在客户等级信息 //使用客户已存在的等级计算优惠 oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP); discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString())); discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); amt = receivableAmt_b.subtract(discountAmt); discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); resultMap.put("discountAmt", discountAmt.doubleValue()); resultMap.put("amt", amt.doubleValue()); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", discountPrice.doubleValue()); }else { //不存在客户等级信息时,查询油站的客户等级直降优惠(查询结果根据会员成长值条件做升序查询) List customerGradeList = customerGradeServices.getCustomerGradeList(params); //如果存在 if(customerGradeList !=null && customerGradeList.size() >0){ //用户第一次购买 取等级最低初始会员的优惠条件计算 oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); //加油升数 discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString())); discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); amt = receivableAmt_b.subtract(discountAmt); discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); resultMap.put("discountAmt", discountAmt.doubleValue()); resultMap.put("amt", amt.doubleValue()); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", discountPrice.doubleValue()); }else { //不存在 resultMap.put("discountAmt", 0); resultMap.put("amt", receivableAmt.doubleValue()); oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", oilPrice); } } break; case "2": //2.满减 params.put("discountPlanType", "1"); //营销方案 List customerMarkertPlanList_1 = customerGradeServices.getCustomerMarkertPlanList(params); //有优惠规则 if(customerMarkertPlanList_1 !=null && customerMarkertPlanList_1.size() >0){ boolean flag = true; for (Map m : customerMarkertPlanList_1){ //如果当前应收金额大于条件金额 BigDecimal discountAmt_b = new BigDecimal(m.get("discountAmt").toString()); //条件金额 if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){ BigDecimal gasoilDiscountAmt_b = new BigDecimal(m.get("gasoilDiscountAmt").toString()); //每满多少优惠多少的金额 discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b); //优惠金额 discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); amt = receivableAmt_b.subtract(discountAmt); //实收金额 oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP); //加油升数 discountPrice = amt.divide(oilLiters); //优惠价格 resultMap.put("discountAmt", discountAmt.doubleValue()); resultMap.put("amt", amt.doubleValue()); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", discountPrice.doubleValue()); flag = false; break; } } if(flag){ resultMap.put("discountAmt", 0); resultMap.put("amt", receivableAmt.doubleValue()); oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", oilPrice); } }else { //没有优惠规则 resultMap.put("discountAmt", 0); resultMap.put("amt", receivableAmt.doubleValue()); oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", oilPrice); } break; case "3": //3.立减 params.put("discountPlanType", "2"); //营销方案 List customerMarkertPlanList_2 = customerGradeServices.getCustomerMarkertPlanList(params); if(customerMarkertPlanList_2 !=null && customerMarkertPlanList_2.size() >0){ boolean flag = true; for (Map m : customerMarkertPlanList_2){ //如果当前应收金额大于条件金额 BigDecimal discountAmt_b = new BigDecimal(m.get("discountAmt").toString()); //条件金额 if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){ BigDecimal gasoilDiscountAmt_b = new BigDecimal(m.get("gasoilDiscountAmt").toString()); //每满多少优惠多少的金额 discountAmt = gasoilDiscountAmt_b; //优惠金额 amt = receivableAmt_b.subtract(gasoilDiscountAmt_b); //实收金额 oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); //加油升数 discountPrice = amt.divide(oilLiters); //优惠价格 resultMap.put("discountAmt", discountAmt.doubleValue()); resultMap.put("amt", amt.doubleValue()); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", discountPrice.doubleValue()); flag = false; break; } } if(flag){ //用户加油金额不符合优惠条件 resultMap.put("discountAmt", 0); resultMap.put("amt", receivableAmt.doubleValue()); oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", oilPrice); } }else { //没有优惠规则 resultMap.put("discountAmt", 0); resultMap.put("amt", receivableAmt.doubleValue()); oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", oilPrice); } break; case "4": //4.独立直降 params.put("discountPlanType", "3"); //营销方案 List customerMarkertPlanList_3 = customerGradeServices.getCustomerMarkertPlanList(params); if(customerMarkertPlanList_3 !=null && customerMarkertPlanList_3.size() >0){ boolean flag= true; for(Map m : customerMarkertPlanList_3){ BigDecimal discountAmt_b = new BigDecimal(m.get("discountAmt").toString()); //条件金额 BigDecimal gasoilDiscountAmt_b = new BigDecimal(m.get("gasoilDiscountAmt").toString()); oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); //加油升数 if(m.get("discountTerm").toString().equals("1")){ //按升数优惠 if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){ //计算 discountAmt = oilLiters.multiply(gasoilDiscountAmt_b); discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); amt = receivableAmt_b.subtract(discountAmt); discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格 resultMap.put("discountAmt", discountAmt.doubleValue()); resultMap.put("amt", amt.doubleValue()); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", discountPrice.doubleValue()); flag =false; break; } }else if(m.get("discountTerm").toString().equals("2")){ //按金额优惠 if(receivableAmt_b.compareTo(discountAmt_b) ==1 || receivableAmt_b.compareTo(discountAmt_b) ==0){ discountAmt = oilLiters.multiply(gasoilDiscountAmt_b); discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); amt = receivableAmt_b.subtract(discountAmt); discountPrice = amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); //优惠价格 resultMap.put("discountAmt", discountAmt.doubleValue()); resultMap.put("amt", amt.doubleValue()); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", discountPrice.doubleValue()); flag =false; break; } } } if(flag){ resultMap.put("discountAmt", 0); resultMap.put("amt", receivableAmt.doubleValue()); oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", oilPrice); } }else { //没有优惠规则 resultMap.put("discountAmt", 0); resultMap.put("amt", receivableAmt.doubleValue()); oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_HALF_UP); resultMap.put("oilLiters", oilLiters.doubleValue()); resultMap.put("discountPrice", oilPrice); } break; } //resultData = ResultData.success(resultMap); } return resultMap; } /** * 根据订单号获取订单信息 * produces="application/json;charset=UTF-8",consumes = "application/json", * @RequestBody String orderno * @param * @return */ @RequestMapping(value = "/getPayOrderList", method = RequestMethod.GET) @ResponseBody public String getPayOrderList(@RequestParam String orderNo,String openId,String userType){ Gson gson =new Gson(); ResultData resultData =null; //根据token 和 usertype来判断用户是否存在 boolean flag = appUserInfoService.selectAppUserInfo(openId,userType); if(flag){ if(StringUtils.isNotBlank(orderNo)){ PayOrderRequest payOrderRequest =new PayOrderRequest(); payOrderRequest.setOrderNo(orderNo); List payOrderList = payOrderService.getPayOrderList(payOrderRequest.getOrderNo()); resultData=ResultData.success(payOrderList); }else { resultData=ResultData.error(CodeMsg.SEARCH_FAIL); } }else{ resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST); } return gson.toJson(resultData); } /* * 根据用户openId和用户类型userType查询用户订单 * @param openId * @param userType * @return */ @RequestMapping(value = "/getOrderListByOpenIdAndUserType", method = RequestMethod.GET) @ResponseBody public String getOrderListByOpenIdAndUserType(@RequestParam("openId") String openId, @RequestParam("userType") String userType){ Gson gson =new Gson(); ResultData resultData =null; if(StringUtils.isNotBlank(openId) && StringUtils.isNotBlank(userType)){ AppUserInfo appUserInfo = new AppUserInfo(); switch (userType){ case "1": appUserInfo.setBlogOpenid(openId); break; case "2": appUserInfo.setMinaOpenid(openId); break; } List payOrderList = payOrderService.getOrderListByOpenIdAndUserType(appUserInfo); resultData=ResultData.success(payOrderList); }else { resultData=ResultData.error(CodeMsg.SEARCH_FAIL); } return gson.toJson(resultData); } }