Browse Source

fixed 迭代前台支付功能

fushengqian 3 months ago
parent
commit
eff8163e4a

+ 2 - 1
fuint-application/src/main/java/com/fuint/common/enums/OrderSettingEnum.java

@@ -10,7 +10,8 @@ public enum OrderSettingEnum {
     DELIVERY_FEE("deliveryFee", "订单配送费用"),
     DELIVERY_MIN_AMOUNT("deliveryMinAmount", "订单起送金额"),
     IS_CLOSE("isClose", "关闭交易功能"),
-    MP_UPLOAD_SHIPPING("mpUploadShipping", "微信小程序上传发货信息");
+    MP_UPLOAD_SHIPPING("mpUploadShipping", "微信小程序上传发货信息"),
+    PAY_OFF_LINE("payOffLine", "开启前台支付功能");
 
     private String key;
 

+ 2 - 1
fuint-application/src/main/java/com/fuint/common/enums/PayTypeEnum.java

@@ -11,7 +11,8 @@ public enum PayTypeEnum {
     JSAPI("JSAPI", "微信支付"),
     MICROPAY("MICROPAY", "微信扫码支付"),
     BALANCE("BALANCE", "余额支付"),
-    ALISCAN("ALISCAN", "支付宝扫码");
+    ALISCAN("ALISCAN", "支付宝扫码"),
+    STORE("STORE", "门店支付");
 
     private String key;
 

+ 3 - 1
fuint-application/src/main/java/com/fuint/common/service/SettingService.java

@@ -72,9 +72,11 @@ public interface SettingService extends IService<MtSetting> {
     /**
      * 获取支付方式列表
      *
+     * @param merchantId 商户ID
+     * @param storeId 店铺ID
      * @param platform 平台
      * @return
      * */
-    List<ParamDto> getPayTypeList(String platform);
+    List<ParamDto> getPayTypeList(Integer merchantId, Integer storeId, String platform) throws BusinessCheckException;
 
 }

+ 3 - 2
fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java

@@ -982,6 +982,8 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
             if (payType.equals(PayTypeEnum.CASH.getKey()) && StringUtil.isNotEmpty(operator)) {
                 // 收银台现金支付,更新为已支付
                 setOrderPayed(orderInfo.getId(), null);
+            } else  if (payType.equals(PayTypeEnum.STORE.getKey())) {
+                // 门店支付,不做任何操作
             } else if(payType.equals(PayTypeEnum.BALANCE.getKey())) {
                 // 余额支付
                 MtBalance balance = new MtBalance();
@@ -1018,13 +1020,12 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
         Map<String, Object> outParams = new HashMap();
         outParams.put("isCreated", true);
         outParams.put("orderInfo", orderInfo);
+        outParams.put("payType", payType);
 
         if (paymentInfo != null) {
             outParams.put("payment", paymentInfo.getData());
-            outParams.put("payType", payType);
         } else {
             outParams.put("payment", null);
-            outParams.put("payType", "BALANCE");
         }
 
         // 1分钟后发送小程序订阅消息

+ 20 - 15
fuint-application/src/main/java/com/fuint/common/service/impl/SettingServiceImpl.java

@@ -2,16 +2,15 @@ package com.fuint.common.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fuint.common.dto.ParamDto;
-import com.fuint.common.enums.PayTypeEnum;
-import com.fuint.common.enums.PlatformTypeEnum;
+import com.fuint.common.enums.*;
 import com.fuint.framework.annoation.OperationServiceLog;
 import com.fuint.repository.mapper.MtSettingMapper;
 import com.fuint.repository.model.MtSetting;
-import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.service.SettingService;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.utils.StringUtil;
 import lombok.AllArgsConstructor;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -26,7 +25,7 @@ import java.util.List;
  * CopyRight https://www.fuint.cn
  */
 @Service
-@AllArgsConstructor
+@AllArgsConstructor(onConstructor_= {@Lazy})
 public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting> implements SettingService {
 
     /**
@@ -36,6 +35,11 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
 
     private MtSettingMapper mtSettingMapper;
 
+    /**
+     * 系统设置服务接口
+     * */
+    private SettingService settingService;
+
     /**
      * 删除配置
      *
@@ -52,7 +56,6 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
         if (info != null) {
             mtSettingMapper.deleteById(info.getId());
         }
-        return;
     }
 
     /**
@@ -168,11 +171,13 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
     /**
      * 获取支付方式列表
      *
+     * @param merchantId 商户ID
+     * @param storeId 店铺ID
      * @param platform 平台
      * @return
      * */
     @Override
-    public List<ParamDto> getPayTypeList(String platform) {
+    public List<ParamDto> getPayTypeList(Integer merchantId, Integer storeId, String platform) throws BusinessCheckException {
         List<ParamDto> payTypeList = new ArrayList<>();
 
         // 微信jsapi
@@ -180,6 +185,7 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
         jsApi.setKey(PayTypeEnum.JSAPI.getKey());
         jsApi.setValue(PayTypeEnum.JSAPI.getKey());
         jsApi.setName(PayTypeEnum.JSAPI.getValue());
+        payTypeList.add(jsApi);
 
         // 余额支付
         ParamDto balance = new ParamDto();
@@ -188,15 +194,14 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
         balance.setName(PayTypeEnum.BALANCE.getValue());
         payTypeList.add(balance);
 
-        // 扫码支付
-        ParamDto micro = new ParamDto();
-        micro.setKey(PayTypeEnum.MICROPAY.getKey());
-        micro.setValue(PayTypeEnum.MICROPAY.getKey());
-        micro.setValue(PayTypeEnum.MICROPAY.getValue());
-
-        // 微信公众号号
-        if (platform.equals(PlatformTypeEnum.MP_WEIXIN.getCode())) {
-            payTypeList.add(jsApi);
+        // 前台支付
+        MtSetting mtSetting = settingService.querySettingByName(merchantId, storeId,  SettingTypeEnum.ORDER.getKey(), OrderSettingEnum.PAY_OFF_LINE.getKey());
+        if (mtSetting != null && mtSetting.getValue().equals(YesOrNoEnum.YES.getKey())) {
+            ParamDto store = new ParamDto();
+            store.setKey(PayTypeEnum.STORE.getKey());
+            store.setValue(PayTypeEnum.STORE.getKey());
+            store.setName(PayTypeEnum.STORE.getValue());
+            payTypeList.add(store);
         }
 
         return payTypeList;

+ 8 - 41
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendOrderController.java

@@ -91,9 +91,6 @@ public class BackendOrderController extends BaseController {
     public ResponseObject list(HttpServletRequest request, @RequestBody OrderListParam orderListParam) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
         TAccount account = accountService.getAccountInfoById(accountInfo.getId());
         if (account.getMerchantId() != null && account.getMerchantId() > 0) {
             orderListParam.setMerchantId(account.getMerchantId());
@@ -203,14 +200,7 @@ public class BackendOrderController extends BaseController {
     @CrossOrigin
     @PreAuthorize("@pms.hasPermission('order:detail')")
     public ResponseObject info(HttpServletRequest request, @PathVariable("orderId") Integer orderId) throws BusinessCheckException {
-        String token = request.getHeader("Access-Token");
-        AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
-
         UserOrderDto orderInfo = orderService.getOrderById(orderId);
-
         // 支付方式列表
         PayTypeEnum[] payTypes = PayTypeEnum.values();
         List<ParamDto> payTypeList = new ArrayList<>();
@@ -257,10 +247,6 @@ public class BackendOrderController extends BaseController {
         String expressNo = param.get("expressNo") == null ? "" : param.get("expressNo").toString();
 
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
-
         if (orderId < 0) {
             return getFailureResult(201, "系统出错啦,订单ID不能为空");
         }
@@ -271,7 +257,7 @@ public class BackendOrderController extends BaseController {
         OrderDto dto = new OrderDto();
         dto.setId(orderId);
         dto.setStatus(OrderStatusEnum.DELIVERED.getKey());
-
+        dto.setOperator(accountInfo.getAccountName());
         if (StringUtil.isNotEmpty(expressCompany) || StringUtil.isNotEmpty(expressNo)) {
             ExpressDto expressInfo = new ExpressDto();
             String time = TimeUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm");
@@ -323,9 +309,6 @@ public class BackendOrderController extends BaseController {
         String remark = param.get("remark") == null ? "" : param.get("remark").toString();
         String orderMode = param.get("orderMode") == null ? "" : param.get("orderMode").toString();
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
         if (orderId < 0) {
             return getFailureResult(201, "系统出错啦,订单ID不能为空");
         }
@@ -369,10 +352,6 @@ public class BackendOrderController extends BaseController {
         String verifyCode = param.get("verifyCode") == null ? "" : param.get("verifyCode").toString();
 
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
-
         if (orderId < 0) {
             return getFailureResult(201, "系统出错啦,订单ID不能为空");
         }
@@ -402,9 +381,6 @@ public class BackendOrderController extends BaseController {
     public ResponseObject latest(HttpServletRequest request, @RequestBody OrderListParam orderListParam) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
 
         Map<String, Object> result = new HashMap<>();
         if (accountInfo == null) {
@@ -439,9 +415,6 @@ public class BackendOrderController extends BaseController {
     public ResponseObject delete(HttpServletRequest request, @PathVariable("id") Integer id) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
 
         String operator = accountInfo.getAccountName();
         orderService.deleteOrder(id, operator);
@@ -462,9 +435,6 @@ public class BackendOrderController extends BaseController {
     public ResponseObject setting(HttpServletRequest request) throws BusinessCheckException {
         String token = request.getHeader("Access-Token");
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
 
         List<MtSetting> settingList = settingService.getSettingList(accountInfo.getMerchantId(), SettingTypeEnum.ORDER.getKey());
         Map<String, Object> result = new HashMap();
@@ -472,6 +442,7 @@ public class BackendOrderController extends BaseController {
         String isClose = "";
         String deliveryMinAmount = "";
         String mpUploadShipping = "";
+        String payOffLine = "off";
 
         for (MtSetting setting : settingList) {
             if (setting.getName().equals(OrderSettingEnum.DELIVERY_FEE.getKey())) {
@@ -482,6 +453,8 @@ public class BackendOrderController extends BaseController {
                 deliveryMinAmount = setting.getValue();
             } else if (setting.getName().equals(OrderSettingEnum.MP_UPLOAD_SHIPPING.getKey())) {
                 mpUploadShipping = setting.getValue();
+            } else if (setting.getName().equals(OrderSettingEnum.PAY_OFF_LINE.getKey())) {
+                payOffLine = setting.getValue();
             }
         }
 
@@ -489,6 +462,7 @@ public class BackendOrderController extends BaseController {
         result.put("isClose", isClose);
         result.put("deliveryMinAmount", deliveryMinAmount);
         result.put("mpUploadShipping", mpUploadShipping);
+        result.put("payOffLine", payOffLine);
 
         return getSuccessResult(result);
     }
@@ -508,12 +482,9 @@ public class BackendOrderController extends BaseController {
         String deliveryFee = param.get("deliveryFee") != null ? param.get("deliveryFee").toString() : "0";
         String isClose = param.get("isClose") != null ? param.get("isClose").toString() : YesOrNoEnum.FALSE.getKey();
         String deliveryMinAmount = param.get("deliveryMinAmount") != null ? param.get("deliveryMinAmount").toString() : "0";
+        String payOffLine = param.get("payOffLine") != null ? param.get("payOffLine").toString() : "off";
 
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            return getFailureResult(1001, "请先登录");
-        }
-
         String operator = accountInfo.getAccountName();
 
         OrderSettingEnum[] settingList = OrderSettingEnum.values();
@@ -521,13 +492,14 @@ public class BackendOrderController extends BaseController {
             MtSetting info = new MtSetting();
             info.setType(SettingTypeEnum.ORDER.getKey());
             info.setName(setting.getKey());
-
             if (setting.getKey().equals(OrderSettingEnum.DELIVERY_FEE.getKey())) {
                 info.setValue(deliveryFee);
             } else if (setting.getKey().equals(OrderSettingEnum.IS_CLOSE.getKey())) {
                 info.setValue(isClose);
             } else if (setting.getKey().equals(OrderSettingEnum.DELIVERY_MIN_AMOUNT.getKey())) {
                 info.setValue(deliveryMinAmount);
+            } else if (setting.getKey().equals(OrderSettingEnum.PAY_OFF_LINE.getKey())) {
+                info.setValue(payOffLine);
             }
             info.setMerchantId(accountInfo.getMerchantId());
             info.setStoreId(accountInfo.getStoreId());
@@ -562,11 +534,6 @@ public class BackendOrderController extends BaseController {
         String endTime = request.getParameter("endTime") == null ? "" : request.getParameter("endTime");
 
         AccountInfo accountInfo = TokenUtil.getAccountInfoByToken(token);
-        if (accountInfo == null) {
-            logger.error("导出订单失败:token = {}", token);
-            return;
-        }
-
         OrderListParam params = new OrderListParam();
         params.setPage(1);
         params.setPageSize(Constants.MAX_ROWS);

+ 1 - 1
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientSystemController.java

@@ -140,7 +140,7 @@ public class ClientSystemController extends BaseController {
         }
 
         // 支付方式列表
-        List<ParamDto> payTypeList = settingService.getPayTypeList(platform);
+        List<ParamDto> payTypeList = settingService.getPayTypeList(merchantId, storeInfo.getId(), platform);
 
         Map<String, Object> result = new HashMap<>();
         result.put("storeInfo", storeInfo);