Selaa lähdekoodia

企业微信退款接口

zoujiajian 1 vuosi sitten
vanhempi
sitoutus
002b85d97d

+ 30 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/WxCorpController.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
@@ -18,17 +19,20 @@ import com.cyksj.dto.CorpOauth2UserInfo;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GroupsRelationExpiryRecordMapper;
+import com.cyksj.mapper.corp.CorpFollowMapper;
 import com.cyksj.mapper.corp.CorpUserAuthMapper;
 import com.cyksj.mapper.corp.CorpUserTagMapper;
 import com.cyksj.model.dto.AuthRedirect;
 import com.cyksj.model.entity.*;
 import com.cyksj.model.manage.views.CorpQyMsgAuditChatView;
 import com.cyksj.model.manage.views.CorpWxOrderDonView;
+import com.cyksj.model.request.OrderRefundReq;
 import com.cyksj.model.request.corp.CorpCommonReq;
 import com.cyksj.model.views.*;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.corp.CorpService;
 import com.cyksj.service.corp.CorpUserService;
+import com.cyksj.service.mange.CmsOrderDonService;
 import com.cyksj.service.user.UserBindRelationService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
@@ -82,6 +86,10 @@ public class WxCorpController {
 
 	private final UserBindRelationService userBindRelationService;
 
+	private final CmsOrderDonService cmsOrderDonService;
+
+	private final CorpFollowMapper corpFollowMapper;
+
 	private final static String CORP_UUID = "corp-uuid";
 
 	/**
@@ -480,4 +488,26 @@ public class WxCorpController {
 				.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(orderDonViews);
 	}
+
+	/**
+	 * 企业微信订单统一退款
+	 */
+	@PostMapping("/unified/refund")
+	public Result<String> unifiedRefund(@RequestBody @Validated OrderRefundReq refundReq) throws Exception {
+		String followId = getCorpUuid();
+		if (StrUtil.isEmpty(followId)) {
+			throw BusinessRuntimeException.getInstance("请先授权登录");
+		}
+		CorpFollow corpFollow = corpFollowMapper.selectOne(Wrappers.lambdaQuery(CorpFollow.class)
+				.eq(CorpFollow::getUserid, followId)
+				.eq(CorpFollow::getWxCorpId, 2)
+				.last("limit 1"));
+		if (corpFollow == null) {
+			corpFollow = new CorpFollow();
+			corpFollow.setName("企业客服");
+		}
+		refundReq.setOperator(corpFollow.getName());
+		cmsOrderDonService.unifiedRefund(refundReq);
+		return GatewayResponse.SUCCESS.newBuilder().toResult("退款成功");
+	}
 }