Bläddra i källkod

fixed 微信会员卡功能迭代

fushengqian 1 år sedan
förälder
incheckning
6d9f5b86b7

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

@@ -11,7 +11,8 @@ public enum UserSettingEnum {
     SUBMIT_ORDER_NEED_PHONE("submitOrderNeedPhone", "提交订单是否需要手机号码"),
     LOGIN_NEED_PHONE("loginNeedPhone", "登录是否需要手机号"),
     OPEN_WX_CARD("openWxCard", "开通微信会员卡"),
-    WX_MEMBER_CARD("wxMemberCard", "微信会员卡");
+    WX_MEMBER_CARD("wxMemberCard", "微信会员卡设置"),
+    WX_MEMBER_CARD_ID("wxMemberCardId", "微信会员卡ID");
 
     private String key;
 

+ 9 - 1
fuint-application/src/main/java/com/fuint/common/service/WeixinService.java

@@ -149,6 +149,14 @@ public interface WeixinService {
      * @param merchantId 商户ID
      * @return
      * */
-    String createWxCard(Integer merchantId);
+    String createWxCard(Integer merchantId) throws BusinessCheckException;
+
+    /**
+     * 微信卡券apiTicket
+     *
+     * @param merchantId 商户ID
+     * @return
+     * */
+    String getApiTicket(Integer merchantId);
 
 }

+ 5 - 3
fuint-application/src/main/java/com/fuint/common/service/impl/SettingServiceImpl.java

@@ -88,9 +88,11 @@ public class SettingServiceImpl extends ServiceImpl<MtSettingMapper, MtSetting>
             mtSettingMapper.updateById(settingInfo);
         } else {
             // 创建配置
-            mtSetting.setCreateTime(new Date());
-            mtSetting.setStatus(StatusEnum.ENABLED.getKey());
-            mtSettingMapper.insert(mtSetting);
+            if (mtSetting.getName() != null && mtSetting.getValue() != null) {
+                mtSetting.setCreateTime(new Date());
+                mtSetting.setStatus(StatusEnum.ENABLED.getKey());
+                mtSettingMapper.insert(mtSetting);
+            }
         }
 
         return mtSetting;

+ 27 - 1
fuint-application/src/main/java/com/fuint/common/service/impl/WeixinServiceImpl.java

