소스 검색

1、解决热门职位接口提示登录问题
2、增加积分规则相关逻辑和接口

rayson 1 년 전
부모
커밋
47b2924551
13개의 변경된 파일193개의 추가작업 그리고 29개의 파일을 삭제
  1. 21 0
      menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/event/EventIndicatorEnum.java
  2. 19 0
      menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/event/EventValueTypeEnum.java
  3. 21 3
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/common/CommonController.java
  4. 15 7
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/event/EventTrackController.java
  5. 18 0
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/pointruleconfig/PointRuleConfigController.java
  6. 21 0
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/common/EventRespVO.java
  7. 3 2
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/pointruleconfig/PointRuleConfigRespVO.java
  8. 3 2
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/pointruleconfig/PointRuleConfigSaveReqVO.java
  9. 10 0
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/PointRuleConfigService.java
  10. 48 9
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/PointRuleConfigServiceImpl.java
  11. 2 5
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/position/AppPositionController.java
  12. 3 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/position/PositionServiceImpl.java
  13. 9 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/LoginUserContext.java

+ 21 - 0
menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/event/EventIndicatorEnum.java

@@ -0,0 +1,21 @@
+package com.citu.module.menduner.reward.enums.event;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 事件指标 今日点击数 | 当月点击数 | 当年点击数 | 总点击数
+ **/
+@Getter
+@AllArgsConstructor
+public enum EventIndicatorEnum {
+    TODAY("今日点击数", "todays_clicks", EventValueTypeEnum.NUMBER.getType(),"用户该事件当日访问数量"),
+    MONTH("当月点击数", "monthly_click", EventValueTypeEnum.NUMBER.getType(),"用户该事件当月访问数量"),
+    YEAR("当年点击数", "yearly_click", EventValueTypeEnum.NUMBER.getType(),"用户该事件当年访问数量"),
+    TOTAL("总点击数", "total_click", EventValueTypeEnum.NUMBER.getType(),"用户该事件总访问数量");
+
+    final String name;
+    final String value;
+    final String valueType;
+    final String remark;
+}

+ 19 - 0
menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/event/EventValueTypeEnum.java

@@ -0,0 +1,19 @@
+package com.citu.module.menduner.reward.enums.event;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 事件值类型 0 字符类型 | 1 数值类型 | 2 布尔类型 | 3 时间类型
+ * **/
+@Getter
+@AllArgsConstructor
+public enum EventValueTypeEnum {
+    STRING("0", "字符类型"),
+    NUMBER("1", "数值类型"),
+    BOOLEAN("2", "布尔类型"),
+    TIME("3", "时间类型");
+
+    private final String type;
+    private final String name;
+}

+ 21 - 3
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/common/CommonController.java

@@ -2,8 +2,10 @@ package com.citu.module.menduner.reward.controller.admin.common;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
+import com.citu.module.menduner.reward.controller.base.common.EventRespVO;
 import com.citu.module.menduner.reward.controller.base.common.OperationRespVO;
 import com.citu.module.menduner.reward.enums.OperationEnum;
