Explorar o código

fixed 商户管理小程序接口开发迭代

fushengqian hai 2 meses
pai
achega
d2193b8a6b
Modificáronse 15 ficheiros con 189 adicións e 204 borrados
  1. 13 1
      fuint-application/src/main/java/com/fuint/common/param/MemberInfoParam.java
  2. 4 0
      fuint-application/src/main/java/com/fuint/common/param/RechargeParam.java
  3. 9 0
      fuint-application/src/main/java/com/fuint/common/service/OrderService.java
  4. 2 2
      fuint-application/src/main/java/com/fuint/common/service/PaymentService.java
  5. 2 2
      fuint-application/src/main/java/com/fuint/common/service/impl/BalanceServiceImpl.java
  6. 2 10
      fuint-application/src/main/java/com/fuint/common/service/impl/MemberServiceImpl.java
  7. 77 0
      fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java
  8. 3 2
      fuint-application/src/main/java/com/fuint/common/service/impl/PointServiceImpl.java
  9. 2 6
      fuint-application/src/main/java/com/fuint/common/service/impl/StaffServiceImpl.java
  10. 17 0
      fuint-application/src/main/java/com/fuint/common/util/CommonUtil.java
  11. 2 7
      fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberController.java
  12. 1 5
      fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStaffController.java
  13. 3 62
      fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientBalanceController.java
  14. 9 107
      fuint-application/src/main/java/com/fuint/module/merchantApi/controller/MerchantBalanceController.java
  15. 43 0
      fuint-application/src/main/java/com/fuint/module/merchantApi/controller/MerchantMemberController.java

+ 13 - 1
fuint-application/src/main/java/com/fuint/common/param/MemberInfoParam.java

@@ -14,11 +14,23 @@ import java.io.Serializable;
 public class MemberInfoParam extends PageParam implements Serializable {
 
     @ApiModelProperty(value="ID", name="id")
-    private String id;
+    private Integer id;
 
     @ApiModelProperty(value="手机号", name="mobile")
     private String mobile;
 
+    @ApiModelProperty(value="头像", name="avatar")
+    private String avatar;
+
+    @ApiModelProperty(value="称呼", name="name")
+    private String name;
+
+    @ApiModelProperty(value="性别", name="sex")
+    private Integer sex;
+
+    @ApiModelProperty(value="生日", name="birthday")
+    private String birthday;
+
     @ApiModelProperty(value="会员号", name="userNo")
     private String userNo;
 

+ 4 - 0
fuint-application/src/main/java/com/fuint/common/param/RechargeParam.java

@@ -6,6 +6,7 @@ import java.io.Serializable;
 
 /**
  * 充值请求参数
+ *
  * Created by FSQ
  * CopyRight https://www.fuint.cn
  */
@@ -18,4 +19,7 @@ public class RechargeParam implements Serializable {
     @ApiModelProperty(value="自定义充值金额", name="customAmount")
     private String customAmount;
 
+    @ApiModelProperty(value="会员ID", name="memberId")
+    private Integer memberId;
+
 }

+ 9 - 0
fuint-application/src/main/java/com/fuint/common/service/OrderService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.fuint.common.dto.UserOrderDto;
 import com.fuint.common.dto.OrderDto;
 import com.fuint.common.param.OrderListParam;
+import com.fuint.common.param.RechargeParam;
 import com.fuint.common.param.SettlementParam;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationResponse;
@@ -247,4 +248,12 @@ public interface OrderService extends IService<MtOrder> {
      * @return
      * */
     List<MtOrder> getTobeCommissionOrderList(String dateTime) throws BusinessCheckException;
+
+    /**
+     * 提交充值订单
+     *
+     * @param rechargeParam 充值参数
+     * @return
+     * */
+    MtOrder doRecharge(HttpServletRequest request, RechargeParam rechargeParam) throws BusinessCheckException;
 }

+ 2 - 2
fuint-application/src/main/java/com/fuint/common/service/PaymentService.java

@@ -32,7 +32,7 @@ public interface PaymentService {
     ResponseObject createPrepayOrder(MtUser userInfo, MtOrder orderInfo, Integer payAmount, String authCode, Integer giveAmount, String ip, String platform, String isWechat) throws BusinessCheckException;
 
     /**
-     * 支付回调
+     * 支付成功回调
      *
      * @param orderInfo 订单信息
      * @return
@@ -47,4 +47,4 @@ public interface PaymentService {
      * */
     Map<String, Object> doPay(HttpServletRequest request) throws BusinessCheckException;
 
-}
+}

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

