订单信息
This commit is contained in:
parent
19fc2fdb2b
commit
31c8f79bc9
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 退款
|
||||
*
|
||||
|
@ -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";
|
||||
|
@ -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
|
||||
|
@ -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");
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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.创建消息对象,指定主题Topic、Tag和消息体
|
||||
/**
|
||||
* 参数一:消息主题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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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>
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -9,4 +9,6 @@ public class OilNumberNameVo extends OilNumber {
|
||||
private String oilType;
|
||||
// 油号
|
||||
private String oilNames;
|
||||
// 油罐id
|
||||
private String tankId;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -63,7 +63,7 @@
|
||||
"desc":"您的位置信息将用于获取离您最近的店铺信息"
|
||||
}
|
||||
},
|
||||
"requiredPrivateInfos" : [ "getLocation" ]
|
||||
"requiredPrivateInfos": ["chooseLocation", "getLocation"]
|
||||
},
|
||||
"mp-alipay" : {
|
||||
"usingComponents" : true
|
||||
|
@ -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);
|
||||
}
|
||||
});
|
||||
|
@ -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) {
|
||||
|
@ -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">
|
||||
|
@ -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
|
||||
|
@ -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: "全部"
|
||||
}, {
|
||||
|
Loading…
Reference in New Issue
Block a user