+import com.citu.module.menduner.reward.enums.event.EventIndicatorEnum;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.validation.annotation.Validated;
@@ -12,7 +14,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.security.PermitAll;
-
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,9 +31,9 @@ public class CommonController {
     @GetMapping("/get/operation")
     @Operation(summary = "获取操作运算符")
     public CommonResult<List<OperationRespVO>> getOperation() {
-        List<OperationRespVO> list =new ArrayList<>();
+        List<OperationRespVO> list = new ArrayList<>();
         for (OperationEnum value : OperationEnum.values()) {
-            OperationRespVO respVO =new OperationRespVO();
+            OperationRespVO respVO = new OperationRespVO();
             respVO.setOperation(value.getOperator());
             respVO.setRemark(value.getRemark());
             list.add(respVO);
@@ -40,5 +41,22 @@ public class CommonController {
         return success(list);
     }
 
+    @PermitAll
+    @PreAuthenticated
+    @GetMapping("/get/event-indicator")
+    @Operation(summary = "获取事件指标列表")
+    public CommonResult<List<EventRespVO>> getEventIndicator() {
+        List<EventRespVO> list = new ArrayList<>();
+        for (EventIndicatorEnum value : EventIndicatorEnum.values()) {
+            EventRespVO respVO = new EventRespVO();
+            respVO.setName(value.getName());
+            respVO.setValue(value.getValue());
+            respVO.setType(value.getValueType());
+            respVO.setRemark(value.getRemark());
+            list.add(respVO);
+        }
+        return CommonResult.success(list);
+    }
+
 
 }

+ 15 - 7
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/event/EventTrackController.java

@@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.annotation.security.PermitAll;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -35,7 +36,7 @@ public class EventTrackController {
     @PermitAll
     @PreAuthenticated
     @GetMapping("/list")
-    @Operation(summary = "获取事件跟踪列表")
+    @Operation(summary = "获取规则配置跟踪列表")
     public CommonResult<List<EventTrackUrlRespVO>> list() {
         return success(service.getEventTrackList());
     }
@@ -50,13 +51,20 @@ public class EventTrackController {
 
     @PermitAll
     @PreAuthenticated
-    @GetMapping("/get/url")
-    public CommonResult<Map<String, List<UrlInfoRespVO>>> getUrl() {
+    @GetMapping("/get/url/list")
+    @Operation(summary = "获取事件地址列表")
+    public CommonResult<List<Map<String, Object>>> getUrlList() {
         List<UrlInfoRespVO> list = mendunerSystemUrlApi.list().getCheckedData();
-        return CommonResult.success(
-                list.stream()
-                        .collect(Collectors.groupingBy(UrlInfoRespVO::getClient))
-        );
+        return CommonResult.success(list.stream()
+                .collect(Collectors.groupingBy(UrlInfoRespVO::getClient, Collectors.toList()))
+                .entrySet().stream()
+                .map(entry -> {
+                    Map<String, Object> clientMap = new LinkedHashMap<>();
+                    clientMap.put("name", entry.getKey());
+                    clientMap.put("children", entry.getValue());
+                    return clientMap;
+                })
+                .collect(Collectors.toList()));
     }
 
 }

+ 18 - 0
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/pointruleconfig/PointRuleConfigController.java

@@ -6,6 +6,7 @@ import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.common.util.string.StrUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.module.menduner.reward.controller.base.pointruleconfig.PointRuleConfigPageReqVO;
 import com.citu.module.menduner.reward.controller.base.pointruleconfig.PointRuleConfigRespVO;
@@ -92,4 +93,21 @@ public class PointRuleConfigController {
                 BeanUtils.toBean(list, PointRuleConfigRespVO.class));
     }
 
+    @PostMapping("/enable")
+    @Operation(summary = "开启规则")
+    @PreAuthorize("@ss.hasPermission('menduner:reward:point-rule-config:update')")
+    public CommonResult<Boolean> enable(@RequestParam("ids") String ids) {
+        pointRuleConfigService.enable(StrUtils.splitToLong(ids));
+        return success(true);
+    }
+
+
+    @PostMapping("/disable")
+    @Operation(summary = "关闭规则")
+    @PreAuthorize("@ss.hasPermission('menduner:reward:point-rule-config:update')")
+    public CommonResult<Boolean> disable(@RequestParam("ids") String ids) {
+        pointRuleConfigService.disable(StrUtils.splitToLong(ids));
+        return success(true);
+    }
+
 }

+ 21 - 0
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/common/EventRespVO.java

@@ -0,0 +1,21 @@
+package com.citu.module.menduner.reward.controller.base.common;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "管理后台 - 事件 Response VO")
+@Data
+public class EventRespVO {
+
+    @Schema(description = "事件名称")
+    private String name;
+
+    @Schema(description = "事件属性值")
+    private String value;
+
+    @Schema(description = "事件类型")
+    private String type;
+
+    @Schema(description = "备注")
+    private String remark;
+}

+ 3 - 2
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/pointruleconfig/PointRuleConfigRespVO.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.reward.controller.base.pointruleconfig;
 
 
+import com.citu.module.menduner.reward.dal.dataobject.pointruleconfig.Condition;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
@@ -39,11 +40,11 @@ public class PointRuleConfigRespVO {
 
     @Schema(description = "触发规则", requiredMode = Schema.RequiredMode.REQUIRED)
     @ExcelProperty("触发规则")
-    private String triggerRule;
+    private Condition triggerRule;
 
     @Schema(description = "约束规则")
     @ExcelProperty("约束规则")
-    private String constraintRule;
+    private Condition constraintRule;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     @ExcelProperty("状态")

+ 3 - 2
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/pointruleconfig/PointRuleConfigSaveReqVO.java

@@ -1,6 +1,7 @@
 package com.citu.module.menduner.reward.controller.base.pointruleconfig;
 
 
+import com.citu.module.menduner.reward.dal.dataobject.pointruleconfig.Condition;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 
@@ -36,10 +37,10 @@ public class PointRuleConfigSaveReqVO {
 
     @Schema(description = "触发规则", requiredMode = Schema.RequiredMode.REQUIRED)
     @NotEmpty(message = "触发规则不能为空")
-    private String triggerRule;
+    private Condition triggerRule;
 
     @Schema(description = "约束规则")
-    private String constraintRule;
+    private Condition constraintRule;
 
     @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
     @NotEmpty(message = "状态不能为空")

+ 10 - 0
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/PointRuleConfigService.java

@@ -66,4 +66,14 @@ public interface PointRuleConfigService {
      * @return 积分规则配置集合
      */
     List<PointRuleConfigDO> getList();
+
+    /**
+     * 开启规则
+     **/
+    boolean enable(List<Long> ids);
+
+    /**
+     * 关闭规则
+     **/
+    boolean disable(List<Long> ids);
 }

+ 48 - 9
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/PointRuleConfigServiceImpl.java

@@ -1,25 +1,25 @@
 package com.citu.module.menduner.reward.service;
 
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.citu.framework.common.pojo.PageResult;
+import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.module.menduner.reward.controller.base.pointruleconfig.PointRuleConfigPageReqVO;
 import com.citu.module.menduner.reward.controller.base.pointruleconfig.PointRuleConfigSaveReqVO;
+import com.citu.module.menduner.reward.dal.dataobject.pointruleconfig.PointRuleConfigDO;
+import com.citu.module.menduner.reward.dal.mysql.pointruleconfig.PointRuleConfigMapper;
 import com.citu.module.menduner.reward.dal.redis.RedisKeyConstants;
+import com.citu.module.menduner.reward.enums.pointruleconfig.PointRuleConfigStatusEnum;
+import com.citu.module.menduner.system.enums.MendunerStatusEnum;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
 
-import com.citu.module.menduner.reward.dal.dataobject.pointruleconfig.PointRuleConfigDO;
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.common.util.object.BeanUtils;
-
-import com.citu.module.menduner.reward.dal.mysql.pointruleconfig.PointRuleConfigMapper;
-
-import java.util.Collections;
+import javax.annotation.Resource;
 import java.util.List;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.reward.enums.ErrorCodeConstants.*;
+import static com.citu.module.menduner.reward.enums.ErrorCodeConstants.POINT_RULE_CONFIG_NOT_EXISTS;
 
 /**
  * 积分规则配置 Service 实现类
@@ -37,6 +37,7 @@ public class PointRuleConfigServiceImpl implements PointRuleConfigService {
     public Long createPointRuleConfig(PointRuleConfigSaveReqVO createReqVO) {
         // 插入
         PointRuleConfigDO pointRuleConfig = BeanUtils.toBean(createReqVO, PointRuleConfigDO.class);
+        pointRuleConfig.setStatus(PointRuleConfigStatusEnum.ENABLE.getStatus());
         mapper.insert(pointRuleConfig);
         // 返回
         return pointRuleConfig.getId();
@@ -88,4 +89,42 @@ public class PointRuleConfigServiceImpl implements PointRuleConfigService {
     public List<PointRuleConfigDO> getList() {
         return mapper.selectList();
     }
+
+    private PointRuleConfigDO valid(Long id) {
+        // 查找操作的目标用户
+        PointRuleConfigDO configDO = mapper.selectById(id);
+        if (null == configDO) {
+            throw exception(POINT_RULE_CONFIG_NOT_EXISTS);
+        }
+        return configDO;
+    }
+
+
+    @Override
+    @DSTransactional
+    public boolean enable(List<Long> ids) {
+        for (Long id : ids) {
+            PointRuleConfigDO configDO = valid(id);
+            if (PointRuleConfigStatusEnum.ENABLE.getStatus().equals(configDO.getStatus())) {
+                return true;
+            }
+            configDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
+            mapper.updateById(configDO);
+        }
+        return true;
+    }
+
+    @Override
+    @DSTransactional
+    public boolean disable(List<Long> ids) {
+        for (Long id : ids) {
+            PointRuleConfigDO configDO = valid(id);
+            if (PointRuleConfigStatusEnum.DISABLE.getStatus().equals(configDO.getStatus())) {
+                return true;
+            }
+            configDO.setStatus(MendunerStatusEnum.DISABLE.getStatus());
+            mapper.updateById(configDO);
+        }
+        return true;
+    }
 }

+ 2 - 5
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/position/AppPositionController.java

@@ -31,7 +31,7 @@ public class AppPositionController {
     @Resource
     private PositionService positionService;
 
-    @PreAuthenticated
+
     @PostMapping("/click")
     @Operation(summary = "点击访问职位埋点")
     public CommonResult<Boolean> click(@RequestBody @Valid AppPositionClickReqVO reqVO) {
@@ -39,7 +39,6 @@ public class AppPositionController {
         return success(true);
     }
 
-    @PreAuthenticated
     @GetMapping("/get/tree")
     @Operation(summary = "获取职位树形")
     public CommonResult<List<AppPositionChildrenRespVO>> getPosition(@Valid AppPositionListReqVO listReqVO) {
@@ -47,7 +46,7 @@ public class AppPositionController {
         return success(list);
     }
 
-    @PreAuthenticated
+
     @GetMapping("/get/children")
     @Operation(summary = "根据职位id获得职位下级列表")
     public CommonResult<List<AppPositionChildrenRespVO>> getChildren(@RequestParam("id") Long id) {
@@ -55,7 +54,6 @@ public class AppPositionController {
         return success(list);
     }
 
-    @PreAuthenticated
     @GetMapping("/list")
     @Operation(summary = "获得职位列表")
     public CommonResult<List<AppPositionSimpleRespVO>> getPositionList(@Valid AppPositionListReqVO reqVO) {
@@ -63,7 +61,6 @@ public class AppPositionController {
         return success(list);
     }
 
-    @PreAuthenticated
     @GetMapping("/hot")
     @Operation(summary = "获取热门职位")
     public CommonResult<List<AppPositionSimpleRespVO>> getHotPosition() {

+ 3 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/position/PositionServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
+import com.citu.framework.security.core.LoginUser;
 import com.citu.module.menduner.system.controller.app.position.vo.AppPositionChildrenRespVO;
 import com.citu.module.menduner.system.controller.app.position.vo.AppPositionClickReqVO;
 import com.citu.module.menduner.system.controller.app.position.vo.AppPositionListReqVO;
@@ -234,10 +235,11 @@ public class PositionServiceImpl implements PositionService {
 
     @Override
     public List<AppPositionSimpleRespVO> getHotPosition() {
+        LoginUser loginUser = LoginUserContext.get2();
         List<Long> ids = visitsService.getBizIdVisitsTop10List(
                 MdeVisitsListReqVO.builder()
                         .type(MdeVisitsEnum.POSITION_CLICK.getType())
-                        .userId(LoginUserContext.getUserId())
+                        .userId(null == loginUser ? null : loginUser.getId())
                         .build()
         );
 

+ 9 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/util/LoginUserContext.java

@@ -29,6 +29,15 @@ public class LoginUserContext {
         return loginUser;
     }
 
+    public static LoginUser get2() {
+        LoginUser loginUser = getLoginUser();
+        if (null == loginUser) {
+            // 没权限
+            return null;
+        }
+        return loginUser;
+    }
+
     /**
      * 获取当前登录的用户id
      **/