فهرست منبع

1、解决异步确定事件二次调用无法触发的问题
2、解决忘记密码一直提示手机号不能为空的问题

rayson 8 ماه پیش
والد
کامیت
11d5951d34

+ 1 - 1
menduner/menduner-common/src/main/java/com/citu/module/menduner/common/enums/PointBizTypeEnum.java

@@ -27,7 +27,7 @@ public enum PointBizTypeEnum {
     INVITE(10, "邀请注册", "邀请注册,获得 {} 积分", true),
     MEMBERSHIP(11, "购买会员套餐", "购买会员套餐,获取 {} 积分", true),
     SIGN(98, "签到", "签到获得 {} 积分", true),
-    EVENT(99, "事件跟踪", "访问[{}],{}{} 积分", true),
+    EVENT(99, "事件跟踪", "[{}],{}{} 积分", true),
     RECOMMEND_TASK(100, "完成任务", "[{}],{}{} 积分", true),
     ;
 

+ 4 - 3
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/dal/mysql/event/EventRecordMapper.java

@@ -30,11 +30,12 @@ public interface EventRecordMapper extends BaseMapperX<EventRecordDO> {
                 .orderByDesc(EventRecordDO::getId));
     }
 
-    default List<EventRecordDO> getList(Long userId, String url,  LocalDateTime startDate, LocalDateTime endDate) {
+    default List<EventRecordDO> getList(Long userId, String url, String scene,
+                                        LocalDateTime startDate, LocalDateTime endDate) {
         LambdaQueryWrapperX<EventRecordDO> wrapperX = new LambdaQueryWrapperX<EventRecordDO>();
         wrapperX.eq(EventRecordDO::getUserId, userId)
-                .eq(EventRecordDO::getUrl, url);
-
+                .eq(EventRecordDO::getUrl, url)
+                .eqIfPresent(EventRecordDO::getScene, scene);
         if (null != startDate) {
             wrapperX.ge(EventRecordDO::getDate, startDate);
         }

+ 2 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/event/EventRecordService.java

@@ -59,10 +59,11 @@ public interface EventRecordService {
      *
      * @param userId      用户id
      * @param url         事件地址
+     * @param scene    场景
      * @param metricValue 事件指标值
      * @return 事件记录分页
      */
-    Integer getEventCount(Long userId, String url, String metricValue);
+    Integer getEventCount(Long userId, String url, String scene, String metricValue);
 
     /**
      * 创建事件记录

+ 2 - 2
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/event/EventRecordServiceImpl.java

@@ -127,7 +127,7 @@ public class EventRecordServiceImpl implements EventRecordService {
     }
 
     @Override
-    public Integer getEventCount(Long userId, String url, String metricValue) {
+    public Integer getEventCount(Long userId, String url, String scene, String metricValue) {
         //TODO 读多写多场景,不好使用缓存,暂时查库
         EventMetricDO eventMetric = eventMetricService.getByValue(metricValue);
         LocalDateTime[] dateRange = generateDateRange(eventMetric);
@@ -136,7 +136,7 @@ public class EventRecordServiceImpl implements EventRecordService {
         } else if (eventMetric.getValue().contains("point")) {
             return userAccountApi.getPointCount(userId, null, dateRange[0], dateRange[1]).getCheckedData();
         }
-        List<EventRecordDO> list = eventRecordMapper.getList(userId, url, dateRange[0], dateRange[1]);
+        List<EventRecordDO> list = eventRecordMapper.getList(userId, url,scene, dateRange[0], dateRange[1]);
         if (ObjectUtil.isEmpty(list)) {
             return 0;
         }

+ 6 - 8
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/event/EventTrackServiceImpl.java

@@ -29,7 +29,6 @@ import com.citu.module.menduner.system.enums.MathOperationEnum;
 import lombok.extern.slf4j.Slf4j;
 import org.jeasy.rules.api.Facts;
 import org.springframework.stereotype.Service;
-import org.springframework.util.StringUtils;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
@@ -150,8 +149,7 @@ public class EventTrackServiceImpl implements EventTrackService {
 
     @Override
     @DSTransactional
-    public List<EventTrackPointRespVO> trigger(Long userId, String url, String scene, PointBizTypeEnum bizType) {
-        List<EventTrackPointRespVO> respVOList = new ArrayList<>();
+    public List<EventTrackPointRespVO> trigger(Long userId, String url, String scene, PointBizTypeEnum bizType) {List<EventTrackPointRespVO> respVOList = new ArrayList<>();
         // 获取指定URL的积分规则配置列表,因为是查询地址的配置,所以不需要带上动态的场景
         List<PointRuleConfigDO> configList = ruleConfigService.getByUrlList(url);
 
@@ -163,7 +161,7 @@ public class EventTrackServiceImpl implements EventTrackService {
         // 遍历处理每个积分规则配置
         for (PointRuleConfigDO config : configList) {
             // 处理单个积分规则
-            EventTrackPointRespVO respVO = processPointRule(config, userId, url, bizType);
+            EventTrackPointRespVO respVO = processPointRule(config, userId, url, scene, bizType);
             // 将处理结果添加到响应列表中
             respVOList.add(respVO);
         }
@@ -182,10 +180,10 @@ public class EventTrackServiceImpl implements EventTrackService {
      * @return EventTrackPointRespVO
      **/
     private EventTrackPointRespVO processPointRule(PointRuleConfigDO config,
-                                                   Long userId, String url, PointBizTypeEnum bizType) {
+                                                   Long userId, String url, String scene, PointBizTypeEnum bizType) {
         EventTrackPointRespVO respVO = new EventTrackPointRespVO();
         // 获取触发规则的执行上下文信息
-        Map<String, Object> triggerMap = getRuleContextMap(userId, config.getUrl(), config.getTriggerRule());
+        Map<String, Object> triggerMap = getRuleContextMap(userId, config.getUrl(), scene, config.getTriggerRule());
         // 创建积分规则对象
         PointRule pointRule = createPointRule(config, triggerMap, null);
 
@@ -263,13 +261,13 @@ public class EventTrackServiceImpl implements EventTrackService {
      * @param url       url
      * @return Map<String, Object>
      **/
-    private Map<String, Object> getRuleContextMap(Long userId, String url, Condition condition) {
+    private Map<String, Object> getRuleContextMap(Long userId, String url, String scene, Condition condition) {
         Map<String, Object> map = new LinkedHashMap<>();
         List<String> keyList = EasyRulesEngine.extractUniqueKeys(condition);
 
         for (String key : keyList) {
             if (!map.containsKey(key)) {
-                map.put(key, eventRecordService.getEventCount(userId, url, key));
+                map.put(key, eventRecordService.getEventCount(userId, url, scene, key));
             }
         }
 

+ 8 - 2
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/MdeAuthConvert.java

@@ -11,6 +11,7 @@ import com.citu.module.system.api.social.dto.SocialUserBindReqDTO;
 import com.citu.module.system.api.social.dto.SocialWxJsapiSignatureRespDTO;
 import com.citu.module.system.enums.sms.SmsSceneEnum;
 import org.mapstruct.Mapper;
+import org.mapstruct.Mapping;
 import org.mapstruct.factory.Mappers;
 
 @Mapper
@@ -20,18 +21,23 @@ public interface MdeAuthConvert {
 
     SocialUserBindReqDTO convert(Long userId, Integer userType, AppMdeAuthSocialLoginReqVO reqVO);
 
+    @Mapping(source = "reqVO.phone", target = "mobile")
     SmsCodeSendReqDTO convert(AppMdeAuthSmsSendReqVO reqVO);
 
+    @Mapping(source = "reqVO.phone", target = "mobile")
     SmsCodeUseReqDTO convert(AppMdeUserResetPasswordReqVO reqVO, SmsSceneEnum scene, String usedIp);
 
+    @Mapping(source = "reqVO.phone", target = "mobile")
     SmsCodeUseReqDTO convert(AppMdeAuthSmsLoginReqVO reqVO, Integer scene, String usedIp);
 
     AppMdeAuthLoginRespVO convert(OAuth2AccessTokenRespDTO bean, String openid);
 
-    SmsCodeValidateReqDTO convert(AppMdeAuthSmsValidateReqVO bean);
+    @Mapping(source = "reqVO.phone", target = "mobile")
+    SmsCodeValidateReqDTO convert(AppMdeAuthSmsValidateReqVO reqVO);
 
     SocialWxJsapiSignatureRespDTO convert(SocialWxJsapiSignatureRespDTO bean);
 
-    SmsCodeUseReqDTO convert(AppMdeAuthSmsRegisterReqVO bean,Integer scene, String usedIp);
+    @Mapping(source = "reqVO.phone", target = "mobile")
+    SmsCodeUseReqDTO convert(AppMdeAuthSmsRegisterReqVO reqVO,Integer scene, String usedIp);
 
 }