Bläddra i källkod

ADS管理系统联调

marxjaw 3 månader sedan
förälder
incheckning
94c838a9f7
33 ändrade filer med 569 tillägg och 39 borttagningar
  1. 4 0
      yt-app/app-feign/src/main/java/com/ytpm/feign/AppFeign.java
  2. 8 0
      yt-app/app-service/src/main/java/com/ytpm/controller/WxController.java
  3. 7 1
      yt-app/app-service/src/main/java/com/ytpm/dao/AppUserMapper.java
  4. 1 1
      yt-app/app-service/src/main/java/com/ytpm/service/impl/AppUserServiceImpl.java
  5. 22 0
      yt-app/app-service/src/main/resources/mapper/AppUserMapper.xml
  6. 2 0
      yt-common/src/main/java/com/ytpm/agent/model/YtPlatformUserApp.java
  7. 2 0
      yt-common/src/main/java/com/ytpm/agent/param/AppParam.java
  8. 4 0
      yt-common/src/main/java/com/ytpm/app/model/YtAppDefaultConfig.java
  9. 47 0
      yt-common/src/main/java/com/ytpm/middle/model/YtMiddlePermission.java
  10. 32 0
      yt-common/src/main/java/com/ytpm/middle/model/YtMiddleRole.java
  11. 2 0
      yt-common/src/main/java/com/ytpm/middle/param/AppForm.java
  12. 6 0
      yt-common/src/main/java/com/ytpm/middle/view/AppListVO.java
  13. 47 0
      yt-common/src/main/java/com/ytpm/middle/view/MiddlePermissionVO.java
  14. 32 0
      yt-common/src/main/java/com/ytpm/middle/view/MiddleRoleVO.java
  15. 53 0
      yt-common/src/main/java/com/ytpm/middle/view/MiddleUserInfo.java
  16. 5 0
      yt-middle/middle-platform/pom.xml
  17. 2 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/MiddleApplication.java
  18. 7 9
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/CustomUserAuthenticationConverter.java
  19. 1 1
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/ResourceServerConfig.java
  20. 41 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/ValidatorConfig.java
  21. 4 4
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AgentController.java
  22. 5 5
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AppController.java
  23. 3 3
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/MiddleController.java
  24. 4 4
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/OutsourcingController.java
  25. 13 2
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleUserMapper.java
  26. 24 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/RiskMapper.java
  27. 2 1
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/ApkService.java
  28. 3 0
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/AgentServiceImpl.java
  29. 87 3
      yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/ApkServiceImpl.java
  30. 10 3
      yt-middle/middle-platform/src/main/resources/mapper/AppMapper.xml
  31. 11 1
      yt-middle/middle-platform/src/main/resources/mapper/MiddleUserMapper.xml
  32. 77 0
      yt-middle/middle-platform/src/main/resources/mapper/RiskMapper.xml
  33. 1 1
      yt-oauth/oauth-service/src/main/java/com/ytpm/auth/impl/AuthServiceImpl.java

+ 4 - 0
yt-app/app-feign/src/main/java/com/ytpm/feign/AppFeign.java

@@ -1,5 +1,6 @@
 package com.ytpm.feign;
 
+import com.ytpm.app.model.YtAppDefaultConfig;
 import com.ytpm.app.model.YtDyzAdRecord;
 import com.ytpm.app.model.YtDyzUser;
 import com.ytpm.app.param.AppQueryUserTodayTimeParam;
@@ -45,4 +46,7 @@ public interface AppFeign {
 
     @GetMapping("/user/queryByOpenid")
     List<YtDyzUser> queryByOpenid(@RequestParam("openid") String openid);
+
+    @PostMapping("/wx/saveAppConfig")
+    Result<String> saveAppConfig(@RequestBody YtAppDefaultConfig defaultConfig);
 }

+ 8 - 0
yt-app/app-service/src/main/java/com/ytpm/controller/WxController.java

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
 import com.ytpm.agent.enums.UserStatusEnum;
 
 import com.ytpm.app.enums.AppTypeEnums;
+import com.ytpm.app.model.YtAppDefaultConfig;
 import com.ytpm.app.param.WxLoginParam;
 import com.ytpm.app.view.WxDefaultConfig;
 import com.ytpm.app.view.WxLoginResult;
@@ -150,4 +151,11 @@ public class WxController {
         appUserMapper.addPowerRecord(record);
         return Result.resultOk(RepMessage.ADD_SUCCESS);
     }
+
+    @ApiOperation("保存应用默认配置")
+    @PostMapping("/saveAppConfig")
+    public Result<String> saveAppConfig(@RequestBody YtAppDefaultConfig defaultConfig){
+        appUserMapper.saveAppConfig(defaultConfig);
+        return Result.resultOk(RepMessage.SAVE_SUCCESS);
+    }
 }

+ 7 - 1
yt-app/app-service/src/main/java/com/ytpm/dao/AppUserMapper.java

@@ -1,5 +1,6 @@
 package com.ytpm.dao;
 
