Quellcode durchsuchen

fix 同步企业微信接口

zoujiajian vor 1 Jahr
Ursprung
Commit
a554fc8eef

+ 47 - 0
netflix-dao/src/main/java/com/cyksj/model/views/TicketView.java

@@ -1,6 +1,7 @@
 package com.cyksj.model.views;
 
 import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
@@ -81,4 +82,50 @@ public class TicketView {
 	 */
 	@DbField("gt.status")
 	private String groupsTripStatus;
+
+	@DbField("gdk.id")
+	private Long skuId;
+
+	@DbField("gd.status")
+	private Boolean goodsStatus;
+
+	/**
+	 * 二级分类
+	 * 虚物品 1邀请制 2非邀请制
+	 */
+	@DbField("gd.second_type")
+	private Integer secondType;
+
+	@DbField("gdk.status")
+	private Boolean skuStatus;
+
+	@DbField("gdk.months")
+	private Integer months;
+
+	@DbField("gdk.days")
+	private Integer days;
+
+	@DbField("gdk.num")
+	private Integer skuNum;
+
+	@DbField("gdk.price")
+	private BigDecimal price;
+
+	@DbField("gdk.is_mirror")
+	private Boolean isMirror;
+
+	@DbIgnore
+	private String orderNo;
+
+	@DbIgnore
+	private Long orderId;
+
+	@DbIgnore
+	private String transactionId;
+
+	/**
+	 * 邀请制是否完成
+	 */
+	@DbIgnore
+	private Boolean isComplete;
 }

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/corp/CorpUserService.java

@@ -23,4 +23,6 @@ public interface CorpUserService {
 	void markCorpUser(CorpCommonReq corpCommonReq) throws Exception;
 
 	void spotifySelfService(Long orderId);
+
+	String getPhoneTmpCode(String phone);
 }

+ 18 - 0
netflix-service/src/main/java/com/cyksj/service/corp/impl/CorpUserServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.StringUtil;
 import com.cyksj.config.corp.WeChatCorpFactory;
 import com.cyksj.mapper.*;
 import com.cyksj.mapper.corp.CorpFollowMapper;
@@ -74,6 +75,8 @@ public class CorpUserServiceImpl implements CorpUserService {
 
 	private final CmsUserMapper cmsUserMapper;
 
+	private final PhoneCodeMapper phoneCodeMapper;
+
 	@Override
 	public YHLXUserDetailView getUserDetailView(String externalUserid, String corpId) throws Exception {
 		CorpUser corpUser = getExternalUserId(corpId, externalUserid);
@@ -267,6 +270,21 @@ public class CorpUserServiceImpl implements CorpUserService {
 		}
 	}
 
+	@Override
+	public String getPhoneTmpCode(String phone) {
+		PhoneCode phoneCode = phoneCodeMapper.selectOne(Wrappers.lambdaQuery(PhoneCode.class)
+				.eq(PhoneCode::getPhone, phone).last("limit 1"));
+		if (phoneCode == null) {
+			phoneCode = new PhoneCode();
+		}
+		String code = StringUtil.getRandomCodeStr(null);
+		phoneCode.setCode(code);
+		if (phoneCode.getId() == null) {
+			phoneCodeMapper.insert(phoneCode);
+		} else phoneCodeMapper.updateById(phoneCode);
+		return code;
+	}
+
 	public CorpUser getExternalUserId(String corpId, String externalUserid) throws Exception {
 		WxCorpApp wxCorpApp = WeChatCorpFactory.getCorpConfigStrategy(corpId);
 

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

@@ -7,6 +7,7 @@ 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.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
 import com.cyksj.common.util.Codec;
@@ -19,6 +20,7 @@ import com.cyksj.dto.CorpOauth2UserInfo;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GroupsRelationExpiryRecordMapper;
+import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.corp.CorpFollowMapper;
 import com.cyksj.mapper.corp.CorpUserAuthMapper;
 import com.cyksj.mapper.corp.CorpUserTagMapper;
@@ -96,6 +98,8 @@ public class WxCorpController {
 
 	private final ClaudeService claudeService;
 
+	private final OrderDonMapper orderDonMapper;
+
 	private final static String CORP_UUID = "corp-uuid";
 
 	/**
@@ -468,6 +472,24 @@ public class WxCorpController {
 				.field(TicketView::getGrStatus, List.of("validity", "outside")).op(Operator.InList)
 				.orderBy(TicketView::getExpiryTime).asc()
 				.build());
+		ticketViews.getDataList().forEach(ticket->{
+			OrderDon orderDon = orderDonMapper.selectOne(Wrappers.lambdaQuery(OrderDon.class)
+					.eq(OrderDon::getRelationId, ticket.getRelationId())
+					.eq(OrderDon::getUserId, ticket.getUserId())
+					.eq(OrderDon::getOrderType, 1)
+					.notIn(OrderDon::getStatus, Constant.noOrderAllStatus)
+					.orderByDesc(OrderDon::getId)
+					.last("limit 1"));
+			if (orderDon != null) {
+				ticket.setOrderNo(orderDon.getOrderNo());
+				ticket.setOrderId(orderDon.getId());
+				ticket.setTransactionId(orderDon.getTransactionId());
+				if (ticket.getSecondType() != null && ticket.getSecondType() == 1) {
+					//是否完成邀请 根据订单状态
+					ticket.setIsComplete(orderDon.getStatus() == OrderDon.Status.complete ? true : false);
+				}
+			}
+		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(ticketViews);
 	}
 
@@ -543,4 +565,20 @@ public class WxCorpController {
 		claudeService.clearNumByRelationId(relationId);
 		return GatewayResponse.SUCCESS.newBuilder().toResult();
 	}
+
+	/**
+	 * 获取手机临时验证码
+	 */
+	@GetMapping("/get/tmp/code")
+	public Result<String> getPhoneTmpCode(String phone) throws Exception {
+		String corpUuid = getCorpUuid();
+		if (StrUtil.isEmpty(corpUuid)) {
+			return GatewayResponse.SUCCESS.newBuilder().toResult();
+		}
+		if (StrUtil.isEmpty(phone)) {
+			throw BusinessRuntimeException.getInstance("请输入手机号");
+		}
+		String code = corpUserService.getPhoneTmpCode(phone);
+		return GatewayResponse.SUCCESS.newBuilder().toResult(code);
+	}
 }