Просмотр исходного кода

添加易宝微信公众号配置

silent 4 лет назад
Родитель
Сommit
8bbbcd04e9

+ 1 - 0
src/main/java/org/springblade/gateway/goods_gateway/util/HelpGoodsUtil.java

@@ -34,6 +34,7 @@ public class HelpGoodsUtil {
 		List<HelpGoods> list = JSONArray.parseArray(bladeRedis.hGet(HelpGoodsConstant.HELP_GOODS_CACHE, activeId),HelpGoods.class);
 		if(ObjectUtils.isEmpty(list)){
 			list = helpGoodsService.list(Wrappers.<HelpGoods>lambdaQuery()
+				.eq(HelpGoods::getStatus,1)
 				.eq(HelpGoods::getActiveId, activeId));
 			//设置缓存
 			setHelpGoodsListCache(activeId,list);

+ 36 - 0
src/main/java/org/springblade/gateway/yeepay_gateway/controller/AppYeepayController.java

@@ -0,0 +1,36 @@
+package org.springblade.gateway.yeepay_gateway.controller;
+
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.api.R;
+import org.springblade.gateway.yeepay_gateway.service.AppYeepayService;
+import org.springblade.gateway.yeepay_gateway.vo.WechatConfigQueryVO;
+import org.springblade.yeePay.entity.saas.WechatConfigAddDto;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author: Silent
+ * @Description
+ * @Date: Created in 11:08 2021/11/12
+ * @Modified By:
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("app/yeepay")
+public class AppYeepayController {
+	private final AppYeepayService appYeepayService;
+
+	@GetMapping("/getWechatConfigQuery")
+	@ApiOperation(value = "商店公众号配置查询")
+	public R<List<WechatConfigQueryVO>> getWechatConfigQuery() {
+		return appYeepayService.getWechatConfigQuery();
+	}
+
+	@PostMapping("/wechatConfigAdd")
+	@ApiOperation(value = "商店公众号配置")
+	public R wechatConfigAdd(@RequestBody WechatConfigAddDto wechatConfigAddDto) {
+		return appYeepayService.wechatConfigAdd(wechatConfigAddDto);
+	}
+}

+ 29 - 0
src/main/java/org/springblade/gateway/yeepay_gateway/dto/AppIdList.java

@@ -0,0 +1,29 @@
+package org.springblade.gateway.yeepay_gateway.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springblade.yeePay.common.YeepayApiConstant;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("支付appId目录")
+class AppIdList {
+
+	@ApiModelProperty(value = "支付appId")
+	String appId;
+
+	@ApiModelProperty(value = "支付appSecret")
+	String appSecret;
+
+	@ApiModelProperty(value = "appId类型(OFFICIAL_ACCOUNT:公众号;MINI_PROGRAM:小程序)")
+	YeepayApiConstant.appIdType appIdType;
+
+	@ApiModelProperty(value = "推荐关注appId")
+	String subscribeAppId;
+}

+ 34 - 0
src/main/java/org/springblade/gateway/yeepay_gateway/dto/WechatConfigAddDto.java

@@ -0,0 +1,34 @@
+package org.springblade.gateway.yeepay_gateway.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("公众号配置接口")
+public class WechatConfigAddDto {
+
+	@NotBlank
+	@ApiModelProperty(value = "发起方商户编号", required = true)
+	String parentMerchantNo;
+
+	@NotBlank
+	@ApiModelProperty(value = "商户编号", required = true)
+	String merchantNo;
+
+	@ApiModelProperty(value = "支付授权目录列表")
+	List<String> tradeAuthDirList;
+
+	@ApiModelProperty(value = "支付appId目录列表JSON字符串;")
+	List<AppIdList> appIdList;
+}
+

+ 78 - 0
src/main/java/org/springblade/gateway/yeepay_gateway/service/AppYeepayService.java

@@ -0,0 +1,78 @@
+package org.springblade.gateway.yeepay_gateway.service;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.yeepay.yop.sdk.service.common.response.YopResponse;
+import lombok.SneakyThrows;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.tool.api.R;
+import org.springblade.gateway.yeepay_gateway.vo.WechatConfigQueryVO;
+import org.springblade.yeePay.common.YeePayConst;
+import org.springblade.yeePay.entity.saas.WechatConfigAddDto;
+import org.springblade.yeePay.entity.saas.WechatConfigQueryDto;
+import org.springblade.yeePay.service.YeepaySaasService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @Author: Silent
+ * @Description
+ * @Date: Created in 15:26 2021/12/23
+ * @Modified By:
+ */
+@Service
+public class AppYeepayService {
+	@Autowired
+	private YeepaySaasService yeepaySaasService;
+	@Autowired
+	private YeePayConst yeePayConst;
+
+	/**
+	 * 查询微信配置
+	 *
+	 * @return
+	 */
+	@SneakyThrows
+	public R<List<WechatConfigQueryVO>> getWechatConfigQuery() {
+		YopResponse yopResponse = yeepaySaasService.wechatConfigQuery(
+			WechatConfigQueryDto.builder()
+				.parentMerchantNo(yeePayConst.getPlatformServiceNo())
+				.merchantNo(yeePayConst.getMerchantNo())
+				/*.appIdType(YeepayApiConstant.appIdType.OFFICIAL_ACCOUNT)*/.build());
+		JSONObject res = JSON.parseObject(yopResponse.getStringResult());
+		if (!Objects.equals(res.getString("code"), "00000")) {
+			throw new ServiceException(res.getString("message"));
+		}
+		String configResult = res.getString("configResult");
+		if (StringUtils.isNotEmpty(configResult)) {
+			return R.data(new ObjectMapper().readValue(res.getString("configResult"), new TypeReference<List<WechatConfigQueryVO>>() {
+			}));
+		} else {
+			return R.data(Collections.emptyList());
+		}
+	}
+
+	/**
+	 * 添加微信配置
+	 *
+	 * @param wechatConfigAddDto
+	 * @return
+	 */
+	public R wechatConfigAdd(WechatConfigAddDto wechatConfigAddDto) {
+		wechatConfigAddDto.setMerchantNo(yeePayConst.getMerchantNo());
+		wechatConfigAddDto.setParentMerchantNo(yeePayConst.getPlatformServiceNo());
+		YopResponse yopResponse = yeepaySaasService.wechatConfigAdd(wechatConfigAddDto);
+		JSONObject res = JSON.parseObject(yopResponse.getStringResult());
+		if (!Objects.equals(res.getString("code"), "00000")) {
+			throw new ServiceException(res.getString("message"));
+		}
+		return R.success("配置成功!");
+	}
+}

+ 71 - 0
src/main/java/org/springblade/gateway/yeepay_gateway/vo/WechatConfigQueryVO.java

@@ -0,0 +1,71 @@
+package org.springblade.gateway.yeepay_gateway.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springblade.yeePay.common.YeepayApiConstant;
+
+import java.util.List;
+
+/**
+ * @author July
+ * @version 1.0.0
+ * @ClassName WechatConfigQueryVO.java
+ * @Description 公众号配置
+ * @createTime 2021年10月15日 09:33:00
+ */
+@Builder
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WechatConfigQueryVO {
+	@ApiModelProperty("报备商户号")
+	private String reportMerchantNo;
+
+	@ApiModelProperty("支付授权目录列表")
+	private List<TradeAuthDir> tradeAuthDirList;
+
+	@ApiModelProperty("报备商户号")
+	private List<APPId> appIdList;
+
+	@Builder
+	@Data
+	@AllArgsConstructor
+	@NoArgsConstructor
+	private static class TradeAuthDir {
+		@ApiModelProperty("失败原因")
+		private String failReason;
+
+		@ApiModelProperty("配置状态")
+		private String status;
+
+		@ApiModelProperty("支付授权目录")
+		private String tradeAuthDir;
+	}
+
+	@Builder
+	@Data
+	@AllArgsConstructor
+	@NoArgsConstructor
+	private static class APPId {
+		@ApiModelProperty("支付appId")
+		private String appId;
+
+		@ApiModelProperty("支付appSecret")
+		private String appSecret;
+
+		@ApiModelProperty("appId类型")
+		private YeepayApiConstant.appIdType appIdType;
+
+		@ApiModelProperty("推荐关注appId")
+		private String subscribeAppId;
+
+		@ApiModelProperty("配置状态")
+		private String status;
+
+		@ApiModelProperty("失败原因")
+		private String failReason;
+	}
+}