diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/LJOrderController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/LJOrderController.java index bf168579f..061dfcf80 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/LJOrderController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/LJOrderController.java @@ -7,8 +7,11 @@ import com.fuint.business.order.service.LJOrderService; import com.fuint.framework.web.BaseController; import com.fuint.framework.web.ResponseObject; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.Map; + /** * 订单信息 controller层 */ @@ -36,11 +39,12 @@ public class LJOrderController extends BaseController { /** * 根据订单号查询订单信息 - * @param orderNo + * @param map * @return */ - @GetMapping("/{orderNo}") - public ResponseObject goodsOrder(@PathVariable String orderNo){ + @PostMapping("/orderNo") + public ResponseObject goodsOrder(@Validated @RequestBody Map map){ + String orderNo = map.get("orderNo"); LJOrder ljOrder = orderService.selectGoodsOrder(orderNo); return getSuccessResult(ljOrder); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java index 2fbbecc75..e82553e32 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/controller/OilOrderController.java @@ -42,17 +42,18 @@ public class OilOrderController extends BaseController { */ @PostMapping public ResponseObject add(@Validated @RequestBody Map map){ - String order = orderService.insertOilOrder(map); + Map order = orderService.insertOilOrder(map); return getSuccessResult(order); } /** * 根据订单号查询订单信息 - * @param orderNo + * @param map * @return */ - @GetMapping("/{orderNo}") - public ResponseObject goodsOrder(@PathVariable String orderNo){ + @PostMapping("/orderNo") + public ResponseObject oilOrder(@Validated @RequestBody Map map){ + String orderNo = map.get("orderNo"); OilOrder order = orderService.selectOilOrderByOrderNo(orderNo); return getSuccessResult(order); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java index 0f990abd3..aaa4e91ff 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/OilOrderService.java @@ -31,7 +31,7 @@ public interface OilOrderService extends IService { * @param map * @return */ - public String insertOilOrder(Map map); + public Map insertOilOrder(Map map); /** * 添加油品订单信息 diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java index 5daf606a6..382cb41e5 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/order/service/impl/OilOrderServiceImpl.java @@ -16,6 +16,8 @@ import com.fuint.business.order.mapper.OilOrderMapper; import com.fuint.business.order.service.LJOrderService; import com.fuint.business.order.service.OilOrderService; import com.fuint.business.order.service.OrderGoodsService; +import com.fuint.business.userManager.entity.UserBalance; +import com.fuint.business.userManager.service.UserBalanceService; import com.fuint.common.dto.AccountInfo; import com.fuint.common.util.TokenUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -34,6 +36,8 @@ public class OilOrderServiceImpl extends ServiceImpl i private FyPayService fyPayService; @Autowired private MerchantConfigService merchantConfigService; + @Autowired + private UserBalanceService userBalanceService; @Override public IPage selectOilOrderList(Page page, OilOrder order) { @@ -53,7 +57,7 @@ public class OilOrderServiceImpl extends ServiceImpl i } @Override - public String insertOilOrder(Map map) { + public Map insertOilOrder(Map map) { AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); Integer storeId = nowAccountInfo.getStoreId(); // 油品订单信息 @@ -83,10 +87,20 @@ public class OilOrderServiceImpl extends ServiceImpl i Double goodsDiscount = Double.valueOf(map.get("goodsDiscount")); // 员工id Integer staffId = Integer.valueOf(map.get("staffId")); +// 会员消费金额(储值卡需要减少的金额) + Double consumeAmount = Double.valueOf(map.get("consumeAmount")); Integer userId = null; if (map.get("userId") != null && !map.get("userId").equals("")){ // 会员id userId = Integer.valueOf(map.get("userId")); + +// 根据用户id查询用户余额信息 + UserBalance balance = userBalanceService.selectUserBalance(userId); +// 修改余额信息 + double beforeBalance = balance.getCardBalance(); + double afterBalance = beforeBalance - consumeAmount; + balance.setCardBalance(afterBalance); + userBalanceService.updateUserBalance(balance); } // 优惠券id Integer couponId = null; @@ -102,6 +116,14 @@ public class OilOrderServiceImpl extends ServiceImpl i // 终端 String terminal = map.get("terminal"); +// 支付状态 + String payStatus = "unpaid"; + if (payType.equals("CASH")){ + payStatus = "paid"; + }else { + payStatus = "unpaid"; + } + // 根据日期生成订单信息 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String timestamp = dateFormat.format(new Date()); @@ -136,7 +158,7 @@ public class OilOrderServiceImpl extends ServiceImpl i order.setPayUser(payUser); order.setPayType(payType); order.setInvoicing("未开票"); - order.setOrderStatus("unpaid"); + order.setOrderStatus(payStatus); baseMapper.insert(order); oilOrder1 = this.selectOilOrderByOrderNo(orderNo); } @@ -158,7 +180,7 @@ public class OilOrderServiceImpl extends ServiceImpl i ljOrder.setPointAmount(pointAmount); ljOrder.setDiscount(goodsDiscount); ljOrder.setStaffId(staffId); - ljOrder.setStatus("unpaid"); + ljOrder.setStatus(payStatus); orderService.insertGoodOrder(ljOrder); // 将油品订单的json数据转换为数组 List goods = JSONArray.parseArray(goodsOrder, JSONObject.class); @@ -177,50 +199,59 @@ public class OilOrderServiceImpl extends ServiceImpl i ljOrder1 = orderService.selectGoodsOrder(orderNo); } -// 根据店铺id查询商户配置信息 - MerchantConfig merchantConfig = merchantConfigService.selectMeChByStoreId(storeId); +// 如果金额不等于0调用第三方支付接口 + if (!map.get("allAmount").equals("0") && !map.get("payType").equals("CASH")){ + Integer allAmount = (int) (Double.valueOf(map.get("allAmount"))*100); + // 根据店铺id查询商户配置信息 + MerchantConfig merchantConfig = merchantConfigService.selectMeChByStoreId(storeId); + // 处理支付需要的数据 + Map map1 = new HashMap<>(); + map1.put("authCode",map.get("authCode")); + map1.put("allAmount",allAmount.toString()); + map1.put("orderNo",orderNo); + map1.put("payType",map.get("payType")); + map1.put("insCd",merchantConfig.getInsCd()); + map1.put("mchntCd",merchantConfig.getMchntCd()); + map1.put("goodsDes",merchantConfig.getMerchantName()); + map1.put("publicKey",merchantConfig.getPublicKey()); + map1.put("privateKey",merchantConfig.getPrivateKey()); -// 调用支付接口 - Map map1 = new HashMap<>(); - map1.put("authCode",map.get("authCode")); - Integer allAmount = (int) (Double.valueOf(map.get("allAmount"))*100); - map1.put("allAmount",allAmount.toString()); - map1.put("orderNo",orderNo); - map1.put("payType",map.get("payType")); - map1.put("insCd",merchantConfig.getInsCd()); - map1.put("mchntCd",merchantConfig.getMchntCd()); - map1.put("goodsDes",merchantConfig.getMerchantName()); - map1.put("publicKey",merchantConfig.getPublicKey()); - map1.put("privateKey",merchantConfig.getPrivateKey()); - - try { - Map pay = fyPayService.pay(map1); - String resultCode = pay.get("result_code"); - if (resultCode.equals("000000")){ - if (oilOrder1!=null){ - oilOrder1.setOrderStatus("paid"); - oilOrder1.setPayTime(new Date()); - this.updateOilOrder(oilOrder1); - } - if (ljOrder1!=null){ - ljOrder1.setStatus("paid"); - ljOrder1.setPayTime(new Date()); - orderService.updateGoodOrder(ljOrder1); - } - }else { - if (oilOrder1!=null){ - oilOrder1.setOrderStatus("unpaid"); - this.updateOilOrder(oilOrder1); - } - if (ljOrder1!=null){ - ljOrder1.setStatus("unpaid"); - orderService.updateGoodOrder(ljOrder1); + // 调用支付接口 + try { + Map pay = fyPayService.pay(map1); + String resultCode = pay.get("result_code"); + if (resultCode.equals("000000")){ + if (oilOrder1!=null){ + oilOrder1.setOrderStatus("paid"); + oilOrder1.setPayTime(new Date()); + this.updateOilOrder(oilOrder1); + } + if (ljOrder1!=null){ + ljOrder1.setStatus("paid"); + ljOrder1.setPayTime(new Date()); + orderService.updateGoodOrder(ljOrder1); + } + }else { + if (oilOrder1!=null){ + oilOrder1.setOrderStatus("unpaid"); + this.updateOilOrder(oilOrder1); + } + if (ljOrder1!=null){ + ljOrder1.setStatus("unpaid"); + orderService.updateGoodOrder(ljOrder1); + } } + } catch (Exception e){ + e.printStackTrace(); } - } catch (Exception e){ - e.printStackTrace(); } - return orderNo; + + Map orders = new HashMap<>(); + OilOrder oilOrder2 = this.selectOilOrderByOrderNo(orderNo); + LJOrder goodsOrder1 = orderService.selectGoodsOrder(orderNo); + orders.put("oilOrder",oilOrder2); + orders.put("goodsOrder",goodsOrder1); + return orders; } @Override diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/mapper/UserBalanceMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/mapper/UserBalanceMapper.java index 8e33fd18a..a951bcd18 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/mapper/UserBalanceMapper.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/mapper/UserBalanceMapper.java @@ -4,4 +4,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.fuint.business.userManager.entity.UserBalance; public interface UserBalanceMapper extends BaseMapper { + } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/UserBalanceService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/UserBalanceService.java index bbe9df148..2d3292930 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/UserBalanceService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/UserBalanceService.java @@ -20,4 +20,18 @@ public interface UserBalanceService extends IService { * @param userId */ public void deleteUserBalanceByUserId(Integer userId); + + /** + * 根据用户id修改储值卡金额 + * @param balance + * @return + */ + public int updateUserBalance(UserBalance balance); + + /** + * 根据用户id查询用户余额信息 + * @param userId + * @return + */ + public UserBalance selectUserBalance(int userId); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/UserBalanceServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/UserBalanceServiceImpl.java index 2c7638a79..0c0204d75 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/UserBalanceServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/userManager/service/impl/UserBalanceServiceImpl.java @@ -24,4 +24,18 @@ public class UserBalanceServiceImpl extends ServiceImpl(); + queryWrapper.eq("mt_user_id",userId); + UserBalance balance = baseMapper.selectOne(queryWrapper); + return balance; + } } diff --git a/fuintCashierWeb/src/api/cashier/oilorder.js b/fuintCashierWeb/src/api/cashier/oilorder.js index 1e7767700..0cabee624 100644 --- a/fuintCashierWeb/src/api/cashier/oilorder.js +++ b/fuintCashierWeb/src/api/cashier/oilorder.js @@ -19,17 +19,19 @@ export function addLJGoods(data) { } // 根据订单号查询油品订单信息 -export function oilOrder(orderNo) { +export function oilOrder(data) { return request({ - url: `/business/oilOrder/${orderNo}`, - method: 'get' + url: '/business/oilOrder/orderNo', + method: 'post', + data: data }) } // 根据订单号查询商品订单信息 -export function goodsOrder(orderNo) { +export function goodsOrder(data) { return request({ - url: `/business/order/${orderNo}`, - method: 'get' + url: '/business/order/orderNo', + method: 'post', + data: data }) } diff --git a/fuintCashierWeb/src/views/cashier/NewComponents/homeindex.vue b/fuintCashierWeb/src/views/cashier/NewComponents/homeindex.vue index 145e8616f..75ad4dd35 100644 --- a/fuintCashierWeb/src/views/cashier/NewComponents/homeindex.vue +++ b/fuintCashierWeb/src/views/cashier/NewComponents/homeindex.vue @@ -56,6 +56,17 @@
满减活动
-¥{{ oilDiscount + goodsDiscount }}
+
+
充值优惠
+
-¥0
+
+
+
+ 储值卡 + (账户余额:{{ balance }}元) +
+
-¥{{ consumeAmount }}
+
扫码支付
@@ -131,8 +142,8 @@
-
新增订单
-
解锁
+
重置
+
@@ -140,9 +151,6 @@
非油商品
- - -