@@ -126,8 +126,8 @@ public class BalanceServiceImpl extends ServiceImpl<MtBalanceMapper, MtBalance>
         List<BalanceDto> dataList = new ArrayList<>();
         for (MtBalance mtBalance : balanceList) {
             MtUser userInfo = memberService.queryMemberById(mtBalance.getUserId());
-            if (userInfo != null && StringUtil.isNotEmpty(userInfo.getMobile())) {
-                userInfo.setMobile(userInfo.getMobile().substring(0, 3) + "****" + userInfo.getMobile().substring(7));
+            if (userInfo != null) {
+                userInfo.setMobile(CommonUtil.hidePhone(userInfo.getMobile()));
             }
             BalanceDto item = new BalanceDto();
             item.setId(mtBalance.getId());

+ 2 - 10
fuint-application/src/main/java/com/fuint/common/service/impl/MemberServiceImpl.java

@@ -296,13 +296,9 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
         List<MtUser> userList = mtUserMapper.selectList(wrapper);
         List<UserDto> dataList = new ArrayList<>();
         for (MtUser mtUser : userList) {
-            String phone = mtUser.getMobile();
             UserDto userDto = new UserDto();
             BeanUtils.copyProperties(mtUser, userDto);
-            // 隐藏手机号中间四位
-            if (phone != null && StringUtil.isNotEmpty(phone) && phone.length() == 11) {
-                userDto.setMobile(phone.substring(0, 3) + "****" + phone.substring(7));
-            }
+            userDto.setMobile(CommonUtil.hidePhone(mtUser.getMobile()));
             if (userDto.getStoreId() != null && userDto.getStoreId() > 0) {
                 MtStore mtStore = storeService.queryStoreById(userDto.getStoreId());
                 if (mtStore != null) {
@@ -965,11 +961,7 @@ public class MemberServiceImpl extends ServiceImpl<MtUserMapper, MtUser> impleme
                  memberDto.setId(mtUser.getId());
                  memberDto.setName(mtUser.getName());
                  memberDto.setUserNo(mtUser.getUserNo());
-                 // 隐藏手机号中间四位
-                 String phone = mtUser.getMobile();
-                 if (phone != null && StringUtil.isNotEmpty(phone) && phone.length() == 11) {
-                     memberDto.setMobile(phone.substring(0, 3) + "****" + phone.substring(7));
-                 }
+                 memberDto.setMobile(CommonUtil.hidePhone(mtUser.getMobile()));
                  dataList.add(memberDto);
             }
         }

+ 77 - 0
fuint-application/src/main/java/com/fuint/common/service/impl/OrderServiceImpl.java

@@ -8,6 +8,7 @@ import com.fuint.common.Constants;
 import com.fuint.common.dto.*;
 import com.fuint.common.enums.*;
 import com.fuint.common.param.OrderListParam;
+import com.fuint.common.param.RechargeParam;
 import com.fuint.common.param.SettlementParam;
 import com.fuint.common.service.*;
 import com.fuint.common.util.*;
@@ -2219,4 +2220,80 @@ public class OrderServiceImpl extends ServiceImpl<MtOrderMapper, MtOrder> implem
     public List<MtOrder> getTobeCommissionOrderList(String dateTime) {
         return mtOrderMapper.getTobeCommissionOrderList(dateTime);
     }
+
+    /**
+     * 提交充值订单
+     *
+     * @param request HttpServletRequest对象
+     * @param rechargeParam 充值参数
+     * @return
+     * */
+    @Override
+    public MtOrder doRecharge(HttpServletRequest request, RechargeParam rechargeParam) throws BusinessCheckException {
+        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
+        String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
+        String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
+
+        String rechargeAmount = rechargeParam.getRechargeAmount() == null ? "" : rechargeParam.getRechargeAmount();
+        String customAmount = rechargeParam.getCustomAmount() == null ? "" : rechargeParam.getCustomAmount();
+        if (StringUtil.isEmpty(rechargeAmount) && StringUtil.isEmpty(customAmount)) {
+            throw new BusinessCheckException("请确认充值金额");
+        }
+        if (rechargeParam.getMemberId() == null || rechargeParam.getMemberId() < 1) {
+            throw new BusinessCheckException("请确认充值会员信息");
+        }
+
+        Integer merchantId = merchantService.getMerchantId(merchantNo);
+
+        // 充值赠送金额
+        String ruleParam = "";
+        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.BALANCE.getKey(), BalanceSettingEnum.RECHARGE_RULE.getKey());
+        if (StringUtil.isNotEmpty(rechargeAmount) && mtSetting != null) {
+            if (mtSetting.getValue() != null && StringUtil.isNotEmpty(mtSetting.getValue())) {
+                String rules[] = mtSetting.getValue().split(",");
+                for (String rule : rules) {
+                    String amountArr[] = rule.split("_");
+                    if (amountArr.length == 2) {
+                        if (amountArr[0].equals(rechargeAmount)) {
+                            ruleParam = rule;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        // 自定义充值没有赠送金额
+        if (StringUtil.isNotEmpty(customAmount) && Integer.parseInt(customAmount) > 0 && (StringUtil.isEmpty(rechargeAmount) || Integer.parseInt(rechargeAmount) <= 0)) {
+            rechargeAmount = customAmount;
+            ruleParam = customAmount + "_0";
+        }
+
+        if (StringUtil.isEmpty(ruleParam)) {
+            ruleParam = rechargeAmount + "_0";
+        }
+
+        BigDecimal amount = new BigDecimal(rechargeAmount);
+        if (amount.compareTo(new BigDecimal("0")) <= 0) {
+            throw new BusinessCheckException("请确认充值金额");
+        }
+
+        OrderDto orderDto = new OrderDto();
+        orderDto.setType(OrderTypeEnum.RECHARGE.getKey());
+        orderDto.setUserId(rechargeParam.getMemberId());
+        orderDto.setStoreId(storeId);
+        orderDto.setAmount(amount);
+        orderDto.setUsePoint(0);
+        orderDto.setRemark("会员充值");
+        orderDto.setParam(ruleParam);
+        orderDto.setStatus(OrderStatusEnum.CREATED.getKey());
+        orderDto.setPayStatus(PayStatusEnum.WAIT.getKey());
+        orderDto.setPointAmount(new BigDecimal("0"));
+        orderDto.setOrderMode("");
+        orderDto.setCouponId(0);
+        orderDto.setPlatform(platform);
+        orderDto.setMerchantId(merchantId);
+
+        return saveOrder(orderDto);
+    }
 }

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

@@ -10,6 +10,7 @@ import com.fuint.common.service.MemberService;
 import com.fuint.common.service.PointService;
 import com.fuint.common.service.SendSmsService;
 import com.fuint.common.service.WeixinService;
+import com.fuint.common.util.CommonUtil;
 import com.fuint.common.util.DateUtil;
 import com.fuint.framework.annoation.OperationServiceLog;
 import com.fuint.framework.exception.BusinessCheckException;
@@ -114,8 +115,8 @@ public class PointServiceImpl extends ServiceImpl<MtPointMapper, MtPoint> implem
         List<PointDto> dataList = new ArrayList<>();
         for (MtPoint point : pointList) {
             MtUser userInfo = memberService.queryMemberById(point.getUserId());
-            if (userInfo != null && StringUtil.isNotEmpty(userInfo.getMobile())) {
-                userInfo.setMobile(userInfo.getMobile().substring(0, 3) + "****" + userInfo.getMobile().substring(7));
+            if (userInfo != null) {
+                userInfo.setMobile(CommonUtil.hidePhone(userInfo.getMobile()));
             }
             PointDto item = new PointDto();
             item.setId(point.getId());

+ 2 - 6
fuint-application/src/main/java/com/fuint/common/service/impl/StaffServiceImpl.java

@@ -7,6 +7,7 @@ import com.fuint.common.dto.StaffDto;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.enums.YesOrNoEnum;
 import com.fuint.common.service.*;
+import com.fuint.common.util.CommonUtil;
 import com.fuint.framework.annoation.OperationServiceLog;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.pagination.PaginationRequest;
@@ -16,7 +17,6 @@ import com.fuint.repository.model.MtMerchant;
 import com.fuint.repository.model.MtStaff;
 import com.fuint.repository.model.MtStore;
 import com.fuint.repository.model.MtUser;
-import com.fuint.utils.StringUtil;
 import com.github.pagehelper.Page;
 import com.github.pagehelper.PageHelper;
 import lombok.AllArgsConstructor;
@@ -104,11 +104,7 @@ public class StaffServiceImpl extends ServiceImpl<MtStaffMapper, MtStaff> implem
         List<MtStaff> dataList = mtStaffMapper.selectList(lambdaQueryWrapper);
         if (dataList != null && dataList.size() > 0) {
             for (MtStaff mtStaff : dataList) {
-                // 隐藏手机号中间四位
-                String phone = mtStaff.getMobile();
-                if (phone != null && StringUtil.isNotEmpty(phone) && phone.length() == 11) {
-                    mtStaff.setMobile(phone.substring(0, 3) + "****" + phone.substring(7));
-                }
+                 mtStaff.setMobile(CommonUtil.hidePhone(mtStaff.getMobile()));
             }
         }
         PageRequest pageRequest = PageRequest.of(paginationRequest.getCurrentPage(), paginationRequest.getPageSize());

+ 17 - 0
fuint-application/src/main/java/com/fuint/common/util/CommonUtil.java

@@ -21,6 +21,23 @@ import java.util.regex.Matcher;
  */
 public class CommonUtil {
 
+    /**
+     * 隐藏手机号中间4位
+     *
+     * @param phone
+     * @return
+     * */
+    public static String hidePhone(String phone) {
+        if (StringUtil.isEmpty(phone)) {
+            return "";
+        }
+        if (phone.length() < 11) {
+            return phone;
+        }
+        return phone.substring(0, 3) + "****" + phone.substring(7);
+    }
+
+
     /**
      * 功能:将输入字符串的首字母改成大写
      *

+ 2 - 7
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberController.java

@@ -7,6 +7,7 @@ import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.enums.UserSettingEnum;
 import com.fuint.common.enums.YesOrNoEnum;
 import com.fuint.common.service.*;
+import com.fuint.common.util.CommonUtil;
 import com.fuint.common.util.DateUtil;
 import com.fuint.common.util.PhoneFormatCheckUtils;
 import com.fuint.common.util.TokenUtil;
@@ -353,13 +354,7 @@ public class BackendMemberController extends BaseController {
             BeanUtils.copyProperties(mtUserGroup, userGroupDto);
             memberInfo.setGroupInfo(userGroupDto);
         }
-
-        // 隐藏手机号中间四位
-        String phone = memberInfo.getMobile();
-        if (phone != null && StringUtil.isNotEmpty(phone) && phone.length() == 11) {
-            memberInfo.setMobile(phone.substring(0, 3) + "****" + phone.substring(7));
-        }
-
+        memberInfo.setMobile(CommonUtil.hidePhone(memberInfo.getMobile()));
         Map<String, Object> param = new HashMap<>();
         if (accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
             param.put("MERCHANT_ID", accountInfo.getMerchantId());

+ 1 - 5
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendStaffController.java

@@ -219,11 +219,7 @@ public class BackendStaffController extends BaseController {
 
         MtStaff staffInfo = staffService.queryStaffById(id);
         if (staffInfo != null) {
-            // 隐藏手机号中间四位
-            String phone = staffInfo.getMobile();
-            if (phone != null && StringUtil.isNotEmpty(phone) && phone.length() == 11) {
-                staffInfo.setMobile(phone.substring(0, 3) + "****" + phone.substring(7));
-            }
+            staffInfo.setMobile(CommonUtil.hidePhone(staffInfo.getMobile()));
         }
         Map<String, Object> result = new HashMap<>();
         result.put("staffInfo", staffInfo);

+ 3 - 62
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientBalanceController.java

@@ -131,10 +131,8 @@ public class ClientBalanceController extends BaseController {
     @RequestMapping(value = "/doRecharge", method = RequestMethod.POST)
     @CrossOrigin
     public ResponseObject doRecharge(HttpServletRequest request, @RequestBody RechargeParam rechargeParam) throws BusinessCheckException {
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
         String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
         String isWechat = request.getHeader("isWechat") == null ? "" : request.getHeader("isWechat");
-        String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
 
         String token = request.getHeader("Access-Token");
         if (StringUtil.isEmpty(token)) {
@@ -145,70 +143,13 @@ public class ClientBalanceController extends BaseController {
         if (null == userInfo) {
             return getFailureResult(1001);
         }
-
-        String rechargeAmount = rechargeParam.getRechargeAmount() == null ? "" : rechargeParam.getRechargeAmount();
-        String customAmount = rechargeParam.getCustomAmount() == null ? "" : rechargeParam.getCustomAmount();
-        if (StringUtil.isEmpty(rechargeAmount) && StringUtil.isEmpty(customAmount)) {
-            return getFailureResult(2000, "请确认充值金额");
-        }
-
-        Integer merchantId = merchantService.getMerchantId(merchantNo);
-
-        // 充值赠送金额
-        String ruleParam = "";
-        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.BALANCE.getKey(), BalanceSettingEnum.RECHARGE_RULE.getKey());
-        if (StringUtil.isNotEmpty(rechargeAmount) && mtSetting != null) {
-            if (mtSetting.getValue() != null && StringUtil.isNotEmpty(mtSetting.getValue())) {
-                String rules[] = mtSetting.getValue().split(",");
-                for (String rule : rules) {
-                     String amountArr[] = rule.split("_");
-                     if (amountArr.length == 2) {
-                         if (amountArr[0].equals(rechargeAmount)) {
-                             ruleParam = rule;
-                             break;
-                         }
-                     }
-                }
-            }
-        }
-
-        // 自定义充值没有赠送金额
-        if (StringUtil.isNotEmpty(customAmount) && Integer.parseInt(customAmount) > 0 && (StringUtil.isEmpty(rechargeAmount) || Integer.parseInt(rechargeAmount) <= 0)) {
-            rechargeAmount = customAmount;
-            ruleParam = customAmount + "_0";
-        }
-
-        if (StringUtil.isEmpty(ruleParam)) {
-            ruleParam = rechargeAmount + "_0";
-        }
-
-        BigDecimal amount = new BigDecimal(rechargeAmount);
-        if (amount.compareTo(new BigDecimal("0")) <= 0) {
-            return getFailureResult(201, "请确认充值金额");
-        }
-
-        OrderDto orderDto = new OrderDto();
-        orderDto.setType(OrderTypeEnum.RECHARGE.getKey());
-        orderDto.setUserId(userInfo.getId());
-        orderDto.setStoreId(storeId);
-        orderDto.setAmount(amount);
-        orderDto.setUsePoint(0);
-        orderDto.setRemark("会员充值");
-        orderDto.setParam(ruleParam);
-        orderDto.setStatus(OrderStatusEnum.CREATED.getKey());
-        orderDto.setPayStatus(PayStatusEnum.WAIT.getKey());
-        orderDto.setPointAmount(new BigDecimal("0"));
-        orderDto.setOrderMode("");
-        orderDto.setCouponId(0);
-        orderDto.setPlatform(platform);
-        orderDto.setMerchantId(merchantId);
-
-        MtOrder orderInfo = orderService.saveOrder(orderDto);
+        rechargeParam.setMemberId(userInfo.getId());
+        MtOrder orderInfo = orderService.doRecharge(request, rechargeParam);
 
         MtUser mtUser = memberService.queryMemberById(userInfo.getId());
 
         String ip = CommonUtil.getIPFromHttpRequest(request);
-        BigDecimal pay = amount.multiply(new BigDecimal("100"));
+        BigDecimal pay = orderInfo.getAmount().multiply(new BigDecimal("100"));
         orderInfo.setPayType(PayTypeEnum.JSAPI.getKey());
         ResponseObject paymentInfo = paymentService.createPrepayOrder(mtUser, orderInfo, (pay.intValue()), "", 0, ip, platform, isWechat);
         if (paymentInfo.getData() == null) {

+ 9 - 107
fuint-application/src/main/java/com/fuint/module/merchantApi/controller/MerchantBalanceController.java

@@ -1,25 +1,18 @@
 package com.fuint.module.merchantApi.controller;
 
 import com.fuint.common.dto.*;
-import com.fuint.common.enums.*;
 import com.fuint.common.param.RechargeParam;
 import com.fuint.common.service.*;
-import com.fuint.common.util.CommonUtil;
 import com.fuint.common.util.TokenUtil;
 import com.fuint.framework.exception.BusinessCheckException;
 import com.fuint.framework.web.BaseController;
 import com.fuint.framework.web.ResponseObject;
 import com.fuint.repository.model.MtOrder;
-import com.fuint.repository.model.MtSetting;
-import com.fuint.repository.model.MtUser;
 import com.fuint.utils.StringUtil;
 import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * 余额接口controller
@@ -34,46 +27,21 @@ import java.util.Map;
 public class MerchantBalanceController extends BaseController {
 
     /**
-     * 配置服务接口
-     * */
-    private SettingService settingService;
-
-    /**
-     * 余额服务接口
+     * 订单服务接口
      * */
-    private BalanceService balanceService;
+    private OrderService orderService;
 
     /**
      * 支付服务接口
      * */
     private PaymentService paymentService;
 
-    /**
-     * 订单服务接口
-     * */
-    private OrderService orderService;
-
-    /**
-     * 会员服务接口
-     */
-    private MemberService memberService;
-
-    /**
-     * 商户服务接口
-     */
-    private MerchantService merchantService;
-
     /**
      * 充值余额
      * */
     @RequestMapping(value = "/doRecharge", method = RequestMethod.POST)
     @CrossOrigin
     public ResponseObject doRecharge(HttpServletRequest request, @RequestBody RechargeParam rechargeParam) throws BusinessCheckException {
-        Integer storeId = request.getHeader("storeId") == null ? 0 : Integer.parseInt(request.getHeader("storeId"));
-        String platform = request.getHeader("platform") == null ? "" : request.getHeader("platform");
-        String isWechat = request.getHeader("isWechat") == null ? "" : request.getHeader("isWechat");
-        String merchantNo = request.getHeader("merchantNo") == null ? "" : request.getHeader("merchantNo");
-
         String token = request.getHeader("Access-Token");
         if (StringUtil.isEmpty(token)) {
             return getFailureResult(1001);
@@ -84,81 +52,15 @@ public class MerchantBalanceController extends BaseController {
             return getFailureResult(1001);
         }
 
-        String rechargeAmount = rechargeParam.getRechargeAmount() == null ? "" : rechargeParam.getRechargeAmount();
-        String customAmount = rechargeParam.getCustomAmount() == null ? "" : rechargeParam.getCustomAmount();
-        if (StringUtil.isEmpty(rechargeAmount) && StringUtil.isEmpty(customAmount)) {
-            return getFailureResult(2000, "请确认充值金额");
-        }
-
-        Integer merchantId = merchantService.getMerchantId(merchantNo);
-
-        // 充值赠送金额
-        String ruleParam = "";
-        MtSetting mtSetting = settingService.querySettingByName(merchantId, SettingTypeEnum.BALANCE.getKey(), BalanceSettingEnum.RECHARGE_RULE.getKey());
-        if (StringUtil.isNotEmpty(rechargeAmount) && mtSetting != null) {
-            if (mtSetting.getValue() != null && StringUtil.isNotEmpty(mtSetting.getValue())) {
-                String rules[] = mtSetting.getValue().split(",");
-                for (String rule : rules) {
-                     String amountArr[] = rule.split("_");
-                     if (amountArr.length == 2) {
-                         if (amountArr[0].equals(rechargeAmount)) {
-                             ruleParam = rule;
-                             break;
-                         }
-                     }
-                }
+        MtOrder mtOrder = orderService.doRecharge(request, rechargeParam);
+        Boolean result = false;
+        if (mtOrder != null) {
+            UserOrderDto orderInfo = orderService.getOrderByOrderSn(mtOrder.getOrderSn());
+            if (orderInfo != null) {
+                result = paymentService.paymentCallback(orderInfo);
             }
         }
 
-        // 自定义充值没有赠送金额
-        if (StringUtil.isNotEmpty(customAmount) && Integer.parseInt(customAmount) > 0 && (StringUtil.isEmpty(rechargeAmount) || Integer.parseInt(rechargeAmount) <= 0)) {
-            rechargeAmount = customAmount;
-            ruleParam = customAmount + "_0";
-        }
-
-        if (StringUtil.isEmpty(ruleParam)) {
-            ruleParam = rechargeAmount + "_0";
-        }
-
-        BigDecimal amount = new BigDecimal(rechargeAmount);
-        if (amount.compareTo(new BigDecimal("0")) <= 0) {
-            return getFailureResult(201, "请确认充值金额");
-        }
-
-        OrderDto orderDto = new OrderDto();
-        orderDto.setType(OrderTypeEnum.RECHARGE.getKey());
-        orderDto.setUserId(userInfo.getId());
-        orderDto.setStoreId(storeId);
-        orderDto.setAmount(amount);
-        orderDto.setUsePoint(0);
-        orderDto.setRemark("会员充值");
-        orderDto.setParam(ruleParam);
-        orderDto.setStatus(OrderStatusEnum.CREATED.getKey());
-        orderDto.setPayStatus(PayStatusEnum.WAIT.getKey());
-        orderDto.setPointAmount(new BigDecimal("0"));
-        orderDto.setOrderMode("");
-        orderDto.setCouponId(0);
-        orderDto.setPlatform(platform);
-        orderDto.setMerchantId(merchantId);
-
-        MtOrder orderInfo = orderService.saveOrder(orderDto);
-
-        MtUser mtUser = memberService.queryMemberById(userInfo.getId());
-
-        String ip = CommonUtil.getIPFromHttpRequest(request);
-        BigDecimal pay = amount.multiply(new BigDecimal("100"));
-        orderInfo.setPayType(PayTypeEnum.JSAPI.getKey());
-        ResponseObject paymentInfo = paymentService.createPrepayOrder(mtUser, orderInfo, (pay.intValue()), "", 0, ip, platform, isWechat);
-        if (paymentInfo.getData() == null) {
-            return getFailureResult(201, "抱歉,发起支付失败");
-        }
-
-        Object payment = paymentInfo.getData();
-
-        Map<String, Object> data = new HashMap();
-        data.put("payment", payment);
-        data.put("orderInfo", orderInfo);
-
-        return getSuccessResult(data);
+        return getSuccessResult(result);
     }
 }

+ 43 - 0
fuint-application/src/main/java/com/fuint/module/merchantApi/controller/MerchantMemberController.java

@@ -5,6 +5,7 @@ import com.fuint.common.dto.UserDto;
 import com.fuint.common.dto.UserInfo;
 import com.fuint.common.enums.StatusEnum;
 import com.fuint.common.param.MemberDetailParam;
+import com.fuint.common.param.MemberInfoParam;
 import com.fuint.common.param.MemberListParam;
 import com.fuint.common.service.*;
 import com.fuint.common.util.DateUtil;
@@ -100,6 +101,9 @@ public class MerchantMemberController extends BaseController {
         paginationRequest.setPageSize(pageSize);
 
         Map<String, Object> params = new HashMap<>();
+        if (staffInfo.getMerchantId() != null && staffInfo.getMerchantId() > 0) {
+            params.put("merchantId", staffInfo.getMerchantId());
+        }
         if (staffInfo.getStoreId() != null && staffInfo.getStoreId() > 0) {
             params.put("storeId", staffInfo.getStoreId());
         }
@@ -196,4 +200,43 @@ public class MerchantMemberController extends BaseController {
 
         return getSuccessResult(result);
     }
+
+    /**
+     * 保存会员信息
+     */
+    @ApiOperation(value = "保存会员信息")
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    @CrossOrigin
+    public ResponseObject save(HttpServletRequest request, @RequestBody MemberInfoParam memberInfoParam) throws BusinessCheckException {
+        String token = request.getHeader("Access-Token");
+        UserInfo userInfo = TokenUtil.getUserInfoByToken(token);
+        if (userInfo == null) {
+            return getFailureResult(1001, "请先登录");
+        }
+
+        MtStaff staffInfo = null;
+        MtUser myUserInfo = memberService.queryMemberById(userInfo.getId());
+        if (myUserInfo != null && myUserInfo.getMobile() != null) {
+            staffInfo = staffService.queryStaffByMobile(myUserInfo.getMobile());
+        }
+        if (staffInfo == null) {
+            return getFailureResult(201, "该账号不是商户");
+        }
+
+        MtUser mtUser = new MtUser();
+        if (memberInfoParam.getId() != null) {
+            mtUser = memberService.queryMemberById(memberInfoParam.getId());
+        }
+        mtUser.setMerchantId(staffInfo.getMerchantId());
+        mtUser.setStoreId(staffInfo.getStoreId());
+        mtUser.setMobile(memberInfoParam.getMobile());
+        mtUser.setName(memberInfoParam.getName());
+        mtUser.setAvatar(memberInfoParam.getAvatar());
+        mtUser.setSex(memberInfoParam.getSex());
+        mtUser.setBirthday(memberInfoParam.getBirthday());
+        mtUser.setUserNo(memberInfoParam.getUserNo());
+
+        MtUser memberInfo = memberService.addMember(mtUser, null);
+        return getSuccessResult(memberInfo);
+    }
 }