Ver código fonte

Merge remote-tracking branch 'origin/master'

小杜 3 meses atrás
pai
commit
c293c06367

+ 2 - 0
yt-common/src/main/java/com/ytpm/general/RepMessage.java

@@ -15,6 +15,7 @@ public class RepMessage {
     public static final String LOGIN_SUCCESS = "登录成功";
     public static final String LOCK_USER_SUCCESS = "用户锁定成功";
     public static final String RESET_SUCCESS = "重置成功";
+    public static final String GRANT_SUCCESS = "授权成功";
 
     public static final String NOT_LOGIN= "当前用户未登录";
     public static final String USER_NAME_EMPTY = "用户名不能为空";
@@ -35,4 +36,5 @@ public class RepMessage {
     public static final String OBJECT_NOT_EXIST = "查询对象不存在";
     public static final String CURRENT_USER_RISKING = "当前用户处于风控中";
     public static final String NOT_PERMIT = "当前用户无权限操作";
+    public static final String WX_APP_ID_NOT_EMPTY = "请先绑定微信开放应用ID";
 }

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

@@ -32,4 +32,6 @@ public class AppForm extends BaseParam {
     private String domain;
     @ApiModelProperty("上架时间")
     private Date issuedTime;
+    @ApiModelProperty("微信开发应用ID")
+    private String wxAppId;
 }

+ 23 - 0
yt-common/src/main/java/com/ytpm/middle/param/GrantAppParam.java

@@ -0,0 +1,23 @@
+package com.ytpm.middle.param;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel("授权app企业入参")
+public class GrantAppParam {
+    /** 应用ID */
+    @ApiModelProperty(value = "应用ID",required = true)
+    private String appId;
+    /** 信用代码 */
+    @ApiModelProperty(value = "信用代码",required = true)
+    private String creditCode;
+    /** 操作用户ID */
+    @ApiModelProperty(value = "操作用户ID", hidden = true)
+    private String userId;
+}

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

@@ -5,6 +5,7 @@ import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.param.AppForm;
 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 io.swagger.annotations.Api;
@@ -46,6 +47,15 @@ public class AppController {
         return appService.addApp(form);
     }
 
+    /**
+     * 修改上架应用信息
+     */
+    @ApiOperation("修改上架应用")
+    @PostMapping("/updateApp")
+    public Result<String> updateApp(@RequestBody AppForm form, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+        form.setUpdateParam(userInfo.getUserId());
+        return appService.updateApp(form);
+    }
     /**
      * 删除应用
      */
@@ -54,4 +64,14 @@ public class AppController {
     public Result<String> delApp(@RequestParam("appId")String appId, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
         return appService.delApp(appId,userInfo.getUserId());
     }
+
+    /**
+     * 应用授权企业
+     */
+    @ApiOperation("应用授权企业")
+    @PostMapping("/grantApp")
+    public Result<String> grantApp(@RequestBody GrantAppParam param, @ApiIgnore @AuthenticationPrincipal AgentUserInfo userInfo){
+        param.setUserId(userInfo.getUserId());
+        return appService.grantApp(param);
+    }
 }

+ 11 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/dao/AppMapper.java

@@ -20,6 +20,11 @@ public interface AppMapper {
      */
     YtPlatformUserApp getByPackName(@Param("packageName") String packageName);
 
+    /**
+     * 主键查询
+     */
+    YtPlatformUserApp getByPrimary(@Param("appId") String appId);
+
     /**
      * 新增应用
      */
@@ -28,4 +33,10 @@ public interface AppMapper {
      * 删除应用
      */
     void delApp(@Param("appId") String appId, @Param("userId") String userId);
+
+    /**
+     * 修改app信息
+     * @param app
+     */
+    void updateById(YtPlatformUserApp app);
 }

+ 10 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/AppService.java

@@ -4,6 +4,7 @@ import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
 import com.ytpm.middle.param.AppForm;
 import com.ytpm.middle.param.AppListParam;
+import com.ytpm.middle.param.GrantAppParam;
 import com.ytpm.middle.view.AppListVO;
 
 public interface AppService {
@@ -19,4 +20,13 @@ public interface AppService {
      * 删除应用
      */
     Result<String> delApp(String appId, String userId);
+
+    /**
+     * 应用授权企业
+     */
+    Result<String> grantApp( GrantAppParam param);
+    /**
+     * 修改上架应用信息
+     */
+    Result<String> updateApp(AppForm form);
 }

+ 46 - 0
yt-middle/middle-platform/src/main/java/com/ytpm/middle/service/impl/AppServiceImpl.java

@@ -1,15 +1,20 @@
 package com.ytpm.middle.service.impl;
 
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.ytpm.agent.model.YtPlatformUserApp;
 import com.ytpm.general.RepMessage;
 import com.ytpm.general.Result;
 import com.ytpm.general.ResultTable;
+import com.ytpm.middle.dao.AgentMapper;
 import com.ytpm.middle.dao.AppMapper;
+import com.ytpm.middle.dao.EnterpriseMapper;
+import com.ytpm.middle.model.YtMiddleEnterprise;
 import com.ytpm.middle.param.AppForm;
 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 org.springframework.beans.BeanUtils;
@@ -24,6 +29,8 @@ public class AppServiceImpl implements AppService {
 
     @Resource
     private AppMapper appMapper;
+    @Resource
+    private EnterpriseMapper enterpriseMapper;
 
     /**
      *  应用列表
@@ -59,4 +66,43 @@ public class AppServiceImpl implements AppService {
         appMapper.delApp(appId,userId);
         return Result.resultOk(RepMessage.DELETE_SUCCESS);
     }
+
+    /**
+     * 应用授权企业
+     */
+    @Override
+    public Result<String> grantApp(GrantAppParam param) {
+        //查询企业是否存在
+        YtMiddleEnterprise enterprise = enterpriseMapper.getByCode(param.getCreditCode());
+        if(Objects.isNull(enterprise)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
+        }
+        //目前先线下确认企业打款凭证
+        YtPlatformUserApp appInfo =  appMapper.getByPrimary(param.getAppId());
+        if(Objects.isNull(appInfo)|| StrUtil.isBlank(appInfo.getWxAppId())){
+            return Result.resultErr(RepMessage.WX_APP_ID_NOT_EMPTY);
+        }
+        //将当前应用授权给企业
+        YtPlatformUserApp app = new YtPlatformUserApp();
+        app.setAppId(param.getAppId());
+        app.setUpdateParam(param.getUserId());
+        app.setUserId(enterprise.getUserId());
+        appMapper.updateById(app);
+        return Result.resultOk(RepMessage.GRANT_SUCCESS);
+    }
+
+    /**
+     * 修改上架应用信息
+     */
+    @Override
+    public Result<String> updateApp(AppForm form) {
+        YtPlatformUserApp old = appMapper.getByPrimary(form.getAppId());
+        if(Objects.isNull(old)){
+            return Result.resultErr(RepMessage.OBJECT_NOT_EXIST);
+        }
+        YtPlatformUserApp app = new YtPlatformUserApp();
+        BeanUtils.copyProperties(form, app);
+        appMapper.updateById(app);
+        return Result.resultOk(RepMessage.GRANT_SUCCESS);
+    }
 }

+ 45 - 0
yt-middle/middle-platform/src/main/resources/mapper/AppMapper.xml

@@ -33,6 +33,45 @@
          #{available}
         )
     </insert>
+    <update id="updateById">
+        update yt_platform_user_app
+        <set>
+            <if test="appName != null">
+                app_name = #{appName},
+            </if>
+            <if test="userId != null">
+                user_id = #{userId},
+            </if>
+            <if test="appType != null">
+                app_type = #{appType},
+            </if>
+            <if test="detailUrl != null">
+                detail_url = #{detailUrl},
+            </if>
+            <if test="packageName != null">
+                package_name = #{packageName},
+            </if>
+            <if test="domain != null">
+                domain = #{domain},
+            </if>
+            <if test="issuedTime != null">
+                issued_time = #{issuedTime},
+            </if>
+            <if test="wxAppId != null">
+                wx_app_id = #{wxAppId},
+            </if>
+            <if test="updateUserId != null">
+                update_user_id = #{updateUserId},
+            </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
+            <if test="available != null">
+                available = #{available}
+            </if>
+        </set>
+        where app_id = #{appId}
+    </update>
     <delete id="delApp">
         update yt_platform_user_app set available = 0, update_time = now(), update_user_id = #{userId} where app_id = #{appId}
     </delete>
@@ -69,4 +108,10 @@
         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
+        from yt_platform_user_app
+        where app_id = #{appId}
+    </select>
 </mapper>

+ 14 - 0
yt-oauth/oauth-service/src/main/java/com/ytpm/config/custom/CustomFilterInvocationSecurityMetadataSource.java

@@ -8,6 +8,7 @@ import org.springframework.security.web.access.intercept.FilterInvocationSecurit
 import org.springframework.stereotype.Component;
 
 import java.util.Collection;
+import java.util.List;
 
 @Component
 public class CustomFilterInvocationSecurityMetadataSource implements FilterInvocationSecurityMetadataSource {
@@ -19,6 +20,19 @@ public class CustomFilterInvocationSecurityMetadataSource implements FilterInvoc
         if (antPathMatcher.match("/oauth/*", requestUrl)) {
             return null;
         }
+//        List<SecurityMenu> securityMenuList = (List<SecurityMenu>) menuService.getMenuListByRole().getData();
+//        for (SecurityMenu securityMenu : securityMenuList) {
+//            if(StringUtils.isEmpty(securityMenu.getUrlPattern()))continue;
+//            if(antPathMatcher.match(securityMenu.getUrlPattern(),requestUrl)){
+//                List<Role> roles = securityMenu.getRoleList();
+//                int size = roles.size();
+//                String[] str = new String[size];
+//                for (int i = 0; i < size; i++) {
+//                    str[i] = roles.get(i).getName();
+//                }
+//                return SecurityConfig.createList(str);
+//            }
+//        }
         //访问菜单角色权限控制
         return SecurityConfig.createList("ROLE_LOGIN");
     }