diff --git a/mdp-form/src/main/java/com/mdp/form/ctrl/FormDefController.java b/mdp-form/src/main/java/com/mdp/form/ctrl/FormDefController.java index a32068c..de309f2 100644 --- a/mdp-form/src/main/java/com/mdp/form/ctrl/FormDefController.java +++ b/mdp-form/src/main/java/com/mdp/form/ctrl/FormDefController.java @@ -6,6 +6,7 @@ import java.util.stream.Collectors; import com.mdp.core.utils.ObjectTools; import com.mdp.form.entity.FormDefVo; import com.mdp.form.service.FormDataService; +import com.mdp.form.service.FormFieldService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -48,7 +49,8 @@ public class FormDefController { @Autowired private FormDefService formDefService; - + @Autowired + private FormFieldService formFieldService; @Autowired private FormDataService formDataService; @@ -99,6 +101,14 @@ public class FormDefController { @RequestMapping(value="/editFormDefAndFields") public Map editFormDefAndFields(@RequestBody FormDefVo formDefVo) { try{ + FormDefVo formDefVo1=formFieldService.getFormFieldFromCache(formDefVo.getFormDef().getId()); + if(formDefVo1==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo1.getFormDef().getUserid())){ + return Result.error("not-form-creater-edit","您不是表单创建者,无权修改"); + } formDefService.editFormDefAndFields(formDefVo); return Result.ok(); }catch (BizException e) { @@ -121,7 +131,16 @@ public class FormDefController { if(count>0) { return Result.error("has-form-data-001","该表单下还有%s条数据,请先删除数据 后删除表单",count); }else { + FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formDef.getId()); + if(formDefVo==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo.getFormDef().getUserid())){ + return Result.error("not-form-creater-del","您不是表单创建者,无权删除"); + } formDefService.removeById(formDef.getId()); + formFieldService.putFormFields(formDef.getId(),null); } return Result.ok("del-ok","删除成功!"); diff --git a/mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java b/mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java index 43882f1..cc024d4 100644 --- a/mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java +++ b/mdp-form/src/main/java/com/mdp/form/ctrl/FormFieldController.java @@ -76,6 +76,14 @@ public class FormFieldController { }) @RequestMapping(value="/add",method=RequestMethod.POST) public Result addFormField(@RequestBody FormField formField) { + FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formField.getFormId()); + if(formDefVo==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo.getFormDef().getUserid())){ + return Result.error("not-form-creater-add","您不是表单创建者,无权新增"); + } formFieldService.save(formField); return Result.ok("add-ok","添加成功!"); } @@ -86,6 +94,14 @@ public class FormFieldController { }) @RequestMapping(value="/del",method=RequestMethod.POST) public Result delFormField(@RequestBody FormField formField){ + FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formField.getFormId()); + if(formDefVo==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo.getFormDef().getUserid())){ + return Result.error("not-form-creater-del","您不是表单创建者,无权删除"); + } formFieldService.removeById(formField); return Result.ok("del-ok","删除成功!"); } @@ -96,6 +112,14 @@ public class FormFieldController { }) @RequestMapping(value="/edit",method=RequestMethod.POST) public Result editFormField(@RequestBody FormField formField) { + FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formField.getFormId()); + if(formDefVo==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo.getFormDef().getUserid())){ + return Result.error("not-form-creater-add","您不是表单创建者,无权新增"); + } formFieldService.updateById(formField); return Result.ok("edit-ok","修改成功!"); } diff --git a/mdp-form/src/main/java/com/mdp/form/ctrl/FormQxController.java b/mdp-form/src/main/java/com/mdp/form/ctrl/FormQxController.java index bd8612d..5728df6 100644 --- a/mdp-form/src/main/java/com/mdp/form/ctrl/FormQxController.java +++ b/mdp-form/src/main/java/com/mdp/form/ctrl/FormQxController.java @@ -3,7 +3,13 @@ package com.mdp.form.ctrl; import java.util.*; import java.util.stream.Collectors; -import com.mdp.form.service.FormQxCacheService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.mdp.core.query.QueryTools; +import com.mdp.form.entity.FormDefTag; +import com.mdp.form.entity.FormDefVo; +import com.mdp.form.service.FormFieldCacheService; +import com.mdp.form.service.FormFieldService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -15,25 +21,14 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import io.swagger.annotations.*; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mdp.core.entity.Result; -import com.mdp.core.query.QueryTools; -import static com.mdp.core.utils.BaseUtils.*; -import com.mdp.core.entity.Tips; import com.mdp.core.entity.LangTips; import com.mdp.core.err.BizException; -import com.mdp.core.utils.RequestUtils; -import com.mdp.core.utils.NumberUtil; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.swagger.ApiEntityParams; -import io.swagger.annotations.*; import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletRequest; - import com.mdp.form.service.FormQxService; import com.mdp.form.entity.FormQx; @@ -46,10 +41,8 @@ public class FormQxController { @Autowired private FormQxService formQxService; - - @Autowired - FormQxCacheService formQxCacheService; + FormFieldService formFieldService; @ApiOperation( value = "表单权限-查询列表",notes=" ") @ApiEntityParams(FormQx.class) @@ -60,32 +53,10 @@ public class FormQxController { public Result listFormQx(@ApiIgnore @RequestParam Map params){ try { User user=LoginUtils.getCurrentUserInfo(); - - List datas=new ArrayList<>(); - if(params.containsKey("formId")) { - String formId=(String) params.get("formId"); - FormQx formQxObject=this.formQxCacheService.getFormQx(formId); - if(formQxObject==null) { - FormQx formQxObjectQuery=new FormQx(); - formQxObjectQuery.setFormId(formId); - formQxObject= formQxService.selectOneObject(formQxObjectQuery); //列出FormQx列表 - formQxCacheService.putFormQx(formId, formQxObject); - datas.add(formQxObject); - } - }else if(params.containsKey("formIds")){ - String[] formIds=(String[]) params.get("formIds"); - for (String formId : formIds) { - FormQx formQxObject=this.formQxCacheService.getFormQx(formId); - if(formQxObject==null) { - FormQx formQxObjectQuery=new FormQx(); - formQxObjectQuery.setFormId(formId); - formQxObject= formQxService.selectOneObject(formQxObjectQuery); //列出FormQx列表 - formQxCacheService.putFormQx(formId, formQxObject); - datas.add(formQxObject); - } - } - } - return Result.ok("query-ok","查询成功").setData(datas).setTotal(datas.size()); + QueryWrapper qw = QueryTools.initQueryWrapper(FormQx.class , params); + IPage page=QueryTools.initPage(params); + List> datas = formQxService.selectListMapByWhere(page,qw,params); + return Result.ok("query-ok","查询成功").setData(datas).setTotal(page.getTotal()); }catch (BizException e) { return Result.error(e); }catch (Exception e) { @@ -100,8 +71,14 @@ public class FormQxController { }) @RequestMapping(value="/add",method=RequestMethod.POST) public Result addFormQx(@RequestBody FormQx formQx) { - - + FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formQx.getFormId()); + if(formDefVo==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo.getFormDef().getUserid())){ + return Result.error("not-form-creater-add","您不是表单创建者,无权新增"); + } if(StringUtils.isEmpty(formQx.getFormId())) { formQx.setFormId(formQxService.createKey("formId")); }else{ @@ -110,9 +87,9 @@ public class FormQxController { return Result.error("id-exists","编号重复"); } } - formQxService.insert(formQx); - formQxCacheService.putFormQx(formQx.getFormId(), formQx); formQxService.save(formQx); + formDefVo.setFormQx(formQx); + formFieldService.putFormFields(formQx.getFormId(),formDefVo); return Result.ok("add-ok","添加成功!"); } @@ -122,6 +99,14 @@ public class FormQxController { }) @RequestMapping(value="/del",method=RequestMethod.POST) public Result delFormQx(@RequestBody FormQx formQx){ + FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formQx.getFormId()); + if(formDefVo==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo.getFormDef().getUserid())){ + return Result.error("not-form-creater-del","您不是表单创建者,无权删除"); + } formQxService.removeById(formQx); return Result.ok("del-ok","删除成功!"); } @@ -132,9 +117,18 @@ public class FormQxController { }) @RequestMapping(value="/edit",method=RequestMethod.POST) public Result editFormQx(@RequestBody FormQx formQx) { - formQxService.updateById(formQx); - formQxCacheService.putFormQx(formQx.getFormId(), formQx); + FormDefVo formDefVo=formFieldService.getFormFieldFromCache(formQx.getFormId()); + if(formDefVo==null){ + return Result.error("formDef-0","表单不存在"); + } + User user=LoginUtils.getCurrentUserInfo(); + if(!user.getUserid().equals(formDefVo.getFormDef().getUserid())){ + return Result.error("not-form-creater-edit","您不是表单创建者,无权修改"); + } + formQxService.updateById(formQx); + formDefVo.setFormQx(formQx); + formFieldService.putFormFields(formQx.getFormId(),formDefVo); return Result.ok("edit-ok","修改成功!"); } diff --git a/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java b/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java index f7215be..61ea10b 100644 --- a/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java +++ b/mdp-form/src/main/java/com/mdp/form/service/FormDefService.java @@ -128,8 +128,7 @@ public class FormDefService extends BaseService { this.updateById(formDef,true); this.ffs.deleteByFormId(formDef.getId()); this.ffs.saveBatch(formFields); - - formFieldCacheService.putFormFields(formDef.getId(), formDefVo); + formFieldCacheService.putFormFields(formDef.getId(), null); } diff --git a/mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java b/mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java index dca5ea3..ef89242 100644 --- a/mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java +++ b/mdp-form/src/main/java/com/mdp/form/service/FormFieldService.java @@ -53,13 +53,18 @@ public class FormFieldService extends BaseService { super.remove(uw); } - + public void putFormFields(String formId,FormDefVo formDefVo){ + formFieldCacheService.putFormFields(formId, formDefVo); + } public FormDefVo getFormFieldFromCache(String formId){ FormDefVo formDefVo=this.formFieldCacheService.getFormFields(formId); if(formDefVo==null) { formDefVo=new FormDefVo(); FormDef formDef=formDefService.selectOneById(formId); + if(formDef==null){ + return null; + } FormField formFieldQuery=new FormField(); formFieldQuery.setFormId(formId); List formFields = this.selectListByWhere(formFieldQuery); //列出FormField列表 diff --git a/mdp-form/src/main/java/com/mdp/form/service/FormQxCacheService.java b/mdp-form/src/main/java/com/mdp/form/service/FormQxCacheService.java deleted file mode 100644 index 060e2dd..0000000 --- a/mdp-form/src/main/java/com/mdp/form/service/FormQxCacheService.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.mdp.form.service; - -import java.util.concurrent.TimeUnit; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.stereotype.Service; - -import com.mdp.form.entity.FormQx; - -@Service -public class FormQxCacheService { - - @Autowired - RedisTemplate redisTemplate; - - String cachKey="form_qx_"; - - public void putFormQx(String formId,FormQx formQx) { - redisTemplate.opsForHash().put(cachKey+formId, formId, formQx); - redisTemplate.expire(cachKey+formId, 100, TimeUnit.DAYS); - } - - public FormQx getFormQx(String formId) { - return (FormQx) redisTemplate.opsForHash().get(cachKey+formId, formId); - } - - -}