Browse Source

迭代计划加入故事增加重复添加判断

master
陈裕财 5 years ago
parent
commit
7d19adf5fb
  1. 36
      xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java
  2. 4
      xm-core/src/main/java/com/xm/core/service/XmMenuService.java
  3. 10
      xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml

36
xm-core/src/main/java/com/xm/core/ctrl/XmIterationMenuController.java

@ -7,18 +7,19 @@ import com.mdp.mybatis.PageUtils;
import com.mdp.safe.client.entity.User;
import com.mdp.safe.client.utils.LoginUtils;
import com.xm.core.entity.XmIterationMenu;
import com.xm.core.entity.XmMenu;
import com.xm.core.service.XmIterationMenuService;
import com.xm.core.service.XmMenuService;
import com.xm.core.service.push.XmMenuPushMsgService;
import io.swagger.annotations.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* url编制采用rest风格,如对XM.xm_iteration_menu 迭代定义的操作有增删改查,对应的url分别为:<br>
@ -46,7 +47,8 @@ public class XmIterationMenuController {
@Autowired
XmMenuPushMsgService xmMenuPushMsgService;
@Autowired
XmMenuService xmMenuService;
@ApiOperation( value = "查询迭代定义信息列表",notes="listXmIterationMenu,条件之间是 and关系,模糊查询写法如 {studentName:'%才哥%'}")
@ApiImplicitParams({
@ -201,21 +203,31 @@ public class XmIterationMenuController {
if(xmIterationMenus==null || xmIterationMenus.size()==0) {
}else {
List<String> menuIds=new ArrayList<>();
for (XmIterationMenu xmIterationMenu : xmIterationMenus) {
xmIterationMenu.setCtime(new Date());
xmIterationMenu.setRelStatus("1");
xmIterationMenu.setId(xmIterationMenuService.createKey("id"));
menuIds.add(xmIterationMenu.getMenuId());
}
xmIterationMenuService.batchInsert(xmIterationMenus);
User user = LoginUtils.getCurrentUserInfo();
List<XmMenu> menus=xmMenuService.selectExistIterationMenus(menuIds);
if(menus!=null && menus.size()>0){
List<String> menuNames = menus.stream().map(XmMenu::getMenuName).collect(Collectors.toList());
String menusNameStr=StringUtils.arrayToDelimitedString(menuNames.toArray(),",");
tips.setFailureMsg("以下故事已加入本迭代计划,不能重复加入。"+menusNameStr);
}else{
xmIterationMenuService.batchInsert(xmIterationMenus);
for (XmIterationMenu xmIterationMenu : xmIterationMenus) {
User user = LoginUtils.getCurrentUserInfo();
for (XmIterationMenu xmIterationMenu : xmIterationMenus) {
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将故事【"+xmIterationMenu.getMenuId()+"】加入迭代");
}
}
this.xmMenuPushMsgService.pushMenuRelUsersMsg(user.getBranchId(), xmIterationMenu.getMenuId(), user.getUserid(), user.getUsername(), user.getUsername()+"将故事【"+xmIterationMenu.getMenuId()+"】加入迭代");
}
}
}catch (BizException e) {
tips=e.getTips();

4
xm-core/src/main/java/com/xm/core/service/XmMenuService.java

@ -1,6 +1,7 @@
package com.xm.core.service;
import com.mdp.core.service.BaseService;
import com.xm.core.entity.XmMenu;
import com.xm.core.vo.XmMenuVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -59,5 +60,8 @@ public class XmMenuService extends BaseService {
return this.selectList("queryTaskUsersByMenuId", menuId);
}
public List<XmMenu> selectExistIterationMenus(List<String> menuIds) {
return this.selectList("selectExistIterationMenus",menuIds);
}
}

10
xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmMenuMapper.xml

@ -5,7 +5,15 @@
<!--开始 自定sql函数区域 -->
<!--请在此区域添加自定义函数-->
<select id="selectExistIterationMenus" parameterType="HashMap" resultType="HashMap">
select * from xm.xm_menu res
where exist (select 1 from xm.iteration_menu im where im.menu_id in
<foreach collection="menuIds" item="item" index="index" open="(" separator="," close=")" >
#{item}
</foreach>
and im.menu_id = res.menu_id)
</select>
<select id="queryTaskUsersByMenuId" parameterType="HashMap" resultType="HashMap">
select distinct te.userid,te.username,t.executor_userid, t.executor_username from xm_task_execuser te inner join xm_task t on t.id=te.task_id
where t.menu_id=#{menuId} and te.status !='8' and te.status !='7'

Loading…
Cancel
Save