whycxzp
2021-03-15 351f4781aa6d7e5034ed73f2a216032256149a54
修改应用管理和配置管理关联用户
9个文件已修改
6个文件已添加
277 ■■■■ 已修改文件
src/main/java/com/whyc/config/StaticResourceConfig.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/ApplicationController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/ApplicationConfigDTO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/ApplicationDTO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/ApplicationConfigMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/ApplicationConfigPicMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/UserInfMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/Application.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/ApplicationConfig.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/ApplicationConfigPic.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/UserInf.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/ApplicationService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/config/application.yml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ApplicationConfigMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ApplicationConfigPicMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/config/StaticResourceConfig.java
@@ -27,6 +27,7 @@
        registry.addResourceHandler("/theme/**").addResourceLocations("classpath:/META-INF/resources/theme/");
        //doc.html静态
        registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        registry.addResourceHandler("/service-worker.js").addResourceLocations("classpath:/META-INF/resources/");
        //registry.addResourceHandler("/favicon.ico").addResourceLocations("classpath:/META-INF/resources/");
src/main/java/com/whyc/controller/ApplicationController.java
@@ -1,6 +1,7 @@
package com.whyc.controller;
import com.whyc.dto.ApplicationConfigDTO;
import com.whyc.dto.ApplicationDTO;
import com.whyc.dto.Response;
import com.whyc.pojo.Application;
import com.whyc.pojo.ApplicationConfig;
@@ -23,9 +24,10 @@
    @Autowired
    private ApplicationService service;
    /*======应用管理,admin才有权限更改======*/
    @PostMapping
    @ApiOperation(value = "应用-创建")
    public Response create(@RequestBody Application app){
    public Response create(@RequestBody ApplicationDTO app){
        return service.insert(app);
    }
@@ -35,15 +37,17 @@
        return service.getAll();
    }
    /**TODO:需要添加操作日志*/
    @PutMapping
    @ApiOperation(value = "应用-更新名称")
    public Response update(@RequestBody Application app){
    public Response update(@RequestBody ApplicationDTO app){
        return service.update(app);
    }
    /**TODO:需要添加操作日志*/
    @DeleteMapping
    @ApiOperation(value = "应用-删除")
    public Response delete(@RequestBody Application app){
    public Response delete(@RequestBody ApplicationDTO app){
        return service.delete(app);
    }
@@ -57,7 +61,7 @@
    @GetMapping("allConfig")
    @ApiOperation(value = "配置-查询当前应用的配置")
    public Response getAllConfig(@RequestParam int appId){
        return service.getAllConfig(appId);
    public Response getAllConfig(@RequestParam int appId,@RequestParam int userId){
        return service.getAllConfig(appId,userId);
    }
}
src/main/java/com/whyc/dto/ApplicationConfigDTO.java
@@ -3,6 +3,7 @@
import com.whyc.pojo.ApplicationConfig;
import org.apache.ibatis.type.Alias;
import java.beans.Transient;
import java.util.List;
/**
@@ -15,6 +16,7 @@
    private String appName;
    private String headPic;
    private String bgPic;
    private Integer userId;
    /**应用缩略图的base64*/
    private String fileData;
    private List<ApplicationConfig> children;
@@ -66,4 +68,12 @@
    public void setFileData(String fileData) {
        this.fileData = fileData;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
}
src/main/java/com/whyc/dto/ApplicationDTO.java
New file
@@ -0,0 +1,25 @@
package com.whyc.dto;
import com.whyc.pojo.Application;
public class ApplicationDTO {
    private Integer userId;
    private Application application;
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Application getApplication() {
        return application;
    }
    public void setApplication(Application application) {
        this.application = application;
    }
}
src/main/java/com/whyc/mapper/ApplicationConfigMapper.java
@@ -9,5 +9,5 @@
public interface ApplicationConfigMapper extends CustomMapper<ApplicationConfig> {
    int saveConfig(@Param("configDTO") ApplicationConfigDTO configDTO);
    ApplicationConfigDTO getAllConfig(int appId);
    ApplicationConfigDTO getAllConfig(int appId,int userId);
}
src/main/java/com/whyc/mapper/ApplicationConfigPicMapper.java
New file
@@ -0,0 +1,7 @@
package com.whyc.mapper;
import com.whyc.pojo.ApplicationConfigPic;
public interface ApplicationConfigPicMapper extends CustomMapper<ApplicationConfigPic> {
    Integer insertOrUpdate(ApplicationConfigPic configPic);
}
src/main/java/com/whyc/mapper/UserInfMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.UserInf;
public interface UserInfMapper extends CustomMapper<UserInf> {
}
src/main/java/com/whyc/pojo/Application.java
@@ -12,10 +12,6 @@
    private Integer id;
    private String name;
    /**头部图片*/
    private String headPic;
    /**背景图片*/
    private String bgPic;
    /**应用的缩略图*/
    private String screenshot;
@@ -43,19 +39,4 @@
        this.screenshot = screenshot;
    }
    public String getHeadPic() {
        return headPic;
    }
    public void setHeadPic(String headPic) {
        this.headPic = headPic;
    }
    public String getBgPic() {
        return bgPic;
    }
    public void setBgPic(String bgPic) {
        this.bgPic = bgPic;
    }
}
src/main/java/com/whyc/pojo/ApplicationConfig.java
@@ -26,6 +26,8 @@
    private Double y;
    /**模块图表展示类型*/
    private String type;
    /**所属用户*/
    private Integer userId;
    public Integer getId() {
        return id;
@@ -92,4 +94,15 @@
    public void setType(String type) {
        this.type = type;
    }
    /**传入的时候可以接收,传出的时候无需传递*/
    //@Transient
    public Integer getUserId() {
        return userId;
    }
    @Transient
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
}
src/main/java/com/whyc/pojo/ApplicationConfigPic.java
New file
@@ -0,0 +1,46 @@
package com.whyc.pojo;
/**
 * 应用内配置的图片
 */