+import com.ytpm.app.model.YtAppDefaultConfig;
 import com.ytpm.app.model.YtDyzPowerRecord;
 import com.ytpm.app.model.YtDyzUser;
 import com.ytpm.app.param.YtAppUserListParam;
@@ -93,5 +94,10 @@ public interface AppUserMapper {
     /**
      * 根据设备ID查询平台ID
      */
-    String getByDeviceId(@Param("deviceId")String deviceId);
+    String getByDeviceId(@Param("deviceId")String deviceId,@Param("openid")String openid);
+
+    /**
+     * 保存应用配置
+     */
+    void saveAppConfig(YtAppDefaultConfig defaultConfig);
 }

+ 1 - 1
yt-app/app-service/src/main/java/com/ytpm/service/impl/AppUserServiceImpl.java

@@ -138,7 +138,7 @@ public class AppUserServiceImpl implements AppUserService {
         old.setWxOpenId(loginResult.getOpenid());
         old.setHeadImg(wxUserInfo.getHeadimgurl());
         //根据设备ID获取平台ID 获取不到再生成平台ID
-        String platformId = appUserMapper.getByDeviceId(param.getDeviceId());
+        String platformId = appUserMapper.getByDeviceId(param.getDeviceId(),wxUserInfo.getOpenid());
         old.setPlatformId(StrUtil.isBlank(platformId)?
                 (StrConstant.PLATFORM_ID_PREFIX + IdUtil.getSnowflakeNextIdStr()):platformId);
         appUserMapper.addOne(old);

+ 22 - 0
yt-app/app-service/src/main/resources/mapper/AppUserMapper.xml

@@ -67,6 +67,26 @@
          #{recordId},#{userId},#{type},#{remark},#{addTime}
         )
     </insert>
+    <insert id="saveAppConfig">
+        insert into yt_app_default_config
+        (
+         config_name,
+         open_id,
+         secret,
+         app_id,
+         app_key,
+         app_type
+        )
+        values
+        (
+         #{configName},
+         #{openId},
+         #{secret},
+         #{appId},
+         #{appKey},
+         #{appType}
+        )
+    </insert>
     <update id="addOnePower">
         update yt_dyz_user set power = power+1 where user_id = #{userId}
     </update>
@@ -294,5 +314,7 @@
             platform_id
         from yt_dyz_user
         where device_id = #{deviceId}
+        and wx_open_id = #{openid}
+        limit 1
     </select>
 </mapper>

+ 2 - 0
yt-common/src/main/java/com/ytpm/agent/model/YtPlatformUserApp.java

@@ -30,4 +30,6 @@ public class YtPlatformUserApp extends BaseParam {
     private Date issuedTime;
     @ApiModelProperty("微信应用ID")
     private String wxAppId;
+    @ApiModelProperty("微信访问secret")
+    private String wxSecret;
 }

+ 2 - 0
yt-common/src/main/java/com/ytpm/agent/param/AppParam.java

@@ -54,4 +54,6 @@ public class AppParam {
     private String ditchName;
     @ApiModelProperty("上级应用ID(母包)")
     private String superiorId;
+    @ApiModelProperty("渠道商用户ID")
+    private String userId;
 }

+ 4 - 0
yt-common/src/main/java/com/ytpm/app/model/YtAppDefaultConfig.java

