订单信息

This commit is contained in:
cun-nan 2023-12-06 18:36:10 +08:00
parent 19fc2fdb2b
commit 31c8f79bc9
22 changed files with 560 additions and 75 deletions

View File

@ -4,6 +4,10 @@ import com.fuint.api.fuyou.service.FyPayService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
@RestController
@ -37,6 +41,26 @@ public class FyPayController {
return map;
}
// 接收支付平台异步通知的接口
@PostMapping("/notify")
public String notifyUrl(@RequestBody HttpServletRequest request,@RequestBody HttpServletResponse response) {
System.out.println(request+"111");
System.out.println(response+"222");
// Map paramMap = new HashMap<>();
// Enumeration parameterNames = request.getParameterNames();
// while(parameterNames.hasMoreElements()) {
// String parameterName = (String) parameterNames.nextElement();
// paramMap.put(parameterName, request.getParameter(parameterName));
// }
// boolean isSuccess = processNotify(paramMap); // 处理支付结果并返回成功或失败状态
// if(isSuccess) {
// return "success"; // 返回成功状态通知支付平台异步通知已成功接收
// } else {
// return "fail"; // 返回失败状态通知支付平台异步通知已失败
// }
return "11111111";
}
/**
* 退款 成功 result_msg 显示success
* result_code显示000000

View File

@ -38,7 +38,7 @@ public class Builder {
Calendar calendar = Calendar.getInstance();
// sdf_no.format(calendar.getTime()) + (int) (random.nextDouble() * 100000)
map.put("mchnt_order_no", "");
map.put("curr_type", "");
map.put("curr_type", "CNY");
map.put("order_amt", "1");
map.put("term_ip", Const.term_ip);
SimpleDateFormat sdf_ts = new SimpleDateFormat("yyyyMMddHHmmss");
@ -71,6 +71,49 @@ public class Builder {
return map;
}
/**
* 小程序
*
* @return
*/
public static Map<String, String> buildFuiou23() {
Map<String, String> map = new HashMap<>();
map.put("version", Const.version);
map.put("ins_cd", Const.ins_cd);
map.put("mchnt_cd", Const.mchnt_cd);
map.put("term_id", Const.term_id);
map.put("random_str", randomNumberGenerator.nextBytes().toHex());
map.put("sign", "");
map.put("goods_des", Const.goods_des);
map.put("goods_detail", "");
map.put("goods_tag", "");
map.put("product_id", "");
map.put("addn_inf", "");
map.put("mchnt_order_no", "");
map.put("curr_type", "CNY");
map.put("openid", "");
map.put("order_amt", "1");
map.put("term_ip", Const.term_ip);
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf_ts = new SimpleDateFormat("yyyyMMddHHmmss");
map.put("txn_begin_ts",sdf_ts.format(calendar.getTime()));
map.put("notify_url", Const.notify_url);
map.put("limit_pay", "");
map.put("trade_type", Const.trade_type);
map.put("sub_openid", "");
map.put("sub_appid", Const.sub_appid);
map.put("reserved_expire_minute", "1");
map.put("reserved_fy_term_id", "");
map.put("reserved_fy_term_type", "");
map.put("reserved_txn_bonus", "");
map.put("reserved_fy_term_sn", "");
map.put("reserved_device_info", "");
return map;
}
/**
* 退款
*

View File

@ -35,18 +35,23 @@ public class Const {
public static String auth_code = "";
// 交易关闭时间
public static Integer reserved_expire_minute = 1;
// 小程序appid
public static String sub_appid = "wxba517a9bac38fe92";
// 订单类型 小程序等
public static String trade_type = "LETPAY";
//机构公钥
public static String INS_PUBLIC_KEY="";
//异步通知(回调地址)
// public static String notify_url = "https://www.fuint.cn/fuint-application/clientApi/pay/aliPayCallback";
public static String notify_url = "http://www.wrx.cn";
//下单
public static String fuiou_21_url = "https://fundwx.fuiou.com/preCreate";
//扫码
public static String fuiou_22_url = "https://fundwx.fuiou.com/micropay";
//公众号/服务窗统一下单
//公众号/服务窗/小程序统一下单
public static String fuiou_23_url = "https://fundwx.fuiou.com/wxPreCreate";
//退款
public static String fuiou_24_url = "https://fundwx.fuiou.com/commonRefund";

View File

@ -17,6 +17,13 @@ public interface FyPayService {
*/
public Map<String, String> queryOrder(Map<String, String> map) throws Exception;
/**
* 小程序
* @return
* @throws Exception
*/
public Map<String, String> applet(Map<String, String> map) throws Exception;
/**
* 退款
* @return

View File

@ -11,6 +11,7 @@ import com.fuint.api.fuyou.entity.MerchantConfig;
import com.fuint.api.fuyou.entity.Message;
import com.fuint.api.fuyou.service.FyPayService;
import com.fuint.api.fuyou.service.MerchantConfigService;
import com.fuint.api.fuyou.util.HttpUtils;
import com.fuint.api.fuyou.util.Utils;
import com.fuint.business.integral.service.IntegralOrdersService;
import com.fuint.business.marketingActivity.cardFavorable.entity.CardFavorableRecord;
@ -19,14 +20,16 @@ import com.fuint.business.marketingActivity.cardFule.service.CardFuelRecordServi
import com.fuint.business.marketingActivity.cardValue.service.CardValueRecordService;
import com.fuint.business.order.entity.*;
import com.fuint.business.order.service.*;
import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.TokenUtil;
import io.swagger.models.auth.In;
import lombok.extern.slf4j.Slf4j;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.net.URLDecoder;
import javax.annotation.Resource;
import java.net.URLEncoder;
import java.util.*;
@Service
@ -297,6 +300,45 @@ public class FyPayServiceImpl implements FyPayService {
return resMap;
}
@Override
public Map<String, String> applet(Map<String, String> map1) throws Exception {
String publicKey = map1.get("publicKey");
String privateKey = map1.get("privateKey");
Const.INS_PUBLIC_KEY = publicKey;
Const.INS_PRIVATE_KEY = privateKey;
String orderNo = map1.get("orderNo");
String payType = "WECHAT";
String allAmount = map1.get("allAmount");
String insCd = map1.get("insCd");
String mchntCd = map1.get("mchntCd");
String goodsDes = map1.get("goodsDes");
Map<String, String> map = Builder.buildFuiou23();
map.put("mchnt_order_no",orderNo);
map.put("order_type",payType);
map.put("order_amt", allAmount);
map.put("ins_cd", insCd);
map.put("mchnt_cd", mchntCd);
map.put("goods_des", goodsDes);
map.put("openid", map1.get("openId"));
// 请求报文
String reqBody = Message.requestMsg(map);
// 响应报文
String rspXml = Message.responseMsg(reqBody,Const.fuiou_23_url);
System.out.println("1+"+reqBody);
System.out.println("2+"+rspXml);
//响应报文验签
Map<String, String> resMap = Utils.xmlStr2Map(rspXml);
String str = resMap.get("sign");
if (Utils.verifySign(resMap, str)){
}
System.out.println(resMap);
return resMap;
}
@Override
public Map<String, String> refund(Map<String, String> map1) throws Exception {
String orderNo = map1.get("orderNo");

View File

@ -0,0 +1,79 @@
package com.fuint.api.fuyou.util;
import com.fuint.api.fuyou.entity.Const;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class HttpUtils {
/**
* 发送 post请求访问本地应用并根据传递参数不同返回不同结果
*/
public void post(String url, Map<String, String> map, StringBuffer result) {
// 创建默认的httpClient实例.
CloseableHttpClient httpclient = HttpClients.createDefault();
// 创建httppost
HttpPost httppost = new HttpPost(url);
// 创建参数队列
List<NameValuePair> formparams = new ArrayList<>();
Iterator it=map.keySet().iterator();
while(it.hasNext()){
String key;
String value;
key=it.next().toString();
value=map.get(key);
formparams.add(new BasicNameValuePair(key, value));
}
UrlEncodedFormEntity uefEntity;
try {
uefEntity = new UrlEncodedFormEntity(formparams, Const.charset);
httppost.setEntity(uefEntity);
System.out.println("提交请求 " + httppost.getURI());
CloseableHttpResponse response = httpclient.execute(httppost);
try {
HttpEntity entity = response.getEntity();
if (entity != null && result != null) {
result.append(EntityUtils.toString(entity, Const.charset));
}
// 打印响应状态
System.out.println(response.getStatusLine());
} finally {
response.close();
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 关闭连接,释放资源
try {
httpclient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

View File

@ -0,0 +1,48 @@
package com.fuint.api.rocketMQ.test;
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.client.producer.SendStatus;
import org.apache.rocketmq.common.message.Message;
import java.util.concurrent.TimeUnit;
/**
* 发送同步消息
*/
public class SyncProducer {
public static void main(String[] args) throws Exception {
//1.创建消息生产者producer并制定生产者组名
DefaultMQProducer producer = new DefaultMQProducer("group1");
//2.指定Nameserver地址
producer.setNamesrvAddr("39.104.58.101:9876");
//3.启动producer
producer.start();
for (int i = 0; i < 10; i++) {
//4.创建消息对象指定主题TopicTag和消息体
/**
* 参数一消息主题Topic
* 参数二消息Tag
* 参数三消息内容
*/
Message msg = new Message("springboot-mq", "Tag1", ("Hello World" + i).getBytes());
//5.发送消息
SendResult result = producer.send(msg);
//发送状态
SendStatus status = result.getSendStatus();
System.out.println("发送结果:" + result);
//线程睡1秒
TimeUnit.SECONDS.sleep(1);
}
//6.关闭生产者producer
producer.shutdown();
}
}

View File

@ -74,6 +74,17 @@ public class OilOrderController extends BaseController {
return getSuccessResult(order);
}
/**
* 小程序支付接口
* @param map
* @return
*/
@PostMapping("/appletPay")
public ResponseObject appletPay(@Validated @RequestBody Map<String,String> map){
orderService.appletPay(map);
return getSuccessResult("success");
}
/**
* 根据订单号查询订单信息
* @param map

View File

@ -1,6 +1,7 @@
package com.fuint.business.order.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fuint.framework.entity.BaseEntity;
@ -117,6 +118,10 @@ public class OilOrder extends BaseEntity implements Serializable {
* 订单备注
*/
private String remark;
/**
* 油罐id
*/
@TableField(exist = false)
private Integer tankId;
}

View File

@ -72,6 +72,12 @@ public interface OilOrderService extends IService<OilOrder> {
*/
public String addOilOrder(OilOrder oilOrder);
/**
* 小程序订单支付
* @param map
*/
public void appletPay(Map<String,String> map);
/**
* 添加油品跟踪信息
* @param oilOrder
@ -79,6 +85,13 @@ public interface OilOrderService extends IService<OilOrder> {
*/
public void addOilTrack(JSONObject oilOrder, Integer storeId);
/**
* 添加油品跟踪信息
* @param oilOrder
* @param storeId
*/
public void addOilTracks(OilOrder oilOrder,Integer storeId);
/**
* 添加油品订单信息
* @param order

View File

@ -18,11 +18,15 @@ import com.fuint.business.order.mapper.OilOrderMapper;
import com.fuint.business.order.service.*;
import com.fuint.business.order.vo.OilOrderVo;
import com.fuint.business.petrolStationManagement.entity.OilName;
import com.fuint.business.petrolStationManagement.entity.OilNumber;
import com.fuint.business.petrolStationManagement.entity.OilTank;
import com.fuint.business.petrolStationManagement.entity.OilTracking;
import com.fuint.business.petrolStationManagement.service.OilNameService;
import com.fuint.business.petrolStationManagement.service.OilNumberService;
import com.fuint.business.petrolStationManagement.service.OilTankService;
import com.fuint.business.petrolStationManagement.service.OilTrackingService;
import com.fuint.business.storeInformation.entity.LJStore;
import com.fuint.business.storeInformation.service.ILJStoreService;
import com.fuint.business.userManager.entity.LJUser;
import com.fuint.business.userManager.entity.LJUserGrade;
import com.fuint.business.userManager.entity.UserBalance;
@ -146,7 +150,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
// 会员id
userId = Integer.valueOf(map.get("userId"));
this.insertCardBalance(consumeAmount,userId);
this.insertCardBalance(consumeAmount,userId,storeId);
}
// 优惠券id
Integer couponId = null;
@ -271,7 +275,7 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
}
if (userId!=null){
this.updateGrowthValue(oilActualPay, userId, Integer.valueOf(jsonObjects.get(i).get("oilName").toString()),refuelMoney);
this.updateGrowthValue(oilActualPay, userId, Integer.valueOf(jsonObjects.get(i).get("oilName").toString()),refuelMoney,storeId);
}
order.setStoreId(storeId);
order.setUserId(userId);
@ -378,6 +382,64 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
return orderNo;
}
@Override
public void appletPay(Map<String, String> map) {
String orderNo = map.get("orderNo");
// 支付金额
Integer payAmount = (int) (Double.valueOf(map.get("payAmount"))*100);
// 优惠金额
String discountAmount = map.get("discountAmount");
// 囤油卡消费后的信息
String oilCardAmount = map.get("oilCardAmount");
// 储值卡消费金额
String balanceAmount = map.get("balanceAmount");
Integer tankId = Integer.valueOf(map.get("tankId"));
// 根据订单号查询订单信息
OilOrder oilOrder = this.selectOilOrderByOrderNo(orderNo);
oilOrder.setTankId(tankId);
if (!map.get("payAmount").equals("0")) {
// 调用支付接口
// 判断是否开启支付规则
List<MerchantConfig> list = merchantConfigService.selectMeChByIsOpen();
if (list.size() > 0) {
oilConfigService.oilRule();
}
// 根据店铺id查询商户配置信息
MerchantConfig merchantConfig = merchantConfigService.selectMeChByIsUse("1");
LJUserVo userVo = userService.selectUserById(oilOrder.getUserId());
// 处理支付需要的数据
Map<String, String> map1 = new HashMap<>();
map1.put("allAmount", payAmount.toString());
map1.put("orderNo", oilOrder.getOrderNo());
map1.put("insCd", merchantConfig.getInsCd());
map1.put("mchntCd", merchantConfig.getMchntCd());
map1.put("goodsDes", oilOrder.getOils() + oilOrder.getOilGunNum());
map1.put("publicKey", merchantConfig.getPublicKey());
map1.put("privateKey", merchantConfig.getPrivateKey());
map1.put("discountAmount", discountAmount);
map1.put("oilCardAmount", oilCardAmount);
map1.put("balanceAmount", balanceAmount);
map1.put("openId", userVo.getOpenId());
// 调用支付接口
try {
fyPayService.applet(map1);
} catch (Exception e) {
e.printStackTrace();
}
}else {
this.updateGrowthValue(Double.valueOf(payAmount),oilOrder.getUserId(), Integer.valueOf(oilOrder.getOils()),oilCardAmount,oilOrder.getStoreId());
this.addOilTracks(oilOrder,oilOrder.getStoreId());
this.insertCardBalance(Double.valueOf(balanceAmount),oilOrder.getUserId(),oilOrder.getStoreId());
oilOrder.setPayAmount(Double.valueOf(payAmount));
oilOrder.setDiscountAmount(Double.valueOf(discountAmount));
oilOrder.setPayTime(new Date());
oilOrder.setOrderStatus("paid");
baseMapper.updateById(oilOrder);
}
}
@Autowired
private OilTankService oilTankService;
@Autowired
@ -411,6 +473,32 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
oilTankService.update(oilTank);
}
/**
* 添加油品库存跟踪信息
* @param oilOrder
*/
@Override
public void addOilTracks(OilOrder oilOrder,Integer storeId){
OilTank oilTank = oilTankService.queryById(oilOrder.getTankId());
// 添加库存跟踪信息
OilTracking oilTracking = new OilTracking();
oilTracking.setDocument("油品出售");
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String timestamp = dateFormat.format(new Date());
String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6);
oilTracking.setOrderNumber(timestamp+randomString);
oilTracking.setQuantityChange(-oilOrder.getOilNum());
oilTracking.setStoreId(storeId);
oilTracking.setTankId(oilOrder.getTankId());
oilTrackingService.insert(oilTracking);
// 修改油罐容量
Double storedQuantity = oilTank.getStoredQuantity();
oilTank.setStoredQuantity(storedQuantity-oilOrder.getOilNum());
oilTankService.update(oilTank);
}
@Override
public int updateOilOrder(OilOrder order) {
int row = baseMapper.updateById(order);
@ -423,19 +511,21 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
private LJUserService userService;
@Autowired
private LJUserGradeService userGradeService;
@Autowired
private ILJStoreService storeService;
/**
* 修改用户成长值信息
*/
private void updateGrowthValue(Double oilActualPay,Integer userid,Integer oilId,String refuelMoney){
private void updateGrowthValue(Double oilActualPay,Integer userid,Integer oilId,String refuelMoney,Integer storeId){
if (oilId!=null){
OilName oilName = oilNameService.selectOilNameById(oilId);
// 获取成长值增长数值
Integer gasGrowthValue = null;
Integer dieselGrowthValue = null;
Integer naturalGrowthValue = null;
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
UserBalance balance = userBalanceService.selectUserBalance(userid,nowAccountInfo.getStoreId());
LJStore store = storeService.selectStoreByStoreId(storeId);
UserBalance balance = userBalanceService.selectUserBalance(userid,store.getChainStoreId());
int growth = balance.getGrowthValue();
balance.setRefuelMoney(refuelMoney);
// 查询会员等级列表信息
@ -492,10 +582,11 @@ public class OilOrderServiceImpl extends ServiceImpl<OilOrderMapper, OilOrder> i
}
}
private void insertCardBalance(Double amount,Integer userId){
private void insertCardBalance(Double amount,Integer userId,Integer storeId){
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
// 根据用户id查询用户余额信息
UserBalance balance = userBalanceService.selectUserBalance(userId,nowAccountInfo.getStoreId());
LJStore store = storeService.selectStoreByStoreId(storeId);
UserBalance balance = userBalanceService.selectUserBalance(userId,store.getChainStoreId());
// 修改余额信息
Double beforeBalance = balance.getCardBalance();
Double afterBalance = beforeBalance - amount;

View File

@ -132,7 +132,9 @@
</select>
<select id="selectOilNumberNameByStoreId" resultType="com.fuint.business.petrolStationManagement.vo.OilNumberNameVo"
parameterType="java.lang.Integer">
select onu.*,ona.oil_type,ona.oil_name oilNames from oil_number onu left join oil_name ona on onu.oil_name = ona.id
select onu.*,ona.oil_type,ona.oil_name oilNames,ot.id tankId from oil_tank ot
left join oil_number onu on ot.number_id = onu.number_id
left join oil_name ona on onu.oil_name = ona.id
<where>
onu.store_id = #{storeId} and onu.state = '启用'
</where>

View File

@ -61,5 +61,13 @@ public interface OilNumberService extends IService<OilNumber> {
* @return
*/
List<OilNumberNameVo> selectOilNumberNameByStoreId(Integer storeId);
/**
* 根据油号和店铺id查询店铺油品信息
* @param oilName
* @param storeId
* @return
*/
OilNumber selectOilNumberByOilName(String oilName,Integer storeId);
}

View File

@ -3,6 +3,7 @@ package com.fuint.business.petrolStationManagement.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -98,5 +99,14 @@ public class OilNumberServiceImpl extends ServiceImpl<OilNumberMapper, OilNumber
return baseMapper.selectOilNumberNameByStoreId(storeId);
}
@Override
public OilNumber selectOilNumberByOilName(String oilName, Integer storeId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("oil_name",oilName);
queryWrapper.eq("store_id",storeId);
OilNumber oilNumber = baseMapper.selectOne(queryWrapper);
return oilNumber;
}
}

View File

@ -9,4 +9,6 @@ public class OilNumberNameVo extends OilNumber {
private String oilType;
// 油号
private String oilNames;
// 油罐id
private String tankId;
}

View File

@ -2279,7 +2279,7 @@
this.map.oilOrder = JSON.stringify(this.oilOrder);
this.map.goodsOrder = JSON.stringify(this.goodsOrder);
this.map.authCode = this.authCode;
this.map.allAmount = (this.oilActualPay + this.goodsActualPay).toFixed(2);
this.map.allAmount = +this.oilActualPay + +this.goodsActualPay
this.map.consumeAmount = this.consumeAmount;
this.updateRefuelMoney();
this.map.refuelMoney = JSON.stringify(this.refuelMoney)

View File

@ -63,7 +63,7 @@
"desc":"您的位置信息将用于获取离您最近的店铺信息"
}
},
"requiredPrivateInfos" : [ "getLocation" ]
"requiredPrivateInfos": ["chooseLocation", "getLocation"]
},
"mp-alipay" : {
"usingComponents" : true

View File

@ -178,7 +178,7 @@
this.storeId = uni.getStorageSync("inviteStoreId")
this.staffId = uni.getStorageSync("inviteStaffId")
}
this.isExistStoreId();
// this.isExistStoreId();
this.getUserAuthority();
this.getOilType();
@ -200,6 +200,8 @@
//
getUserAuthority() {
let _this = this;
// this.getAddress();
wx.getSetting({
success(res) {
if (!res.authSetting['scope.userLocation']) {
@ -232,7 +234,7 @@
}).then((response) => {
_this.store = response.data
let welfare = response.data.welfare
console.log(response.data)
uni.setStorageSync("storeId",response.data.id)
uni.setStorageSync("chainStoreId",response.data.chainStoreId)
if (welfare != undefined && welfare != null && welfare != "") {
if (welfare.includes(",")) {
@ -279,9 +281,16 @@
}
}
})
uni.showToast({
title:"获取位置信息成功"
})
},
fail: function(err) {
_this.getStore(0);
_this.getStore(2);
uni.showToast({
title:"获取位置信息失败"
})
console.log('获取位置信息失败: ' + err.errMsg);
}
});

View File

@ -248,6 +248,7 @@
_this.oilPrice = res.data[0].gbPrice
_this.oilUnit = res.data[0].unit
_this.oilOrder.oils = res.data[0].oilName
uni.setStorageSync("tankId",res.data[0].tankId)
}
})
},
@ -298,10 +299,12 @@
//
getHIndex(index,data) {
this.hindex = index
console.log(data)
this.getOilGun(data.numberId)
this.oilPrice = data.gbPrice
this.oilUnit = data.unit
this.oilOrder.oils = data.oilName
uni.setStorageSync("tankId",data.tankId)
},
//
getQIndex(index,data) {

View File

@ -24,7 +24,7 @@
</view>
<view>
<scroll-view scroll-y="true" :scroll-top="scrollTop" id="scrollList" style="height: 80vh;"
<scroll-view scroll-y="true" :scroll-top="scrollTop" id="scrollList" style="height: 78vh;"
@scrolltolower="scrolltolower">
<!-- 列表 -->
<view class="box-order" v-for="(item,index) in list" :key="index">

View File

@ -97,46 +97,107 @@
</view>
</view>
<view class="desc" v-if="fullRedece >= couponRedece && exclusion == 0">
<view style="display: flex;">
<u-collapse>
<u-collapse-item title="满减优惠" :open="true">
<view v-for="(item,index) in fullReduceDiscount" :key="index">
<span v-if="item.discount!=0">
{{item.type}}:{{ item.full }}{{ item.discount }}
</span>
<span v-else>{{ item.full }}{{ item.reduce }}</span>
</view>
</u-collapse-item>
</u-collapse>
<!-- 满减优惠fullReduceDiscount -->
<view v-if="exclusion == 0">
<view class="desc" v-if="fullRedece >= couponRedece && exclusion == 0">
<view style="display: flex;">
<u-collapse>
<u-collapse-item title="满减优惠" :open="true">
<view v-for="(item,index) in fullReduceDiscount" :key="index">
<span v-if="item.discount!=0">
{{item.type}}:{{ item.full }}{{ item.discount }}
</span>
<span v-else>{{ item.full }}{{ item.reduce }}</span>
</view>
</u-collapse-item>
</u-collapse>
<!-- <u-dropdown ref="uDropdown">
<u-dropdown-item title="满减优惠">
<view class="slot-content">
<view class="u-text-center u-content-color u-m-t-20 u-m-b-20">其他自定义内容</view>
<u-button type="primary" @click="closeDropdown">确定</u-button>
</view>
</u-dropdown-item>
</u-dropdown> -->
<!-- 满减优惠fullReduceDiscount -->
</view>
<view style="display: flex;">
<span style="margin-right: 10px;">-{{fullRedece}}</span>
<u-checkbox-group>
<u-checkbox v-model="coupon"></u-checkbox>
</u-checkbox-group>
</view>
</view>
<view style="display: flex;">
<span style="margin-right: 10px;">-{{fullRedece}}</span>
<u-checkbox-group>
<u-checkbox v-model="coupon"></u-checkbox>
</u-checkbox-group>
<view class="desc" v-else-if="fullRedece < couponRedece && exclusion == 0">
<view style="display: flex;">
<u-collapse>
<u-collapse-item title="优惠券" :open="true">
<view v-for="(item,index) in couponDiscount" :key="index">
{{ item.full }}{{ item.reduce }}
</view>
</u-collapse-item>
</u-collapse>
<!-- 优惠券 couponDiscount -->
</view>
<view style="display: flex;">
<span style="margin-right: 10px;">-{{couponRedece}}</span>
<u-checkbox-group>
<u-checkbox v-model="coupon"></u-checkbox>
</u-checkbox-group>
</view>
</view>
</view>
<view class="desc" v-else>
<view style="display: flex;">
<u-collapse>
<u-collapse-item title="优惠券" :open="true">
<view v-for="(item,index) in couponDiscount" :key="index">
{{ item.full }}{{ item.reduce }}
</view>
</u-collapse-item>
</u-collapse>
<!-- 优惠券 couponDiscount -->
<view v-else>
<view class="desc" v-if="fullRedece >= 0">
<view style="display: flex;">
<u-collapse>
<u-collapse-item title="满减优惠" :open="true">
<view v-for="(item,index) in fullReduceDiscount" :key="index">
<span v-if="item.discount!=0">
{{item.type}}:{{ item.full }}{{ item.discount }}
</span>
<span v-else>{{ item.full }}{{ item.reduce }}</span>
</view>
</u-collapse-item>
</u-collapse>
<!-- <u-dropdown ref="uDropdown">
<u-dropdown-item title="满减优惠">
<view class="slot-content">
<view class="u-text-center u-content-color u-m-t-20 u-m-b-20">其他自定义内容</view>
<u-button type="primary" @click="closeDropdown">确定</u-button>
</view>
</u-dropdown-item>
</u-dropdown> -->
<!-- 满减优惠fullReduceDiscount -->
</view>
<view style="display: flex;">
<span style="margin-right: 10px;">-{{fullRedece}}</span>
<u-checkbox-group>
<u-checkbox v-model="coupon"></u-checkbox>
</u-checkbox-group>
</view>
</view>
<view style="display: flex;">
<span style="margin-right: 10px;">-{{couponRedece}}</span>
<u-checkbox-group>
<u-checkbox v-model="coupon"></u-checkbox>
</u-checkbox-group>
<view class="desc" v-if="fullRedece >= 0">
<view style="display: flex;">
<u-collapse>
<u-collapse-item title="优惠券" :open="true">
<view v-for="(item,index) in couponDiscount" :key="index">
{{ item.full }}{{ item.reduce }}
</view>
</u-collapse-item>
</u-collapse>
<!-- 优惠券 couponDiscount -->
</view>
<view style="display: flex;">
<span style="margin-right: 10px;">-{{couponRedece}}</span>
<u-checkbox-group>
<u-checkbox v-model="coupon"></u-checkbox>
</u-checkbox-group>
</view>
</view>
</view>
</view>
<view style="background-color: white;width: 94%;margin: 15px auto;">
@ -158,7 +219,7 @@
</view>
<view style="color: red;font-size: 12px;">应付金额</view>
</view>
<view
<view @click="payment"
style="margin-right: 20px;width: 30%;border-radius:30px;background-color: #1879ff;height: 40px;line-height: 40px;text-align: center;color: white">
确认支付
</view>
@ -231,22 +292,32 @@
}
},
onLoad(e) {
this.orderNo = e.orderNo
// this.orderNo = "20231201114800ebe24b"
// this.orderNo = e.orderNo
this.orderNo = "20231201175248e68558"
},
onShow() {
this.getOilOrder();
this.testPay();
},
components: {
},
methods: {
//
testPay(){
//
payment(){
let map = {
orderNo : "20231201175248e68558",
payAmount : "0.01",
discountAmount : '0',
oilCardAmount : "",
balanceAmount : this.balanceRedece,
// tankId : uni.getStorageSync("tankId"),
tankId : 6,
};
let _this = this;
request({
url: "api/wechat/pay",
url: "business/oilOrder/appletPay",
method: 'post',
data: map,
}).then(res => {
console.log(res)
})
@ -748,7 +819,9 @@
method: 'get',
}).then((res) => {
_this.user = res.data;
_this.refuelMoney = JSON.parse(res.data.refuelMoney)
if (res.data.refuelMoney!=null && res.data.refuelMoney!=""){
_this.refuelMoney = JSON.parse(res.data.refuelMoney)
}
_this.changeRefuelMoney()
_this.getGrade(res.data.gradeId)
_this.preferentialData.oilPrice = _this.oilPrice

View File

@ -103,9 +103,6 @@ try {
uniIcons: function () {
return Promise.all(/*! import() | node-modules/@dcloudio/uni-ui/lib/uni-icons/uni-icons */[__webpack_require__.e("common/vendor"), __webpack_require__.e("node-modules/@dcloudio/uni-ui/lib/uni-icons/uni-icons")]).then(__webpack_require__.bind(null, /*! @dcloudio/uni-ui/lib/uni-icons/uni-icons.vue */ 453))
},
uEmpty: function () {
return Promise.all(/*! import() | uni_modules/uview-ui/components/u-empty/u-empty */[__webpack_require__.e("common/vendor"), __webpack_require__.e("uni_modules/uview-ui/components/u-empty/u-empty")]).then(__webpack_require__.bind(null, /*! @/uni_modules/uview-ui/components/u-empty/u-empty.vue */ 536))
},
}
} catch (e) {
if (
@ -128,15 +125,6 @@ var render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
var g0 = _vm.list.length
_vm.$mp.data = Object.assign(
{},
{
$root: {
g0: g0,
},
}
)
}
var recyclableRender = false
var staticRenderFns = []
@ -200,12 +188,34 @@ exports.default = void 0;
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var _default = {
data: function data() {
return {
title: '',
tindex: 0,
list: [],
list: ["1"],
tapList: [{
text: "全部"
}, {