public class ApplicationConfigPic {
    /**appId+userId为联合主键*/
    private Integer appId;
    private Integer userId;
    private String headPic;
    private String bgPic;
    public String getHeadPic() {
        return headPic;
    }
    public void setHeadPic(String headPic) {
        this.headPic = headPic;
    }
    public String getBgPic() {
        return bgPic;
    }
    public void setBgPic(String bgPic) {
        this.bgPic = bgPic;
    }
    public Integer getUserId() {
        return userId;
    }
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
    public Integer getAppId() {
        return appId;
    }
    public void setAppId(Integer appId) {
        this.appId = appId;
    }
}
src/main/java/com/whyc/pojo/UserInf.java
New file
@@ -0,0 +1,30 @@
package com.whyc.pojo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import org.apache.ibatis.type.Alias;
@Alias("UserInf")
@TableName( schema = "`db_user`",value = "tb_user_inf")
public class UserInf {
    @TableId
    private Integer uId;
    private String uName;
    public Integer getuId() {
        return uId;
    }
    public void setuId(Integer uId) {
        this.uId = uId;
    }
    public String getuName() {
        return uName;
    }
    public void setuName(String uName) {
        this.uName = uName;
    }
}
src/main/java/com/whyc/service/ApplicationService.java
@@ -1,13 +1,13 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.whyc.dto.ApplicationConfigDTO;
import com.whyc.dto.ApplicationDTO;
import com.whyc.dto.Response;
import com.whyc.mapper.ApplicationConfigMapper;
import com.whyc.mapper.ApplicationMapper;
import com.whyc.pojo.Application;
import com.whyc.pojo.ApplicationConfig;
import com.whyc.mapper.*;
import com.whyc.pojo.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -23,8 +23,19 @@
    @Resource
    private ApplicationConfigMapper configMapper;
    public Response insert(Application app) {
        mapper.insertApp(app);
    @Resource
    private ApplicationConfigPicMapper configPicMapper;
    @Resource
    private UserInfMapper userInfMapper;
    /*======应用管理,admin才有权限更改======*/
    public Response insert(ApplicationDTO app) {
        UserInf userInf = userInfMapper.selectById(app.getUserId());
        if(!userInf.getuName().equals("admin")){
            return new Response<>().setMsg(0,"创建应用需admin权限");
        }
        mapper.insertApp(app.getApplication());
        return new Response<>().set(1,app,"创建成功");
    }
@@ -33,8 +44,12 @@
        return new Response<>().set(1,applications);
    }
    public Response update(Application app) {
        int res = mapper.updateById(app);
    public Response update(ApplicationDTO app) {
        UserInf userInf = userInfMapper.selectById(app.getUserId());
        if(!userInf.getuName().equals("admin")){
            return new Response<>().setMsg(0,"创建应用需admin权限");
        }
        int res = mapper.updateById(app.getApplication());
        if(res==1){
            return new Response<>().setMsg(1,"更新成功");
        }else{
@@ -42,13 +57,22 @@
        }
    }
    public Response delete(Application app) {
    public Response delete(ApplicationDTO app) {
        UserInf userInf = userInfMapper.selectById(app.getUserId());
        if(!userInf.getuName().equals("admin")){
            return new Response<>().setMsg(0,"创建应用需admin权限");
        }
        //删除应用
        mapper.deleteById(app.getId());
        mapper.deleteById(app.getApplication().getId());
        //删除应用的模块配置
        UpdateWrapper<ApplicationConfig> updateWrapper = Wrappers.update();
        updateWrapper.eq("app_id",app.getId());
        updateWrapper.eq("app_id",app.getApplication().getId());
        configMapper.delete(updateWrapper);
        //删除应用的模块图片
        UpdateWrapper<ApplicationConfigPic> wrapper = Wrappers.update();
        wrapper.eq("app_id",app.getApplication().getId());
        configPicMapper.delete(wrapper);
        return new Response<>().setMsg(1,"删除成功");
    }
@@ -56,16 +80,18 @@
    @Transactional
    public Response saveConfig(ApplicationConfigDTO configDTO) {
        try {
            //保存应用的图片信息
            Application app = new Application();
            app.setId(configDTO.getAppId());
            app.setBgPic(configDTO.getBgPic());
            app.setHeadPic(configDTO.getHeadPic());
            mapper.updateById(app);
            //保存应用的图片信息,appId+userId为联合主键
            ApplicationConfigPic configPic = new ApplicationConfigPic();
            configPic.setAppId(configDTO.getAppId());
            configPic.setUserId(configDTO.getUserId());
            configPic.setBgPic(configDTO.getBgPic());
            configPic.setHeadPic(configDTO.getHeadPic());
            configPicMapper.insertOrUpdate(configPic);
            //首先删除原有配置,再保存配置
            UpdateWrapper<ApplicationConfig> wrapper = Wrappers.update();
            wrapper.eq("app_id",configDTO.getAppId());
            wrapper.eq("app_id",configDTO.getAppId()).eq("user_id",configDTO.getUserId());
            configMapper.delete(wrapper);
            configMapper.saveConfig(configDTO);
        }catch (Exception e){
@@ -75,8 +101,8 @@
    }
    /**查询应用和对应的配置模块*/
    public Response getAllConfig(int appId) {
        ApplicationConfigDTO applicationConfigDTO = configMapper.getAllConfig(appId);
    public Response getAllConfig(int appId,int userId) {
        ApplicationConfigDTO applicationConfigDTO = configMapper.getAllConfig(appId,userId);
        return new Response<>().set(1,applicationConfigDTO);
    }
src/main/resources/config/application.yml
@@ -8,11 +8,11 @@
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
#    url: jdbc:mysql://localhost:3360/db_3.5mw_web?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    url: jdbc:mysql://192.168.10.222:3360/db_3.5mw_web?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://localhost:3360/db_app_sys?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://192.168.10.222:3360/db_3.5mw_web?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://192.168.10.221:3360/db_3.5mw_web?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://192.168.10.71:3360?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://192.168.10.79:3360/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    url: jdbc:mysql://192.168.10.79:3360/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    username: root
    password: lmx8688139
    maxIdel: 60
src/main/resources/mapper/ApplicationConfigMapper.xml
@@ -4,6 +4,7 @@
    <resultMap id="Map_ApplicationConfigDTO" type="com.whyc.dto.ApplicationConfigDTO">
        <id column="appId" property="appId" />
        <result column="user_id" property="userId" />
        <result column="appName" property="appName"/>
        <result column="head_pic" property="headPic"/>
        <result column="bg_pic" property="bgPic"/>
@@ -21,17 +22,18 @@
    </resultMap>
    <insert id="saveConfig">
        insert into db_app_sys.tb_application_config(id,app_id,name,w,h,x,y,type) values
        insert into db_app_sys.tb_application_config(id,app_id,name,w,h,x,y,type,user_id) values
        <foreach collection="configDTO.children" item="module" separator=",">
            (#{module.id},#{configDTO.appId},#{module.name},#{module.w},#{module.h},#{module.x},#{module.y},#{module.type})
            (#{module.id},#{configDTO.appId},#{module.name},#{module.w},#{module.h},#{module.x},#{module.y},#{module.type},#{configDTO.userId})
        </foreach>
    </insert>
    <select id="getAllConfig" resultMap="Map_ApplicationConfigDTO">
        SELECT
            app.id as appId,
            app.NAME as appName,
            app.head_pic,
            app.bg_pic,
            app.id AS appId,
            app.NAME AS appName,
            config.user_id,
            pic.head_pic,
            pic.bg_pic,
            config.id,
            config.NAME,
            config.w,
@@ -40,10 +42,12 @@
            config.y,
            config.type
        FROM
            db_app_sys.tb_application app,
            db_app_sys.tb_application_config config,
            db_app_sys.tb_application app
            db_app_sys.tb_application_config_pic pic
        WHERE
            config.app_id = app.id
            AND config.app_id =#{appId}
            AND config.app_id = #{param1}
            AND config.user_id = #{param2}
    </select>
</mapper>
src/main/resources/mapper/ApplicationConfigPicMapper.xml
New file
@@ -0,0 +1,12 @@
<?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.whyc.mapper.ApplicationConfigPicMapper" >
    <insert id="insertOrUpdate">
        insert into db_app_sys.tb_application_config_pic(app_id,user_id,head_pic,bg_pic) values (
            #{appId},#{userId},#{headPic},#{bgPic}
        )
        ON DUPLICATE KEY UPDATE head_pic=#{headPic},bg_pic=#{bgPic}
    </insert>
</mapper>