@@ -2,9 +2,13 @@ package com.ytpm.app.model;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 @Data
+@NoArgsConstructor
+@AllArgsConstructor
 @ApiModel("应用默认配置")
 public class YtAppDefaultConfig {
     /** 配置ID */

+ 47 - 0
yt-common/src/main/java/com/ytpm/middle/model/YtMiddlePermission.java

@@ -0,0 +1,47 @@
+package com.ytpm.middle.model;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("角色信息表")
+public class YtMiddlePermission extends BaseParam {
+    /** 权限ID */
+    @ApiModelProperty("权限ID")
+    private int permissionId;
+    /** 权限名称 */
+    @ApiModelProperty("权限名称")
+    private String permissionName;
+    /** 父级权限ID */
+    @ApiModelProperty("父级权限ID")
+    private Integer parentId;
+    /** 权限类型  menu-菜单 permission-按钮 */
+    @ApiModelProperty("权限类型  menu-菜单 permission-按钮")
+    private String type;
+    /** 权限编码 */
+    @ApiModelProperty("权限编码")
+    private String permissionCode;
+    /** 打开方式 */
+    @ApiModelProperty("打开方式")
+    private String target;
+    /** 图标 */
+    @ApiModelProperty("图标")
+    private String icon;
+    /** 链接 */
+    @ApiModelProperty("链接")
+    private String href;
+    /** 路由 */
+    @ApiModelProperty("路由")
+    private String route;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+}

+ 32 - 0
yt-common/src/main/java/com/ytpm/middle/model/YtMiddleRole.java

@@ -0,0 +1,32 @@
+package com.ytpm.middle.model;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("角色信息表")
+public class YtMiddleRole extends BaseParam {
+    /** 角色ID */
+    @ApiModelProperty("角色ID")
+    private int roleId;
+    /** 角色名称 */
+    @ApiModelProperty("角色名称")
+    private String roleName;
+    /** 角色描述 */
+    @ApiModelProperty("角色描述")
+    private String roleDesc;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+    /** 权限范围 0-全部 1-部门及以下 2-仅部门 3-仅本人 */
+    @ApiModelProperty("权限范围 0-全部 1-部门及以下 2-仅部门 3-仅本人")
+    private int range;
+}

+ 2 - 0
yt-common/src/main/java/com/ytpm/middle/param/AppForm.java

@@ -34,4 +34,6 @@ public class AppForm extends BaseParam {
     private Date issuedTime;
     @ApiModelProperty("微信开发应用ID")
     private String wxAppId;
+    @ApiModelProperty("微信开发应用ID")
+    private String wxSecret;
 }

+ 6 - 0
yt-common/src/main/java/com/ytpm/middle/view/AppListVO.java

@@ -39,6 +39,9 @@ public class AppListVO {
     /** 微信开放平台AppId */
     @ApiModelProperty("微信开放平台AppId")
     private String wxAppId;
+    /** 微信开放平台AppId */
+    @ApiModelProperty("微信访问secret")
+    private String wxSecret;
     /** 授权企业 */
     @ApiModelProperty("授权企业")
     private String enterpriseName;
@@ -48,4 +51,7 @@ public class AppListVO {
     /** 联系电话 */
     @ApiModelProperty("联系电话")
     private String concatPhone;
+    /** 企业信用代码 */
+    @ApiModelProperty("企业信用代码")
+    private String creditCode;
 }

+ 47 - 0
yt-common/src/main/java/com/ytpm/middle/view/MiddlePermissionVO.java

@@ -0,0 +1,47 @@
+package com.ytpm.middle.view;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("角色信息")
+public class MiddlePermissionVO extends BaseParam {
+    /** 权限ID */
+    @ApiModelProperty("权限ID")
+    private int permissionId;
+    /** 权限名称 */
+    @ApiModelProperty("权限名称")
+    private String permissionName;
+    /** 父级权限ID */
+    @ApiModelProperty("父级权限ID")
+    private Integer parentId;
+    /** 权限类型  menu-菜单 permission-按钮 */
+    @ApiModelProperty("权限类型  menu-菜单 permission-按钮")
+    private String type;
+    /** 权限编码 */
+    @ApiModelProperty("权限编码")
+    private String permissionCode;
+    /** 打开方式 */
+    @ApiModelProperty("打开方式")
+    private String target;
+    /** 图标 */
+    @ApiModelProperty("图标")
+    private String icon;
+    /** 链接 */
+    @ApiModelProperty("链接")
+    private String href;
+    /** 路由 */
+    @ApiModelProperty("路由")
+    private String route;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+}

+ 32 - 0
yt-common/src/main/java/com/ytpm/middle/view/MiddleRoleVO.java

@@ -0,0 +1,32 @@
+package com.ytpm.middle.view;
+
+import com.ytpm.general.BaseParam;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("角色信息")
+public class MiddleRoleVO extends BaseParam {
+    /** 角色ID */
+    @ApiModelProperty("角色ID")
+    private int roleId;
+    /** 角色名称 */
+    @ApiModelProperty("角色名称")
+    private String roleName;
+    /** 角色描述 */
+    @ApiModelProperty("角色描述")
+    private String roleDesc;
+    /** 排序 */
+    @ApiModelProperty("排序")
+    private int sort;
+    /** 权限范围 0-全部 1-部门及以下 2-仅部门 3-仅本人 */
+    @ApiModelProperty("权限范围 0-全部 1-部门及以下 2-仅部门 3-仅本人")
+    private int range;
+}

+ 53 - 0
yt-common/src/main/java/com/ytpm/middle/view/MiddleUserInfo.java

@@ -0,0 +1,53 @@
+package com.ytpm.middle.view;
+
+import cn.hutool.core.collection.CollUtil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("当前登录用户信息")
+public class MiddleUserInfo {
+    @ApiModelProperty("用户ID")
+    private String userId;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("头像")
+    private String headImage;
+    @ApiModelProperty("登录用户名")
+    private String loginName;
+    @ApiModelProperty("手机号")
+    private String phone;
+    @ApiModelProperty("最新登录时间")
+    private Date lastLoginTime;
+    @ApiModelProperty("最新登录IP")
+    private String lastLoginIp;
+    @ApiModelProperty("角色列表")
+    private List<MiddleRoleVO> roleList;
+
+    public Collection<? extends GrantedAuthority> getAuthorities() {
+        List<GrantedAuthority> authorities = new ArrayList<>();
+        if(CollUtil.isEmpty(roleList)) {
+            return authorities;
+        }
+        for (MiddleRoleVO role : roleList) {
+            if(Objects.nonNull(role)){
+                authorities.add(new SimpleGrantedAuthority(role.getRoleName()));
+            }
+        }
+        return authorities;
+    }
+}

+ 5 - 0
yt-middle/middle-platform/pom.xml

@@ -33,6 +33,11 @@
             <artifactId>aliyun-sdk-oss</artifactId>
             <version>3.17.4</version>
         </dependency>
+        <dependency>
+            <groupId>com.ytpm</groupId>
+            <artifactId>app-feign</artifactId>
+            <version>1.0-SNAPSHOT</version>
+        </dependency>
     </dependencies>
 
     <build>

+ 2 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/MiddleApplication.java

@@ -4,12 +4,14 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
 @SpringBootApplication
 @EnableDiscoveryClient
 @MapperScan(basePackages = "com.ytpm.middle.dao")
+@EnableFeignClients(basePackages = {"com.ytpm.feign"})
 public class MiddleApplication
 {
     public static void main( String[] args )

+ 7 - 9
yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/CustomUserAuthenticationConverter.java

@@ -3,10 +3,10 @@ package com.ytpm.middle.config;
 import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.constant.StrConstant;
 import com.ytpm.middle.dao.MiddleUserMapper;
 import com.ytpm.middle.util.RedisUtil;
+import com.ytpm.middle.view.MiddleUserInfo;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,9 +55,9 @@ public class CustomUserAuthenticationConverter implements UserAuthenticationConv
     public Authentication extractAuthentication(Map<String, ?> map) {
         if (map.containsKey("user_name")) {
             String userName = (String) map.get("user_name");
-            Object principal;
+            Object principal = map.get("principal");
             Collection<? extends GrantedAuthority> authorities = this.getAuthorities(map);
-            AgentUserInfo user = userMapper.getByLoginName(userName);
+            MiddleUserInfo user = userMapper.getByLoginName(userName);
             if(Objects.isNull(user)){
                 log.error("当前用户不存在,应该退出登录");
                 return null;
@@ -65,11 +65,12 @@ public class CustomUserAuthenticationConverter implements UserAuthenticationConv
             String key = StrConstant.USER_INFO_PRE + userName ;
             if (redisService.hasKey(key)) {
                 String str = redisService.getStr(key);
-                AgentUserInfo jwtUser = JSONObject.parseObject(str, AgentUserInfo.class);
+                MiddleUserInfo jwtUser = JSONObject.parseObject(str, MiddleUserInfo.class);
                 principal = jwtUser;
                 authorities = jwtUser.getAuthorities();
             } else {
-                AgentUserInfo jwtUser = new AgentUserInfo();
+                user.setRoleList(userMapper.getRoleList(user.getUserId()));
+                MiddleUserInfo jwtUser = new MiddleUserInfo();
                 BeanUtil.copyProperties(user,jwtUser);
                 authorities = jwtUser.getAuthorities();
                 principal = jwtUser;
@@ -82,10 +83,7 @@ public class CustomUserAuthenticationConverter implements UserAuthenticationConv
     }
 
     /**
-     * 用户资源授权的方法重写  暂时未使用
-     *
-     * @param map
-     * @return
+     * 用户资源授权的方法重写
      */
     private Collection<? extends GrantedAuthority> getAuthorities(Map<String, ?> map) {
         if (!map.containsKey("authorities")) {

+ 1 - 1
yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/ResourceServerConfig.java

@@ -65,7 +65,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
         http.headers().frameOptions().disable()
                 .and()
                 .authorizeRequests().antMatchers("/attach/**","/api/public/**","/doc.html","/api/v2/**","/v2/api-docs", "/configuration/ui", "/swagger-resources", "/configuration/security",
-                        "/swagger-ui.html", "/webjars/**","/swagger-resources/configuration/ui","/swagger-ui.html").permitAll()
+                        "/swagger-ui.html", "/webjars/**","/swagger-resources/configuration/ui").permitAll()
                 .anyRequest().authenticated();
     }
 

+ 41 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/config/ValidatorConfig.java

@@ -0,0 +1,41 @@
+package com.ytpm.middle.config;
+
+import org.hibernate.validator.HibernateValidator;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.MessageSource;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.validation.beanvalidation.LocalValidatorFactoryBean;
+
+import javax.validation.Validator;
+import java.util.Properties;
+
+/**
+ * @author marx
+ * @date 2025/7/17 11:55
+ */
+@Configuration
+public class ValidatorConfig {
+
+    @Autowired
+    private MessageSource messageSource;
+
+    /**
+     * 配置校验框架 快速返回模式
+     */
+    @Bean
+    public Validator validator() {
+        LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean();
+        // 设置上方配置的国际化源
+        factoryBean.setValidationMessageSource(messageSource);
+        // 设置使用 HibernateValidator 校验器
+        factoryBean.setProviderClass(HibernateValidator.class);
+        Properties properties = new Properties();
+        // 设置 快速异常返回
+        properties.setProperty("hibernate.validator.fail_fast", "true");
+        factoryBean.setValidationProperties(properties);
+        // 加载配置
+        factoryBean.afterPropertiesSet();
+        return factoryBean.getValidator();
+    }
+}

+ 4 - 4
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AgentController.java

@@ -1,12 +1,12 @@
 package com.ytpm.middle.controller;
 
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.param.AgentBaseInfoParam;
 import com.ytpm.middle.param.AgentForm;
 import com.ytpm.middle.service.AgentService;
 import com.ytpm.middle.view.AgentBaseInfoListVO;
+import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -42,7 +42,7 @@ public class AgentController {
      */
     @ApiOperation("新增代理商")
     @PostMapping("/addOne")
-    public Result<String> addOne(@RequestBody AgentForm form, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<String> addOne(@RequestBody AgentForm form, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         form.setCreateUserId(userInfo.getUserId());
         return agentService.addOne(form);
     }
@@ -52,7 +52,7 @@ public class AgentController {
      */
     @ApiOperation("新增代理商")
     @PostMapping("/updateOne")
-    public Result<String> updateOne(@RequestBody AgentForm form,  @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<String> updateOne(@RequestBody AgentForm form,  @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         form.setUpdateParam(userInfo.getUserId());
         return agentService.updateOne(form);
     }
@@ -62,7 +62,7 @@ public class AgentController {
      */
     @ApiOperation("启用或禁用")
     @GetMapping("/changeEnabled")
-    public Result<String> enabled(@RequestParam(name = "creditCode")String creditCode,  @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<String> enabled(@RequestParam(name = "creditCode")String creditCode,  @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         return agentService.enabled(creditCode,userInfo.getUserId());
     }
 

+ 5 - 5
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/AppController.java

@@ -1,6 +1,5 @@
 package com.ytpm.middle.controller;
 
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.param.AppForm;
@@ -8,6 +7,7 @@ import com.ytpm.middle.param.AppListParam;
 import com.ytpm.middle.param.GrantAppParam;
 import com.ytpm.middle.service.AppService;
 import com.ytpm.middle.view.AppListVO;
+import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -42,7 +42,7 @@ public class AppController {
      */
     @ApiOperation("新增上架应用")
     @PostMapping("/addApp")
-    public Result<String> addApp(@RequestBody AppForm form, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<String> addApp(@RequestBody AppForm form, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         form.setCreateUserId(userInfo.getUserId());
         return appService.addApp(form);
     }
@@ -52,7 +52,7 @@ public class AppController {
      */
     @ApiOperation("修改上架应用")
     @PostMapping("/updateApp")
-    public Result<String> updateApp(@RequestBody AppForm form, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<String> updateApp(@RequestBody AppForm form, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         form.setUpdateParam(userInfo.getUserId());
         return appService.updateApp(form);
     }
@@ -61,7 +61,7 @@ public class AppController {
      */
     @ApiOperation("删除应用")
     @PostMapping("/delApp")
-    public Result<String> delApp(@RequestParam("appId")String appId, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<String> delApp(@RequestParam("appId")String appId, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         return appService.delApp(appId,userInfo.getUserId());
     }
 
@@ -70,7 +70,7 @@ public class AppController {
      */
     @ApiOperation("应用授权企业")
     @PostMapping("/grantApp")
-    public Result<String> grantApp(@RequestBody GrantAppParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+    public Result<String> grantApp(@RequestBody GrantAppParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo){
         param.setUserId(userInfo.getUserId());
         return appService.grantApp(param);
     }

+ 3 - 3
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/MiddleController.java

@@ -2,10 +2,10 @@ package com.ytpm.middle.controller;
 
 import com.github.pagehelper.PageInfo;
 import com.ytpm.agent.view.AgentDictView;
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.dao.MiddleDictMapper;
+import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -26,8 +26,8 @@ public class MiddleController {
 
     @ApiOperation("获取当前登录的用户信息")
     @GetMapping("/curUser")
-    public Result<AgentUserInfo> getCurUser( @ApiIgnore @AuthenticationPrincipal AgentUserInfo agentUserInfo) {
-        return Result.resultObjOk(agentUserInfo);
+    public Result<MiddleUserInfo> getCurUser( @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        return Result.resultObjOk(userInfo);
     }
 
     /**

+ 4 - 4
yt-middle/middle-platform/src/main/java/com/ytpm/middle/controller/OutsourcingController.java

@@ -3,10 +3,10 @@ package com.ytpm.middle.controller;
 import com.ytpm.agent.param.AppListParam;
 import com.ytpm.agent.param.AppParam;
 import com.ytpm.agent.view.AgentAppView;
-import com.ytpm.agent.view.AgentUserInfo;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.service.ApkService;
+import com.ytpm.middle.view.MiddleUserInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.security.core.annotation.AuthenticationPrincipal;
@@ -31,7 +31,7 @@ public class OutsourcingController {
      */
     @ApiOperation("出包应用列表")
     @PostMapping("/searchApps")
-    public ResultTable<AgentAppView> searchAll(@RequestBody AppListParam appListParam, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo) {
+    public ResultTable<AgentAppView> searchAll(@RequestBody AppListParam appListParam) {
         return apkService.searchAppList(appListParam);
     }
 
@@ -40,7 +40,7 @@ public class OutsourcingController {
      */
     @ApiOperation("保存应用,新增修改共用")
     @PostMapping("/saveApp")
-    public Result<?> saveApp(@RequestBody AppParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo) {
-        return apkService.saveApp(param,userInfo.getUserId());
+    public Result<?> saveApp(@RequestBody AppParam param, @ApiIgnore @AuthenticationPrincipal MiddleUserInfo userInfo) {
+        return apkService.saveApp(param,userInfo);
     }
 }

+ 13 - 2
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/MiddleUserMapper.java

@@ -1,10 +1,21 @@
 package com.ytpm.middle.dao;
 
-import com.ytpm.agent.view.AgentUserInfo;
+import com.ytpm.middle.view.MiddleRoleVO;
+import com.ytpm.middle.view.MiddleUserInfo;
+import org.apache.ibatis.annotations.Param;
 import org.mapstruct.Mapper;
 
+import java.util.List;
+
 @Mapper
 public interface MiddleUserMapper {
+    /**
+     * 登录名查询用户
+     */
+    MiddleUserInfo getByLoginName(@Param("userName") String userName);
 
-    AgentUserInfo getByLoginName(String userName);
+    /**
+     * 根据用户ID查询用户角色
+     */
+    List<MiddleRoleVO> getRoleList(@Param("userId") String userId);
 }

+ 24 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/RiskMapper.java

@@ -0,0 +1,24 @@
+package com.ytpm.middle.dao;
+
+import com.ytpm.risk.model.YtRiskConfig;
+import com.ytpm.risk.model.YtRiskTemplate;
+import com.ytpm.risk.model.YtRiskTemplateConfig;
+import org.mapstruct.Mapper;
+
+@Mapper
+public interface RiskMapper {
+    /**
+     * 新增配置项
+     */
+    void insertConfigItem(YtRiskConfig config);
+
+    /**
+     * 新增模版配置项
+     */
+    void insertTempConfig(YtRiskTemplateConfig templateConfig);
+
+    /**
+     * 新增风控配置
+     */
+    void insertTemplate(YtRiskTemplate template);
+}

+ 2 - 1
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/ApkService.java

@@ -5,6 +5,7 @@ import com.ytpm.agent.param.AppParam;
 import com.ytpm.agent.view.AgentAppView;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
+import com.ytpm.middle.view.MiddleUserInfo;
 
 public interface ApkService {
 
@@ -16,5 +17,5 @@ public interface ApkService {
     /**
      * 保存应用
      */
-    Result<?> saveApp(AppParam param, String userId);
+    Result<?> saveApp(AppParam param, MiddleUserInfo userInfo);
 }

+ 3 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/AgentServiceImpl.java

@@ -101,6 +101,7 @@ public class AgentServiceImpl implements AgentService {
             return Result.resultOk(RepMessage.OBJECT_NOT_EXIST);
         }
         String generatedPassword = RandomPasswordGenerator.generatePassword(8);
+        System.err.println("您申请的密码重置已通过,您新的密码为:"+generatedPassword);
         agentMapper.resetPwd(old.getUserId(),new BCryptPasswordEncoder().encode(generatedPassword));
         //TODO 短信通知企业负责人重置后的密码
         return Result.resultOk(RepMessage.RESET_SUCCESS);
@@ -128,12 +129,14 @@ public class AgentServiceImpl implements AgentService {
         user.setNickName(form.getEnterpriseName());
         user.setLoginName(form.getLoginName());
         String generatedPassword = RandomPasswordGenerator.generatePassword(8);
+        System.err.println("创建用户成功,您本次的登录密码为:"+generatedPassword);
         user.setEncryptPwd(new BCryptPasswordEncoder().encode(generatedPassword));
         user.setPhone(form.getConcatPhone());
         user.setLastLoginTime(new Date());
         user.setUserType(form.getUserType());
         user.setRegistryTime(new Date());
         user.setUserId(accountId);
+        user.setAccountStatus(1);
         user.setChannelId(accountId);
         user.setLoginDays(1);
         agentMapper.addOneUser(user);

+ 87 - 3
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/ApkServiceImpl.java

@@ -1,29 +1,48 @@
 package com.ytpm.middle.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.util.IdUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ytpm.agent.model.YtApp;
+import com.ytpm.agent.model.YtPlatformUserApp;
 import com.ytpm.agent.param.AppListParam;
 import com.ytpm.agent.param.AppParam;
 import com.ytpm.agent.view.AgentAppView;
+import com.ytpm.app.enums.AppTypeEnums;
+import com.ytpm.app.model.YtAppDefaultConfig;
+import com.ytpm.feign.AppFeign;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.dao.ApkMapper;
+import com.ytpm.middle.dao.AppMapper;
+import com.ytpm.middle.dao.RiskMapper;
 import com.ytpm.middle.service.ApkService;
+import com.ytpm.middle.view.MiddleUserInfo;
+import com.ytpm.risk.model.YtRiskConfig;
+import com.ytpm.risk.model.YtRiskTemplate;
+import com.ytpm.risk.model.YtRiskTemplateConfig;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class ApkServiceImpl implements ApkService {
 
     @Resource
     private ApkMapper apkMapper;
+    @Resource
+    private AppMapper appMapper;
+    @Resource
+    private RiskMapper riskMapper;
+    @Resource
+    private AppFeign appFeign;
 
     /**
      * 查询应用列表
@@ -38,12 +57,77 @@ public class ApkServiceImpl implements ApkService {
      * 新增应用
      */
     @Override
-    public Result<?> saveApp(AppParam param, String userId) {
+    @Transactional(rollbackFor = Exception.class)
+    public Result<?> saveApp(AppParam param, MiddleUserInfo loginUser) {
         //数据库操作,有appId为修改, 没有时为新增
-        changeDataAction(param,userId);
+        changeDataAction(param,loginUser.getUserId());
+        if(CharSequenceUtil.isNotBlank(param.getAppId())){
+            generateRiskDefaultConfig(param.getAppId(),param.getUserId(),loginUser);
+            YtPlatformUserApp platformApp = appMapper.getByPrimary(param.getSuperiorId());
+            appFeign.saveAppConfig(new YtAppDefaultConfig(null,param.getAppName(),platformApp.getWxAppId(),platformApp.getWxSecret(),param.getAppId(),param.getAppId(),1));
+        }
         return Result.resultOk(RepMessage.SAVE_SUCCESS);
     }
 
+    /**
+     * 给应用生成默认的风控配置
+     * @param appId
+     */
+    private void generateRiskDefaultConfig(String appId,String agentId,MiddleUserInfo loginUser) {
+        addTemp742(appId,agentId,loginUser);
+        addTemp746(appId,agentId,loginUser);
+    }
+
+    private void addTemp746(String appId, String agentId, MiddleUserInfo loginUser) {
+        List<String> configIds = new ArrayList<>();
+        String configId = IdUtil.getSnowflakeNextIdStr();
+        configIds.add(configId);
+        YtRiskConfig config = new YtRiskConfig(configId,agentId,"rewardCount","当日前2条获得奖励的激励视频",1,"2",2);
+        riskMapper.insertConfigItem(config);
+        configId = IdUtil.getSnowflakeNextIdStr();
+        configIds.add(configId);
+        config = new YtRiskConfig(configId,agentId,"income","总收益为<0.21",1,"0.21",4);
+        riskMapper.insertConfigItem(config);
+        String templateId = IdUtil.getSnowflakeNextIdStr();
+        YtRiskTemplateConfig templateConfig;
+        for (String itemId : configIds) {
+            templateConfig = new YtRiskTemplateConfig(templateId,itemId,loginUser.getUserId(),loginUser.getNickName(),new Date());
+            riskMapper.insertTempConfig(templateConfig);
+        }
+        YtRiskTemplate template = new YtRiskTemplate(templateId,"最低收益限制",
+                "当日前2条获得奖励的激励视频,总收益为<0.21",appId+"-746",agentId,
+                2,appId,new Date(),loginUser.getUserId(),null,
+                null,1,1,1);
+        riskMapper.insertTemplate(template);
+    }
+
+    private void addTemp742(String appId, String agentId, MiddleUserInfo loginUser) {
+        List<String> configIds = new ArrayList<>();
+        String configId = IdUtil.getSnowflakeNextIdStr();
+        configIds.add(configId);
+        YtRiskConfig config = new YtRiskConfig(configId,agentId,"firstAdCount","当日前4条激励视频",1,"4",2);
+        riskMapper.insertConfigItem(config);
+        configId = IdUtil.getSnowflakeNextIdStr();
+        configIds.add(configId);
+        config = new YtRiskConfig(configId,agentId,"haveCount","有2条",1,"2",2);
+        riskMapper.insertConfigItem(config);
+        configId = IdUtil.getSnowflakeNextIdStr();
+        configIds.add(configId);
+        config = new YtRiskConfig(configId,agentId,"ecpm","ecpm值为<35",1,"35",4);
+        riskMapper.insertConfigItem(config);
+        String templateId = IdUtil.getSnowflakeNextIdStr();
+        YtRiskTemplateConfig templateConfig;
+        for (String itemId : configIds) {
+            templateConfig = new YtRiskTemplateConfig(templateId,itemId,loginUser.getUserId(),loginUser.getNickName(),new Date());
+            riskMapper.insertTempConfig(templateConfig);
+        }
+        YtRiskTemplate template = new YtRiskTemplate(templateId,"激励视频ecpm值控制",
+                "当日前4条激励视频,有2条,ecpm值为<35",appId+"-742",agentId,
+                2,appId,new Date(),loginUser.getUserId(),null,
+                null,1,1,1);
+        riskMapper.insertTemplate(template);
+    }
+
     /**
      * 处理数据库数据变更操作
      */

+ 10 - 3
yt-middle/middle-platform/src/main/resources/mapper/AppMapper.xml

@@ -13,6 +13,7 @@
          domain,
          issued_time,
          wx_app_id,
+         wx_secret,
          create_user_id,
          create_time,
          available
@@ -28,6 +29,7 @@
          #{domain},
          #{issuedTime},
          #{wxAppId},
+         #{wxSecret},
          #{createUserId},
          #{createTime},
          #{available}
@@ -60,6 +62,9 @@
             <if test="wxAppId != null">
                 wx_app_id = #{wxAppId},
             </if>
+            <if test="wxSecret != null">
+                wx_secret = #{wxSecret},
+            </if>
             <if test="updateUserId != null">
                 update_user_id = #{updateUserId},
             </if>
@@ -87,9 +92,11 @@
             pua.domain,
             pua.issued_time,
             pua.wx_app_id,
+            pua.wx_secret,
             me.enterprise_name,
             me.legal,
-            me.concat_phone
+            me.concat_phone,
+            me.credit_code
         from yt_platform_user_app pua
         left join yt_middle_enterprise me on pua.user_id = me.user_id
         <where>
@@ -104,13 +111,13 @@
     </select>
     <select id="getByPackName" resultType="com.ytpm.agent.model.YtPlatformUserApp">
         select
-            app_id, app_name, user_id, app_type, detail_url, package_name, domain, issued_time, wx_app_id
+            app_id, app_name, user_id, app_type, detail_url, package_name, domain, issued_time, wx_app_id, wx_secret
         from yt_platform_user_app
         where package_name = #{packageName}
     </select>
     <select id="getByPrimary" resultType="com.ytpm.agent.model.YtPlatformUserApp">
         select
-            app_id, app_name, user_id, app_type, detail_url, package_name, domain, issued_time, wx_app_id
+            app_id, app_name, user_id, app_type, detail_url, package_name, domain, issued_time, wx_app_id,wx_secret
         from yt_platform_user_app
         where app_id = #{appId}
     </select>

+ 11 - 1
yt-middle/middle-platform/src/main/resources/mapper/MiddleUserMapper.xml

@@ -2,10 +2,20 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ytpm.middle.dao.MiddleUserMapper">
 
-    <select id="getByLoginName" resultType="com.ytpm.agent.view.AgentUserInfo">
+    <select id="getByLoginName" resultType="com.ytpm.middle.view.MiddleUserInfo">
         select
             user_id, nick_name, head_image, login_name, encrypt_pwd, salt, phone, last_login_time, last_login_ip, phone_brand, phone_model, account_status, channel_id, user_type, login_days, total_income, app_id, registry_time, transfer_amount
         from yt_platform_user
         where login_name = #{userName}
     </select>
+    <select id="getRoleList" resultType="com.ytpm.middle.view.MiddleRoleVO">
+        select
+        ymur.role_id,
+        ymr.role_name,
+        ymr.role_desc,
+        ymr.`range`
+        from yt_middle_user_role ymur
+        join yt_middle_role ymr on ymur.role_id = ymr.role_id
+        where ymur.user_id = #{userId}
+    </select>
 </mapper>

+ 77 - 0
yt-middle/middle-platform/src/main/resources/mapper/RiskMapper.xml

@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ytpm.middle.dao.RiskMapper">
+
+    <insert id="insertConfigItem">
+        insert into yt_risk_config
+        (
+         config_id,
+         field_name,
+         field_desc,
+         config_type,
+         config_val,
+         multy,
+         channel_id
+        )
+        values
+        (
+         #{configId},
+         #{fieldName},
+         #{fieldDesc},
+         #{configType},
+         #{configVal},
+         #{multy},
+         #{channelId}
+        )
+    </insert>
+    <insert id="insertTempConfig">
+        insert into yt_risk_template_config
+        (
+         template_id,
+         config_id,
+         operator,
+         operator_time,
+         operator_name
+        )
+        values
+        (
+         #{templateId},
+         #{configId},
+         #{operator},
+         #{operatorTime},
+         #{operatorName}
+        );
+    </insert>
+    <insert id="insertTemplate">
+        insert into yt_risk_template
+        (
+         template_id,
+         template_name,
+         template_content,
+         template_code,
+         channel_id,
+         effect_node,
+         app_id,
+         all_satisfy,
+         create_time,
+         create_user_id,
+         enabled,
+         can_modify
+         )
+        values
+        (
+         #{templateId},
+         #{templateName},
+         #{templateContent},
+         #{templateCode},
+         #{channelId},
+         #{effectNode},
+         #{appId},
+         #{allSatisfy},
+         #{createTime},
+         #{createUserId},
+         #{enabled},
+         #{canModify}
+        );
+    </insert>
+</mapper>

+ 1 - 1
yt-oauth/oauth-service/src/main/java/com/ytpm/auth/impl/AuthServiceImpl.java

@@ -103,7 +103,7 @@ public class AuthServiceImpl implements AuthService {
             }
         } catch (Exception e) {
             e.printStackTrace();
-            return new Result<>(403, RepMessage.METHOD_NOT_ARROW);
+            return new Result<>(403, RepMessage.USERNAME_OR_PASSWORD_ERROR);
         }
         resultMap.put("access_token", accessToken.getValue());
         resultMap.put("refresh_token", accessToken.getRefreshToken().getValue());