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>