@@ -686,7 +686,7 @@ public class WeixinServiceImpl implements WeixinService {
      * @return
      * */
     @Override
-    public String createWxCard(Integer merchantId) {
+    public String createWxCard(Integer merchantId) throws BusinessCheckException {
         String cardId = "";
         try {
             MtSetting mtSetting = settingService.querySettingByName(merchantId, UserSettingEnum.WX_MEMBER_CARD.getKey());
@@ -751,14 +751,40 @@ public class WeixinServiceImpl implements WeixinService {
             JSONObject data = (JSONObject) JSONObject.parse(response);
             if (data.get("errcode").toString().equals("0")) {
                 cardId = data.get("card_id").toString();
+            } else {
+                throw new BusinessCheckException("开通微信卡券出错啦:"+data.get("errmsg").toString());
             }
         } catch (Exception e) {
             logger.error("开通微信卡券出错啦:{}", e.getMessage());
+            throw new BusinessCheckException("开通微信卡券出错啦");
         }
 
         return cardId;
     }
 
+    /**
+     * 微信卡券apiTicket
+     *
+     * @param merchantId 商户ID
+     * @return
+     * */
+    @Override
+    public String getApiTicket(Integer merchantId) {
+        try {
+            String accessToken = getAccessToken(merchantId, true);
+            String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + accessToken + "&type=wx_card";
+            String response = HttpRESTDataClient.requestGet(url);
+            logger.error("微信卡券apiTicket接口返回:{}", response);
+            JSONObject data = (JSONObject) JSONObject.parse(response);
+            if (data.get("errcode").toString().equals("0")) {
+                return data.get("card_id").toString();
+            }
+        } catch (Exception e) {
+            return "";
+        }
+        return "";
+    }
+
     /**
      * 刷卡支付
      *

+ 19 - 5
fuint-application/src/main/java/com/fuint/module/backendApi/controller/BackendMemberController.java

@@ -409,12 +409,14 @@ public class BackendMemberController extends BaseController {
             }
         }
 
+        String imagePath = settingService.getUploadBasePath();
         Map<String, Object> result = new HashMap<>();
         result.put("getCouponNeedPhone", getCouponNeedPhone);
         result.put("submitOrderNeedPhone", submitOrderNeedPhone);
         result.put("loginNeedPhone", loginNeedPhone);
         result.put("openWxCard", openWxCard);
         result.put("wxMemberCard", wxMemberCard);
+        result.put("imagePath", imagePath);
 
         return getSuccessResult(result);
     }
@@ -447,7 +449,6 @@ public class BackendMemberController extends BaseController {
             MtSetting mtSetting = new MtSetting();
             mtSetting.setType(SettingTypeEnum.USER.getKey());
             mtSetting.setName(setting.getKey());
-
             if (setting.getKey().equals(UserSettingEnum.GET_COUPON_NEED_PHONE.getKey())) {
                 mtSetting.setValue(getCouponNeedPhone);
             } else if (setting.getKey().equals(UserSettingEnum.SUBMIT_ORDER_NEED_PHONE.getKey())) {
@@ -458,20 +459,33 @@ public class BackendMemberController extends BaseController {
                 mtSetting.setValue(openWxCard);
             } else if (setting.getKey().equals(UserSettingEnum.WX_MEMBER_CARD.getKey())) {
                 mtSetting.setValue(wxMemberCard);
+                if (StringUtil.isEmpty(wxMemberCard)) {
+                    mtSetting.setValue(null);
+                }
             }
-
             mtSetting.setDescription(setting.getValue());
             mtSetting.setOperator(accountInfo.getAccountName());
             mtSetting.setUpdateTime(new Date());
             mtSetting.setMerchantId(accountInfo.getMerchantId());
             mtSetting.setStoreId(0);
-
             settingService.saveSetting(mtSetting);
         }
 
         MtSetting cardSetting = settingService.querySettingByName(accountInfo.getMerchantId(), UserSettingEnum.WX_MEMBER_CARD.getKey());
-        if (cardSetting != null && accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
-            weixinService.createWxCard(accountInfo.getMerchantId());
+        MtSetting cardIdSetting = settingService.querySettingByName(accountInfo.getMerchantId(), UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
+        if (cardIdSetting == null && cardSetting != null && accountInfo.getMerchantId() != null && accountInfo.getMerchantId() > 0) {
+            String cardId = weixinService.createWxCard(accountInfo.getMerchantId());
+            if (StringUtil.isNotEmpty(cardId)) {
+                MtSetting mtSetting = new MtSetting();
+                mtSetting.setType(SettingTypeEnum.USER.getKey());
+                mtSetting.setName(UserSettingEnum.WX_MEMBER_CARD_ID.getKey());
+                mtSetting.setValue(cardId);
+                mtSetting.setOperator(accountInfo.getAccountName());
+                mtSetting.setUpdateTime(new Date());
+                mtSetting.setMerchantId(accountInfo.getMerchantId());
+                mtSetting.setStoreId(0);
+                settingService.saveSetting(mtSetting);
+            }
         }
 
         return getSuccessResult(true);

+ 4 - 4
fuint-application/src/main/java/com/fuint/module/clientApi/controller/ClientCouponController.java

@@ -122,17 +122,17 @@ public class ClientCouponController extends BaseController {
     /**
      * 查询卡券详情
      *
-     * @param couponInfoParam Request对象
+     * @param params Request对象
      */
     @ApiOperation(value = "查询卡券详情")
     @RequestMapping(value = "/detail", method = RequestMethod.POST)
     @CrossOrigin
-    public ResponseObject detail(HttpServletRequest request, @RequestBody CouponInfoParam couponInfoParam) throws BusinessCheckException, InvocationTargetException, IllegalAccessException {
+    public ResponseObject detail(HttpServletRequest request, @RequestBody CouponInfoParam params) throws BusinessCheckException, InvocationTargetException, IllegalAccessException {
         String token = request.getHeader("Access-Token");
         UserInfo mtUser = TokenUtil.getUserInfoByToken(token);
 
-        Integer couponId = couponInfoParam.getCouponId() == null ? 0 : couponInfoParam.getCouponId();
-        String userCouponCode = couponInfoParam.getUserCouponCode() == null ? "" : couponInfoParam.getUserCouponCode();
+        Integer couponId = params.getCouponId() == null ? 0 : params.getCouponId();
+        String userCouponCode = params.getUserCouponCode() == null ? "" : params.getUserCouponCode();
 
         MtCoupon couponInfo = new MtCoupon();
         if (StringUtil.isNotEmpty(userCouponCode)) {