Explorar el Código

Merge branch 'dev' of yeshijie/patient-co-management into dev

yeshijie hace 7 años
padre
commit
8f0b927d7c
Se han modificado 26 ficheros con 1046 adiciones y 1702 borrados
  1. 0 220
      patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/manager/user/UserController.java
  2. 30 14
      patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisCacheKeyRuleEndPoint.java
  3. 12 10
      patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisIndexController.java
  4. 8 2
      patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisMqChannelEndPoint.java
  5. 19 10
      patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisMqPublisherEndPoint.java
  6. 16 7
      patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisMqSubscriberEndPoint.java
  7. 0 14
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/main.jsp
  8. 1 1
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/cache/keyRule/detail.jsp
  9. 98 95
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/cache/keyRule/detailJs.jsp
  10. 206 203
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/cache/keyRule/listJs.jsp
  11. 12 2
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/detail.jsp
  12. 86 83
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/detailJs.jsp
  13. 12 1
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/list.jsp
  14. 117 109
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/listJs.jsp
  15. 12 2
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/detail.jsp
  16. 79 76
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/detailJs.jsp
  17. 12 1
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/list.jsp
  18. 107 102
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/listJs.jsp
  19. 12 2
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/detail.jsp
  20. 88 85
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/detailJs.jsp
  21. 12 1
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/list.jsp
  22. 107 102
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/listJs.jsp
  23. 0 42
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_list.jsp
  24. 0 202
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_list_js.jsp
  25. 0 88
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_modify.jsp
  26. 0 228
      patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_modify_js.jsp

+ 0 - 220
patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/manager/user/UserController.java

@ -1,220 +0,0 @@
package com.yihu.wlyy.controller.manager.user;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.wlyy.controller.BaseController;
import com.yihu.wlyy.entity.User;
import com.yihu.wlyy.service.manager.user.UserService;
import com.yihu.wlyy.util.Envelop;
import com.yihu.wlyy.util.MD5;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
 * Created by yww on 2016/12/6.
 */
@Controller
@RequestMapping(value = "admin/user")
public class UserController extends BaseController {
    @Autowired
    private UserService userService;
    @Autowired
    private ObjectMapper objectMapper;
    @RequestMapping(value = "initial", method = RequestMethod.GET)
    public String listPageInit(){
        return "user/user_list";
    }
    @RequestMapping(value = "infoInit",method = RequestMethod.GET)
    public String infoPageInit(Long id,String mode){
        request.setAttribute("id",id);
        request.setAttribute("mode",mode);
        return "user/user_modify";
    }
    @RequestMapping(value = "userList")
    @ResponseBody
    public String searchList(
            @RequestParam(value = "code",required = false) String code,
            @RequestParam(value = "name",required = false) String name,
            @RequestParam(value = "mobile",required = false) String mobile,
            @RequestParam(value= "page",required = false) Integer page,
            @RequestParam(value = "rows",required = false) Integer pageSize){
        try{
            Page<User> userPage = userService.searchList(code, name, mobile, page, pageSize);
            return write(200,"操作成功",page,pageSize,userPage);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "user")
    @ResponseBody
    public String getUser(
            @ApiParam(name = "id", defaultValue = "2")
            @RequestParam(name = "id", required = true) Long id) {
        try{
            User user = userService.retrieve(id);
            return write(200,"操作成功","data",user);
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "isCodeExist")
    @ResponseBody
    public String isCodeExist(String code){
        List<User> users = userService.findByField("code", code);
        if(users != null && users.size()>0){
            return "true";
        }
        return "false";
    }
    @RequestMapping(value = "isMobileExist")
    @ResponseBody
    public String isMobileExist(String mobile){
        List<User> users = userService.findByField("mobile", mobile);
        if(users != null && users.size()>0){
            return "true";
        }
        return "false";
    }
    @RequestMapping(value = "delete")
    @ResponseBody
    public String deleteUser(Long id){
        try{
            if (id == null) {
                return error(-1, "id不能为空!");
            }
            User user = userService.retrieve(id);
            if (StringUtils.equals(user.getCode(), "admin")) {
                return error(-1, "超级管理员admin不允许删除!");
            }
            userService.deleteUser(id);
            return write(200,"操作成功!");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "create")
    @ResponseBody
    public String createUser(String jsonData){
        try{
            User user = objectMapper.readValue(jsonData, User.class);
            String mobile = user.getMobile();
            if(mobile == null){
                return write(-1,"手机号不能为空");
            }
            user.setCzrq(new Date());
            String password=user.getMobile().substring(5);
            String salt= UUID.randomUUID().toString().replace("-", "");
            password = MD5.GetMD5Code(password+salt);
            user.setPassword(password);
            user.setSalt(salt);
            User userNew = userService.save(user);
            return write(200,"操作成功!");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "update")
    @ResponseBody
    public String updateUser(String jsonData){
        try{
            User user = objectMapper.readValue(jsonData, User.class);
            String mobile = user.getMobile();
            if(mobile == null){
                return write(-1,"手机号不能为空");
            }
            User userNew = userService.retrieve(user.getId());
            userNew.setCode(user.getCode());
            userNew.setName(user.getName());
            userNew.setType(user.getType());
            userNew.setMobile(user.getMobile());
            userNew.setOrganizationId(user.getOrganizationId());
            userNew.setRoles(user.getRoles());
            //修改手机号对应初始化密码(因暂未提供修改密码操作)-手机号后六位
            if(userNew.getMobile() != user.getMobile()){
                String password=mobile.substring(5);
                String salt= UUID.randomUUID().toString().replace("-", "");
                password = MD5.GetMD5Code(password+salt);
                userNew.setPassword(password);
                userNew.setSalt(salt);
            }
            userNew = userService.save(userNew);
            return write(200,"操作成功!");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    //初始化密码
    @RequestMapping(value = "initPwd")
    @ResponseBody
    public String initPwd(
            @RequestParam(value = "mobile",required = true)String mobile){
        try{
            boolean res = userService.initPwd(mobile);
            if(!res){
                return error(-1,"操作失败!");
            }
            return write(200,"操作成功!");
        }catch (Exception ex){
            error(ex);
            return error(-1,"操作失败!");
        }
    }
    //修改密码
    @RequestMapping(value = "changePwd")
    @ResponseBody
    public String changePwd(
            @RequestParam(value = "mobile")String mobile,
            @RequestParam(value = "oldPwd")String oldPwd,
            @RequestParam(value = "newPwd")String newPwd){
        try {
            return write(200,"操作成功");
        }catch (Exception ex){
            error(ex);
            return error(-1, "操作失败!");
        }
    }
    //根据姓名获取所有有效用户列表(用于分页下拉框)
    @RequestMapping("/searchUsers")
    @ResponseBody
    public Object searchUsers(String searchNm, int page, int rows) {
        try {
            Page<User> users = userService.searchUsers(searchNm, page, rows);
            return write(200, "操作成功", page, rows, users);
        } catch (Exception ex) {
            error(ex);
            return error(-1,"操作失败!");
        }
    }
}

+ 30 - 14
patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisCacheKeyRuleEndPoint.java

@ -4,20 +4,22 @@ package com.yihu.wlyy.controller.redis;
import com.yihu.wlyy.common.constants.ApiVersion;
import com.yihu.wlyy.common.constants.ServiceApi;
import com.yihu.wlyy.common.controller.EnvelopRestEndPoint;
import com.yihu.wlyy.common.vo.MRedisCacheCategory;
import com.yihu.wlyy.common.vo.MRedisCacheKeyRule;
import com.yihu.wlyy.entity.User;
import com.yihu.wlyy.entity.redis.RedisCacheKeyRule;
import com.yihu.wlyy.service.redis.cache.RedisCacheKeyRuleService;
import com.yihu.wlyy.util.Envelop;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -42,13 +44,13 @@ public class RedisCacheKeyRuleEndPoint extends EnvelopRestEndPoint {
                MRedisCacheKeyRule mRedisCacheKeyRule = convertToModel(redisCacheKeyRuleService.getById(id), MRedisCacheKeyRule.class);
                model.addAttribute("detailModel", toJson(mRedisCacheKeyRule));
            }else {
                Object detailModel = new MRedisCacheCategory();
                Object detailModel = new MRedisCacheKeyRule();
                model.addAttribute("detailModel", toJson(detailModel));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "redis/cache/cache/detail";
        return "redis/cache/keyRule/detail";
    }
    @ApiOperation(value = "根据条件获取缓存Key规则")
@ -59,6 +61,8 @@ public class RedisCacheKeyRuleEndPoint extends EnvelopRestEndPoint {
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "searchContent", value = "筛选条件")
            @RequestParam(value = "searchContent", required = false) String searchContent,
            @ApiParam(name = "categoryCode", value = "类别")
            @RequestParam(value = "categoryCode", required = false) String categoryCode,
            @ApiParam(name = "sorts", value = "排序")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
@ -68,8 +72,16 @@ public class RedisCacheKeyRuleEndPoint extends EnvelopRestEndPoint {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {
            List<RedisCacheKeyRule> redisCacheKeyRuleList = redisCacheKeyRuleService.search(fields, searchContent, sorts, page, rows);
            int count = (int) redisCacheKeyRuleService.getCount(searchContent);
            String filters = "";
            if (!StringUtils.isEmpty(searchContent)) {
                filters = "code?" + searchContent + ";name?" + searchContent + ";";
            }
            if (!StringUtils.isEmpty(categoryCode)) {
                filters = "categoryCode=" + categoryCode + ";";
            }
            List<RedisCacheKeyRule> redisCacheKeyRuleList = redisCacheKeyRuleService.search(fields, filters, sorts, page, rows);
            int count = (int) redisCacheKeyRuleService.getCount(filters);
            List<MRedisCacheKeyRule> mRedisCacheKeyRule = (List<MRedisCacheKeyRule>) convertToModels(redisCacheKeyRuleList, new ArrayList<MRedisCacheKeyRule>(), MRedisCacheKeyRule.class, fields);
            envelop = getPageResult(mRedisCacheKeyRule, count, page, rows);
            envelop.setSuccessFlg(true);
@ -84,13 +96,16 @@ public class RedisCacheKeyRuleEndPoint extends EnvelopRestEndPoint {
    @ApiOperation("新增缓存Key规则")
    @ResponseBody
    @RequestMapping(value = ServiceApi.Redis.CacheKeyRule.Save, method = RequestMethod.POST)
    public Envelop add(
            @ApiParam(value = "缓存Key规则JSON", required = true)
            @RequestBody String entityJson) {
    public Envelop add(String data) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {
            RedisCacheKeyRule newEntity = objectMapper.readValue(entityJson, RedisCacheKeyRule.class);
            RedisCacheKeyRule newEntity = objectMapper.readValue(data, RedisCacheKeyRule.class);
            User currentUser = (User) request.getSession().getAttribute("current_user");
            newEntity.setCreator(currentUser.getCode());
            newEntity.setCreateDate(new Date());
            newEntity.setModifyDate(new Date());
            newEntity.setModifier(currentUser.getCode());
            newEntity = redisCacheKeyRuleService.save(newEntity);
            MRedisCacheKeyRule mRedisCacheKeyRule = convertToModel(newEntity, MRedisCacheKeyRule.class);
@ -107,13 +122,14 @@ public class RedisCacheKeyRuleEndPoint extends EnvelopRestEndPoint {
    @ApiOperation("更新缓存Key规则")
    @ResponseBody
    @RequestMapping(value = ServiceApi.Redis.CacheKeyRule.Update, method = RequestMethod.POST)
    public Envelop update(
            @ApiParam(value = "缓存Key规则JSON", required = true)
            @RequestBody String entityJson) {
    public Envelop update(String data) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {
            RedisCacheKeyRule updateEntity = objectMapper.readValue(entityJson, RedisCacheKeyRule.class);
            RedisCacheKeyRule updateEntity = objectMapper.readValue(data, RedisCacheKeyRule.class);
            User currentUser = (User) request.getSession().getAttribute("current_user");
            updateEntity.setModifyDate(new Date());
            updateEntity.setModifier(currentUser.getCode());
            updateEntity = redisCacheKeyRuleService.save(updateEntity);
            MRedisCacheKeyRule mRedisCacheKeyRule = convertToModel(updateEntity, MRedisCacheKeyRule.class);
@ -132,7 +148,7 @@ public class RedisCacheKeyRuleEndPoint extends EnvelopRestEndPoint {
    @RequestMapping(value = ServiceApi.Redis.CacheKeyRule.Delete, method = RequestMethod.POST)
    public Envelop delete(
            @ApiParam(name = "id", value = "缓存Key规则ID", required = true)
            @RequestParam(value = "id") Integer id) {
            @RequestParam(value = "id") Long id) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {

+ 12 - 10
patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisIndexController.java

@ -18,16 +18,6 @@ public class RedisIndexController extends BaseController {
        return "redis/mq/channel/list";
    }
    @RequestMapping(value = "pub", method = RequestMethod.GET)
    public String pub(){
        return "redis/mq/publisher/list";
    }
    @RequestMapping(value = "sub", method = RequestMethod.GET)
    public String sub(){
        return "redis/mq/sublisher/list";
    }
    @RequestMapping(value = "cacheCategory", method = RequestMethod.GET)
    public String cacheCategory(){
        return "redis/cache/category/list";
@ -44,4 +34,16 @@ public class RedisIndexController extends BaseController {
        return "/redis/cache/authorization/list";
    }
    @RequestMapping(value = "subscriber/index", method = RequestMethod.GET)
    public String subscriber_index(Model model,String channel){
        model.addAttribute("channel", channel);
        return "/redis/mq/subscriber/list";
    }
    @RequestMapping(value = "publisher/index", method = RequestMethod.GET)
    public String publisher_index(Model model,String channel){
        model.addAttribute("channel", channel);
        return "/redis/mq/publisher/list";
    }
}

+ 8 - 2
patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisMqChannelEndPoint.java

@ -20,6 +20,7 @@ import com.yihu.wlyy.util.Envelop;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.listener.ChannelTopic;
@ -91,8 +92,13 @@ public class RedisMqChannelEndPoint extends EnvelopRestEndPoint {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {
            List<RedisMqChannel> redisMqChannelList = redisMqChannelService.search(fields, searchContent, sorts, page, rows);
            int count = (int) redisMqChannelService.getCount(searchContent);
            String filters = "";
            if (!StringUtils.isEmpty(searchContent)) {
                filters = "channel?" + searchContent + ";channelName?" + searchContent + ";";
            }
            List<RedisMqChannel> redisMqChannelList = redisMqChannelService.search(fields, filters, sorts, page, rows);
            int count = (int) redisMqChannelService.getCount(filters);
            List<MRedisMqChannel> mRedisMqChannelList = (List<MRedisMqChannel>) convertToModels(redisMqChannelList, new ArrayList<MRedisMqChannel>(), MRedisMqChannel.class, fields);
            envelop = getPageResult(mRedisMqChannelList, count, page, rows);
            envelop.setSuccessFlg(true);

+ 19 - 10
patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisMqPublisherEndPoint.java

@ -4,7 +4,6 @@ package com.yihu.wlyy.controller.redis;
import com.yihu.wlyy.common.constants.ApiVersion;
import com.yihu.wlyy.common.constants.ServiceApi;
import com.yihu.wlyy.common.controller.EnvelopRestEndPoint;
import com.yihu.wlyy.common.vo.MRedisCacheCategory;
import com.yihu.wlyy.common.vo.MRedisMqPublisher;
import com.yihu.wlyy.entity.User;
import com.yihu.wlyy.entity.redis.RedisMqPublisher;
@ -13,10 +12,14 @@ import com.yihu.wlyy.util.Envelop;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.Date;
@ -38,13 +41,13 @@ public class RedisMqPublisherEndPoint extends EnvelopRestEndPoint {
    @ApiOperation("根据ID获取消息发布者")
    @RequestMapping(value = ServiceApi.Redis.MqPublisher.GetById, method = RequestMethod.GET)
    public String getById(Model model, Long id) {
    public String getById(Model model, Long id,String channel) {
        try {
            if(id!=null){
                MRedisMqPublisher mRedisMqPublisher = convertToModel(redisMqPublisherService.getById(id), MRedisMqPublisher.class);
                model.addAttribute("detailModel", toJson(mRedisMqPublisher));
            }else {
                Object detailModel = new MRedisCacheCategory();
                Object detailModel = new MRedisMqPublisher(channel);
                model.addAttribute("detailModel", toJson(detailModel));
            }
        } catch (Exception e) {
@ -61,19 +64,25 @@ public class RedisMqPublisherEndPoint extends EnvelopRestEndPoint {
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "searchContent", value = "筛选条件")
            @RequestParam(value = "searchContent", required = false) String searchContent,
            @ApiParam(name = "channel", value = "消息队列代码")
            @RequestParam(value = "channel", required = false) String channel,
            @ApiParam(name = "sorts", value = "排序")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
            @RequestParam(value = "page", required = false) int page,
            @ApiParam(name = "size", value = "分页大小", defaultValue = "15")
            @RequestParam(value = "size", required = false) int size) {
            @ApiParam(name = "rows", value = "分页大小", defaultValue = "15")
            @RequestParam(value = "rows", required = false) int rows) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {
            List<RedisMqPublisher> list = redisMqPublisherService.search(fields, searchContent, sorts, page, size);
            int count = (int) redisMqPublisherService.getCount(searchContent);
            String filters = "channel=" + channel + ";";
            if (!StringUtils.isEmpty(searchContent)) {
                filters = "appId?" + searchContent + ";";
            }
            List<RedisMqPublisher> list = redisMqPublisherService.search(fields, filters, sorts, page, rows);
            int count = (int) redisMqPublisherService.getCount(filters);
            List<MRedisMqPublisher> mList = (List<MRedisMqPublisher>) convertToModels(list, new ArrayList<MRedisMqPublisher>(), MRedisMqPublisher.class, fields);
            envelop = getPageResult(mList, count, page, size);
            envelop = getPageResult(mList, count, page, rows);
            envelop.setSuccessFlg(true);
            envelop.setErrorMsg("成功获取消息发布者列表。");
        } catch (Exception e) {
@ -138,7 +147,7 @@ public class RedisMqPublisherEndPoint extends EnvelopRestEndPoint {
    @RequestMapping(value = ServiceApi.Redis.MqPublisher.Delete, method = RequestMethod.POST)
    public Envelop delete(
            @ApiParam(name = "id", value = "消息发布者ID", required = true)
            @RequestParam(value = "id") Integer id) {
            @RequestParam(value = "id") Long id) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {

+ 16 - 7
patient-co-manage/redis-cache/src/main/java/com/yihu/wlyy/controller/redis/RedisMqSubscriberEndPoint.java

@ -4,7 +4,6 @@ package com.yihu.wlyy.controller.redis;
import com.yihu.wlyy.common.constants.ApiVersion;
import com.yihu.wlyy.common.constants.ServiceApi;
import com.yihu.wlyy.common.controller.EnvelopRestEndPoint;
import com.yihu.wlyy.common.vo.MRedisCacheCategory;
import com.yihu.wlyy.common.vo.MRedisMqSubscriber;
import com.yihu.wlyy.entity.User;
import com.yihu.wlyy.entity.redis.RedisMqSubscriber;
@ -14,11 +13,15 @@ import com.yihu.wlyy.util.Envelop;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.ArrayList;
import java.util.Date;
@ -44,13 +47,13 @@ public class RedisMqSubscriberEndPoint extends EnvelopRestEndPoint {
    @ApiOperation("根据ID获取消息订阅者")
    @RequestMapping(value = ServiceApi.Redis.MqSubscriber.GetById, method = RequestMethod.GET)
    public String getById(Model model, Long id) {
    public String getById(Model model, Long id,String channel) {
        try {
            if(id!=null){
                MRedisMqSubscriber mRedisMqSubscriber = convertToModel(redisMqSubscriberService.getById(id), MRedisMqSubscriber.class);
                model.addAttribute("detailModel", toJson(mRedisMqSubscriber));
            }else {
                Object detailModel = new MRedisCacheCategory();
                Object detailModel = new MRedisMqSubscriber(channel);
                model.addAttribute("detailModel", toJson(detailModel));
            }
        } catch (Exception e) {
@ -65,8 +68,10 @@ public class RedisMqSubscriberEndPoint extends EnvelopRestEndPoint {
    public Envelop search(
            @ApiParam(name = "fields", value = "返回的字段,为空则返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "筛选条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "searchContent", value = "筛选条件")
            @RequestParam(value = "searchContent", required = false) String searchContent,
            @ApiParam(name = "channel", value = "消息队列代码")
            @RequestParam(value = "channel", required = false) String channel,
            @ApiParam(name = "sorts", value = "排序")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "页码", defaultValue = "1")
@ -76,6 +81,10 @@ public class RedisMqSubscriberEndPoint extends EnvelopRestEndPoint {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {
            String filters = "channel=" + channel + ";";
            if (!StringUtils.isEmpty(searchContent)) {
                filters = "subscribedUrl?" + searchContent + ";";
            }
            List<RedisMqSubscriber> list = redisMqSubscriberService.search(fields, filters, sorts, page, rows);
            int count = (int) redisMqSubscriberService.getCount(filters);
            List<MRedisMqSubscriber> mList = (List<MRedisMqSubscriber>) convertToModels(list, new ArrayList<MRedisMqSubscriber>(), MRedisMqSubscriber.class, fields);
@ -144,7 +153,7 @@ public class RedisMqSubscriberEndPoint extends EnvelopRestEndPoint {
    @RequestMapping(value = ServiceApi.Redis.MqSubscriber.Delete, method = RequestMethod.POST)
    public Envelop delete(
            @ApiParam(name = "id", value = "消息订阅者ID", required = true)
            @RequestParam(value = "id") Integer id) {
            @RequestParam(value = "id") Long id) {
        Envelop envelop = new Envelop();
        envelop.setSuccessFlg(false);
        try {

+ 0 - 14
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/main.jsp

@ -43,20 +43,6 @@
		<div class="index-menu-box">
			<div class="aMenus">
				<%-- 安全管理中心--%>
				<sec:authorize url="/admin/security/center">
				<div class="a-divider"></div>
				<div class="a-menu">
					<div class="a-menu-tit"><i class="icons icons-aside-2 icons-24 mr15"></i>安全管理</div>
					<div class="a-menu-list c-hide">
						<ul>
							</sec:authorize>
							<sec:authorize url="/admin/user/initial">
								<li><a href="javascript:locationMenu('user');">用户管理</a></li>
						</ul>
					</div>
				</div>
				</sec:authorize>
				<%-- 缓存管理--%>
				<sec:authorize url="/admin/redis/center">
				<div class="a-divider"></div>

+ 1 - 1
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/cache/keyRule/detail.jsp

@ -21,7 +21,7 @@
    <div class="m-form-group">
        <label>缓存Key规则编码:</label>
        <div class="l-text-wrapper m-form-control essential">
            <input type="text" class="f-w240 max-length-50 required ajax validate-alpha-underline"
            <input type="text" class="f-w240 max-length-50 required ajax"
                   id="code" data-attr-scan="code">
        </div>
    </div>

+ 98 - 95
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/cache/keyRule/detailJs.jsp

@ -2,114 +2,117 @@
<script>
    var detailModel = ${detailModel};
    var dataModel = $.DataModel.init();
    var validator;
    var $form = $("#redisCacheKeyRuleForm");
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        validator = customFormValidator();
        initForm();
        bindEvents();
    }
        var detailModel = ${detailModel};
        var dataModel = $.DataModel.init();
        var validator;
        var $form = $("#redisCacheKeyRuleForm");
    function initForm() {
        var nameTb = $('#name').ligerTextBox({width: 240});
        var codeTb = $('#code').ligerTextBox({width: 240});
        var categoryCode = $("#categoryCode").ligerComboBox({
            ajaxType: 'get',
            url: "${contextRoot}/redis/cache/category/searchNoPage",
            dataParmName: 'detailModelList',
            valueField: 'code',
            textField: 'name'
        $(function () {
            init();
        });
        var expressionTb = $('#expression').ligerTextBox({width: 240});
        $('#remark').ligerTextBox({width: 240, height: 150});
        if(detailModel.id) {
            nameTb.setDisabled(true);
            nameTb.setReadonly(true);
            codeTb.setDisabled(true);
            codeTb.setReadonly(true);
            categoryCode.setDisabled(true);
            categoryCode.setReadonly(true);
            expressionTb.setDisabled(true);
            expressionTb.setReadonly(true);
        function init() {
            validator = customFormValidator();
            initForm();
            bindEvents();
        }
        $form.attrScan();
        $form.Fields.fillValues(detailModel);
    }
    function bindEvents() {
        // 保存
        $('#btnSave').click(function () {
            if (!validator.validate()) { return; }
        function initForm() {
            var nameTb = $('#name').ligerTextBox({width: 240});
            var codeTb = $('#code').ligerTextBox({width: 240});
            var categoryCode = $("#categoryCode").ligerComboBox({
                ajaxType: 'get',
                url: "${contextRoot}/redis/cache/category/searchNoPage",
                dataParmName: 'detailModelList',
                valueField: 'code',
                textField: 'name'
            });
            var expressionTb = $('#expression').ligerTextBox({width: 240});
            $('#remark').ligerTextBox({width: 240, height: 150});
            var loading = $.ligerDialog.waitting("正在保存数据...");
            var uri = "save";
            if(detailModel.id!=null&&detailModel.id!=-1){
                uri = "update"
            if(detailModel.id) {
                nameTb.setDisabled(true);
                nameTb.setReadonly(true);
                codeTb.setDisabled(true);
                codeTb.setReadonly(true);
                categoryCode.setDisabled(true);
                categoryCode.setReadonly(true);
                expressionTb.setDisabled(true);
                expressionTb.setReadonly(true);
            }
            dataModel.fetchRemote("${contextRoot}/redis/cache/keyRule/"+uri, {
                type: 'post',
                data: {data: JSON.stringify($form.Fields.getValues())},
                success: function (data) {
                    if (data.successFlg) {
                        if (detailModel.id) {
                            parent.closeDetailDialog('新增成功');
            $form.attrScan();
            $form.Fields.fillValues(detailModel);
        }
        function bindEvents() {
            // 保存
            $('#btnSave').click(function () {
                if (!validator.validate()) { return; }
                var loading = $.ligerDialog.waitting("正在保存数据...");
                var uri = "save";
                if(detailModel.id!=null&&detailModel.id!=-1){
                    uri = "update"
                }
                dataModel.fetchRemote("${contextRoot}/redis/cache/keyRule/"+uri, {
                    type: 'post',
                    data: {data: JSON.stringify($form.Fields.getValues())},
                    success: function (data) {
                        if (data.successFlg) {
                            if (detailModel.id) {
                                parent.closeDetailDialog('新增成功');
                            } else {
                                parent.closeDetailDialog('修改成功');
                            }
                            parent.reloadMasterGrid();
                        } else {
                            parent.closeDetailDialog('修改成功');
                            $.Notice.error(data.errorMsg);
                        }
                        parent.reloadMasterGrid();
                    } else {
                        $.Notice.error(data.errorMsg);
                    },
                    error: function () {
                        $.Notice.error('保存发生异常');
                    },
                    complete: function () {
                        loading.close();
                    }
                },
                error: function () {
                    $.Notice.error('保存发生异常');
                },
                complete: function () {
                    loading.close();
                }
                });
            });
        });
        // 关闭
        $('#btnClose').click(function () {
            parent.closeDetailDialog();
        })
    }
            // 关闭
            $('#btnClose').click(function () {
                parent.closeDetailDialog();
            })
        }
    // 表单验证对象
    function customFormValidator() {
        return new $.jValidation.Validation($form, {
            immediate: true,
            onElementValidateForAjax: function (el) {
                var id = detailModel.id || -1; // 新增时传-1。
                var elId = $(el).attr("id");
                switch(elId) {
                    case 'name':
                        var name = $("#name").val();
                        if(!$.Util.isStrEquals(name, detailModel.name)) {
                            var ulr = "${contextRoot}/redis/cache/keyRule/isUniqueName";
                            return $.Util.validateByAjax(ulr, {id: id, name: name});
                        }
                        break;
                    case 'code':
                        var code = $("#code").val();
                        if(!$.Util.isStrEquals(code, detailModel.code)) {
                            var ulr = "${contextRoot}/redis/cache/keyRule/isUniqueCode";
                            return $.Util.validateByAjax(ulr, {id: id, code: code});
                        }
                        break;
        // 表单验证对象
        function customFormValidator() {
            return new $.jValidation.Validation($form, {
                immediate: true,
                onElementValidateForAjax: function (el) {
                    var id = detailModel.id || -1; // 新增时传-1。
                    var elId = $(el).attr("id");
                    switch(elId) {
                        case 'name':
                            var name = $("#name").val();
                            if(!$.Util.isStrEquals(name, detailModel.name)) {
                                var ulr = "${contextRoot}/redis/cache/keyRule/isUniqueName";
                                return $.Util.validateByAjax(ulr, {id: id, name: name});
                            }
                            break;
                        case 'code':
                            var code = $("#code").val();
                            if(!$.Util.isStrEquals(code, detailModel.code)) {
                                var ulr = "${contextRoot}/redis/cache/keyRule/isUniqueCode";
                                return $.Util.validateByAjax(ulr, {id: id, code: code});
                            }
                            break;
                    }
                }
            }
        });
    }
            });
        }
    });
})(jQuery, window)
</script>

+ 206 - 203
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/cache/keyRule/listJs.jsp

@ -3,228 +3,231 @@
<script>
    var dataModel = $.DataModel.init();
    var detailDialog = null;
    var grid = null;
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        initWidget();
        bindEvents();
        initChart();
    }
        var dataModel = $.DataModel.init();
        var detailDialog = null;
        var grid = null;
    function initWidget() {
        $('#searchContent').ligerTextBox({ width: 200 });
        $("#searchCategoryCode").ligerComboBox({
            ajaxType: 'get',
            url: "${contextRoot}/redis/cache/category/searchNoPage",
            dataParmName: 'detailModelList',
            valueField: 'code',
            textField: 'name'
        $(function () {
            init();
        });
        grid = $("#grid").ligerGrid($.LigerGridEx.config({
            url: '${contextRoot}/redis/cache/keyRule/search',
            height: '600px',
            method:'GET',
            columns: [
                {display: 'ID', name: 'id', hide: true},
                {display: '缓存Key规则名称', name: 'name', width: '15%', isAllowHide: false, align: 'left'},
                {display: '缓存Key规则编码', name: 'code', width: '15%', isAllowHide: false, align: 'left'},
                {display: '缓存分类', name: 'categoryName', width: '15%', isAllowHide: false, align: 'left'},
                {display: 'Key规则表达式', name: 'expression', width: '20%', isAllowHide: false, align: 'left'},
                {display: '备注', name: 'remark', width: '15%', isAllowHide: false, align: 'left'},
                {display: '操作', name: 'operator', minWidth: 120, align: 'center',
                    render: function (row) {
                        var html = '';
                        html += '<sec:authorize url="/redis/cache/keyRule/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:cache:keyRule:detail", row.id, 'modify') + '"></a></sec:authorize>';
                        html += '<sec:authorize url="/redis/cache/keyRule/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:cache:keyRule:delete", row.id) + '"></a></sec:authorize>';
                        return html;
        function init() {
            initWidget();
            bindEvents();
            initChart();
        }
        function initWidget() {
            $('#searchContent').ligerTextBox({ width: 200 });
            $("#searchCategoryCode").ligerComboBox({
                ajaxType: 'get',
                url: "${contextRoot}/redis/cache/category/searchNoPage",
                dataParmName: 'detailModelList',
                valueField: 'code',
                textField: 'name'
            });
            grid = $("#grid").ligerGrid($.LigerGridEx.config({
                url: '${contextRoot}/redis/cache/keyRule/search',
                height: '600px',
                method:'GET',
                columns: [
                    {display: 'ID', name: 'id', hide: true},
                    {display: '缓存Key规则名称', name: 'name', width: '15%', isAllowHide: false, align: 'left'},
                    {display: '缓存Key规则编码', name: 'code', width: '15%', isAllowHide: false, align: 'left'},
                    {display: '缓存分类', name: 'categoryName', width: '15%', isAllowHide: false, align: 'left'},
                    {display: 'Key规则表达式', name: 'expression', width: '20%', isAllowHide: false, align: 'left'},
                    {display: '备注', name: 'remark', width: '15%', isAllowHide: false, align: 'left'},
                    {display: '操作', name: 'operator', minWidth: 120, align: 'center',
                        render: function (row) {
                            var html = '';
                            html += '<sec:authorize url="/redis/cache/keyRule/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:cache:keyRule:detail", row.id, 'modify') + '"></a></sec:authorize>';
                            html += '<sec:authorize url="/redis/cache/keyRule/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:cache:keyRule:delete", row.id) + '"></a></sec:authorize>';
                            return html;
                        }
                    }
                }
            ],
            allowHideColumn: false,
            usePager: true
        }));
        grid.collapseAll();
        grid.adjustToWidth();
    }
                ],
                allowHideColumn: false,
                usePager: true
            }));
            grid.collapseAll();
            grid.adjustToWidth();
        }
    function bindEvents() {
        // 查询
        $('#btnSearch').on('click', function () {
            reloadGrid();
        });
        function bindEvents() {
            // 查询
            $('#btnSearch').on('click', function () {
                reloadGrid();
            });
        // 新增/修改
        $.subscribe('redis:cache:keyRule:detail', function (event, id, mode) {
            var title = '新增缓存Key规则';
            if (mode == 'modify') {
                title = '修改缓存Key规则';
            }
            detailDialog = $.ligerDialog.open({
                height: 490,
                width: 480,
                title: title,
                url: '${contextRoot}/redis/cache/keyRule/detail',
                urlParms: {
                    id: id
            // 新增/修改
            $.subscribe('redis:cache:keyRule:detail', function (event, id, mode) {
                var title = '新增缓存Key规则';
                if (mode == 'modify') {
                    title = '修改缓存Key规则';
                }
                detailDialog = $.ligerDialog.open({
                    height: 490,
                    width: 480,
                    title: title,
                    url: '${contextRoot}/redis/cache/keyRule/detail',
                    urlParms: {
                        id: id
                    }
                });
            });
        });
        // 删除
        $.subscribe('redis:cache:keyRule:delete', function (event, id) {
            $.Notice.confirm('删除后不能通过该缓存Key规则操作缓存,确认要删除吗?', function (r) {
                if (r) {
                    var loading = $.ligerDialog.waitting("正在删除数据...");
                    dataModel.updateRemote('${contextRoot}/redis/cache/keyRule/delete', {
                        data: {id: parseInt(id)},
                        success: function (data) {
                            if (data.successFlg) {
                                $.Notice.success('删除成功!');
                                reloadGrid();
                            } else {
                                $.Notice.error(data.errorMsg);
            // 删除
            $.subscribe('redis:cache:keyRule:delete', function (event, id) {
                $.Notice.confirm('删除后不能通过该缓存Key规则操作缓存,确认要删除吗?', function (r) {
                    if (r) {
                        var loading = $.ligerDialog.waitting("正在删除数据...");
                        dataModel.updateRemote('${contextRoot}/redis/cache/keyRule/delete', {
                            data: {id: parseInt(id)},
                            success: function (data) {
                                if (data.successFlg) {
                                    $.Notice.success('删除成功!');
                                    reloadGrid();
                                } else {
                                    $.Notice.error(data.errorMsg);
                                }
                            },
                            error: function () {
                                $.Notice.error('删除发生异常');
                            },
                            complete: function () {
                                loading.close();
                            }
                        },
                        error: function () {
                            $.Notice.error('删除发生异常');
                        },
                        complete: function () {
                            loading.close();
                        }
                    });
                }
            })
        });
                        });
                    }
                })
            });
    }
        }
    function initChart() {
        // 缓存分类内存比率统计
        dataModel.fetchRemote('${contextRoot}/redis/cache/statistics/getCategoryMemory', {
            success: function(data) {
                if (data.successFlg) {
                    var categoryMemoryRateChart = echarts.init(document.getElementById('categoryMemoryRate'));
                    categoryMemoryRateChart.setOption({
                        title : {
                            text: '缓存分类的Redis内存占比',
                            subtext: '单位:字节(bytes)',
                            x:'center'
                        },
                        tooltip : {
                            trigger: 'item',
                            formatter: "{b} : {c} ({d}%)"
                        },
                        /*legend: {
                            type: 'scroll',
                            orient: 'vertical',
                            right: 10,
                            top: 20,
                            bottom: 20,
                            data: data.obj.categoryNameList
                        },*/
                        series : [
                            {
                                type: 'pie',
                                radius : '55%',
                                center: ['50%', '60%'],
                                data: data.obj.categoryMemoryList,
                                itemStyle: {
                                    emphasis: {
                                        shadowBlur: 10,
                                        shadowOffsetX: 0,
                                        shadowColor: 'rgba(0, 0, 0, 0.5)'
        function initChart() {
            // 缓存分类内存比率统计
            dataModel.fetchRemote('${contextRoot}/redis/cache/statistics/getCategoryMemory', {
                success: function(data) {
                    if (data.successFlg) {
                        var categoryMemoryRateChart = echarts.init(document.getElementById('categoryMemoryRate'));
                        categoryMemoryRateChart.setOption({
                            title : {
                                text: '缓存分类的Redis内存占比',
                                subtext: '单位:字节(bytes)',
                                x:'center'
                            },
                            tooltip : {
                                trigger: 'item',
                                formatter: "{b} : {c} ({d}%)"
                            },
                            /*legend: {
                                type: 'scroll',
                                orient: 'vertical',
                                right: 10,
                                top: 20,
                                bottom: 20,
                                data: data.obj.categoryNameList
                            },*/
                            series : [
                                {
                                    type: 'pie',
                                    radius : '55%',
                                    center: ['50%', '60%'],
                                    data: data.obj.categoryMemoryList,
                                    itemStyle: {
                                        emphasis: {
                                            shadowBlur: 10,
                                            shadowOffsetX: 0,
                                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                                        }
                                    }
                                }
                            }
                        ]
                    });
                } else {
                    $.Notice.error(data.errorMsg);
                            ]
                        });
                    } else {
                        $.Notice.error(data.errorMsg);
                    }
                },
                error: function() {
                    $.Notice.error('加载分类内存占比图表数据发生异常!');
                }
            },
            error: function() {
                $.Notice.error('加载分类内存占比图表数据发生异常!');
            }
        });
            });
        // 缓存个数统计
        dataModel.fetchRemote('${contextRoot}/redis/cache/statistics/getCategoryKeys', {
            success: function(data) {
                if (data.successFlg) {
                    var cacheKeysChart = echarts.init(document.getElementById('cacheKeys'));
                    cacheKeysChart.setOption({
                        title: {
                            text: '分类缓存数量',
                            x:'center'
                        },
                        color: ['#3398DB'],
                        tooltip : {
                            trigger: 'axis',
                            axisPointer : {
                                type : 'shadow'
                            }
                        },
                        grid: {
                            left: '3%',
                            right: '4%',
                            bottom: '3%',
                            containLabel: true
                        },
                        xAxis : [
                            {
                                type : 'category',
                                data : data.obj.categoryNameList,
                                axisTick: {
                                    alignWithLabel: true
            // 缓存个数统计
            dataModel.fetchRemote('${contextRoot}/redis/cache/statistics/getCategoryKeys', {
                success: function(data) {
                    if (data.successFlg) {
                        var cacheKeysChart = echarts.init(document.getElementById('cacheKeys'));
                        cacheKeysChart.setOption({
                            title: {
                                text: '分类缓存数量',
                                x:'center'
                            },
                            color: ['#3398DB'],
                            tooltip : {
                                trigger: 'axis',
                                axisPointer : {
                                    type : 'shadow'
                                }
                            }
                        ],
                        yAxis : [
                            {
                                type : 'value'
                            }
                        ],
                        series : [
                            {
                                name:'缓存数量',
                                type:'bar',
                                barWidth: '60%',
                                data: data.obj.categoryNumList
                            }
                        ]
                    });
                } else {
                    $.Notice.error(data.errorMsg);
                            },
                            grid: {
                                left: '3%',
                                right: '4%',
                                bottom: '3%',
                                containLabel: true
                            },
                            xAxis : [
                                {
                                    type : 'category',
                                    data : data.obj.categoryNameList,
                                    axisTick: {
                                        alignWithLabel: true
                                    }
                                }
                            ],
                            yAxis : [
                                {
                                    type : 'value'
                                }
                            ],
                            series : [
                                {
                                    name:'缓存数量',
                                    type:'bar',
                                    barWidth: '60%',
                                    data: data.obj.categoryNumList
                                }
                            ]
                        });
                    } else {
                        $.Notice.error(data.errorMsg);
                    }
                },
                error: function() {
                    $.Notice.error('加载缓存数量图表数据发生异常!');
                }
            },
            error: function() {
                $.Notice.error('加载缓存数量图表数据发生异常!');
            }
        });
    }
            });
        }
    function reloadGrid() {
        var params = {
            searchContent: $('#searchContent').val(),
            categoryCode: $("#searchCategoryCode").ligerComboBox().getValue()
        };
        $.Util.reloadGrid.call(grid, '${contextRoot}/redis/cache/keyRule/search', params);
    }
        function reloadGrid() {
            var params = {
                searchContent: $('#searchContent').val(),
                categoryCode: $("#searchCategoryCode").ligerComboBox().getValue()
            };
            $.Util.reloadGrid.call(grid, '${contextRoot}/redis/cache/keyRule/search', params);
        }
    /*-- 与明细 Dialog 页面间回调的函数 --*/
    window.reloadMasterGrid = function() {
        reloadGrid();
    };
    window.closeDetailDialog = function (type, msg) {
        detailDialog.close();
        msg && $.Notice.success(msg);
        /*-- 与明细 Dialog 页面间回调的函数 --*/
        window.reloadMasterGrid = function() {
        };
        window.closeDetailDialog = function (type, msg) {
            detailDialog.close();
            reloadGrid();
            msg && $.Notice.success(msg);
    };
</script>
    });
})(jQuery, window)
</script>

+ 12 - 2
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/detail.jsp

@ -1,5 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../../../head/page_head.jsp" %>
    <%@ include file="detailCss.jsp" %>
    <title>用户管理</title>
</head>
<body>
<div id="redisMqChannelForm" class="m-form-inline f-mt20" data-role-form>
    <input type="hidden" id="id" data-attr-scan="id">
@ -42,4 +49,7 @@
        </div>
    </div>
</div>
</body>
<%@ include file="../../../head/page_foot.jsp" %>
<%@ include file="detailJs.jsp" %>
</html>

+ 86 - 83
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/detailJs.jsp

@ -2,101 +2,104 @@
<script>
    var detailModel = ${detailModel};
    var dataModel = $.DataModel.init();
    var validator;
    var $form = $("#redisMqChannelForm");
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        validator = customFormValidator();
        initForm();
        bindEvents();
    }
        var detailModel = ${detailModel};
        var dataModel = $.DataModel.init();
        var validator;
        var $form = $("#redisMqChannelForm");
    function initForm() {
        var channelTb = $('#channel').ligerTextBox({width: 240});
        $('#channelName').ligerTextBox({width: 240});
        $('#messageTemplate').ligerTextBox({width: 240, height: 150});
        $('#remark').ligerTextBox({width: 240, height: 150});
        $(function () {
            init();
        });
        if(detailModel.id) {
            channelTb.setDisabled(true);
            channelTb.setReadonly(true);
        function init() {
            validator = customFormValidator();
            initForm();
            bindEvents();
        }
        $form.attrScan();
        $form.Fields.fillValues(detailModel);
    }
    function bindEvents() {
        // 保存
        $('#btnSave').click(function () {
            if (!validator.validate()) { return; }
        function initForm() {
            var channelTb = $('#channel').ligerTextBox({width: 240});
            $('#channelName').ligerTextBox({width: 240});
            $('#messageTemplate').ligerTextBox({width: 240, height: 150});
            $('#remark').ligerTextBox({width: 240, height: 150});
            var loading = $.ligerDialog.waitting("正在保存数据...");
            var uri = "save";
            if(detailModel.id!=null&&detailModel.id!=-1){
                uri = "update"
            if(detailModel.id) {
                channelTb.setDisabled(true);
                channelTb.setReadonly(true);
            }
            dataModel.fetchRemote("${contextRoot}/redis/mq/channel/"+uri, {
                type: 'post',
                data: {data: JSON.stringify($form.Fields.getValues())},
                success: function (data) {
                    if (data.successFlg) {
                        if (detailModel.id) {
                            parent.closeDetailDialog('新增成功');
            $form.attrScan();
            $form.Fields.fillValues(detailModel);
        }
        function bindEvents() {
            // 保存
            $('#btnSave').click(function () {
                if (!validator.validate()) { return; }
                var loading = $.ligerDialog.waitting("正在保存数据...");
                var uri = "save";
                if(detailModel.id!=null&&detailModel.id!=-1){
                    uri = "update"
                }
                dataModel.fetchRemote("${contextRoot}/redis/mq/channel/"+uri, {
                    type: 'post',
                    data: {data: JSON.stringify($form.Fields.getValues())},
                    success: function (data) {
                        if (data.successFlg) {
                            if (detailModel.id) {
                                parent.closeDetailDialog('新增成功');
                            } else {
                                parent.closeDetailDialog('修改成功');
                            }
                            parent.reloadMasterGrid();
                        } else {
                            parent.closeDetailDialog('修改成功');
                            $.Notice.error(data.errorMsg);
                        }
                        parent.reloadMasterGrid();
                    } else {
                        $.Notice.error(data.errorMsg);
                    },
                    error: function () {
                        $.Notice.error('保存发生异常');
                    },
                    complete: function () {
                        loading.close();
                    }
                },
                error: function () {
                    $.Notice.error('保存发生异常');
                },
                complete: function () {
                    loading.close();
                }
                });
            });
        });
        // 关闭
        $('#btnClose').click(function () {
            parent.closeDetailDialog();
        })
    }
            // 关闭
            $('#btnClose').click(function () {
                parent.closeDetailDialog();
            })
        }
    // 表单验证对象
    function customFormValidator() {
        return new $.jValidation.Validation($form, {
            immediate: true,
            onElementValidateForAjax: function (el) {
                var id = detailModel.id || -1; // 新增时传-1。
                var elId = $(el).attr("id");
                switch(elId) {
                    case 'channel':
                        var channel = $("#channel").val();
                        if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                            var ulr = "${contextRoot}/redis/mq/channel/isUniqueChannel";
                            return $.Util.validateByAjax(ulr, {id: id, channel: channel});
                        }
                        break;
                    case 'channelName':
                        var channelName = $("#channelName").val();
                        if(!$.Util.isStrEquals(channelName, detailModel.channelName)) {
                            var ulr = "${contextRoot}/redis/mq/channel/isUniqueChannelName";
                            return $.Util.validateByAjax(ulr, {id: id, channelName: channelName});
                        }
                        break;
        // 表单验证对象
        function customFormValidator() {
            return new $.jValidation.Validation($form, {
                immediate: true,
                onElementValidateForAjax: function (el) {
                    var id = detailModel.id || -1; // 新增时传-1。
                    var elId = $(el).attr("id");
                    switch(elId) {
                        case 'channel':
                            var channel = $("#channel").val();
                            if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                                var ulr = "${contextRoot}/redis/mq/channel/isUniqueChannel";
                                return $.Util.validateByAjax(ulr, {id: id, channel: channel});
                            }
                            break;
                        case 'channelName':
                            var channelName = $("#channelName").val();
                            if(!$.Util.isStrEquals(channelName, detailModel.channelName)) {
                                var ulr = "${contextRoot}/redis/mq/channel/isUniqueChannelName";
                                return $.Util.validateByAjax(ulr, {id: id, channelName: channelName});
                            }
                            break;
                    }
                }
            }
        });
    }
            });
        }
    });
})(jQuery, window)
</script>

+ 12 - 1
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/list.jsp

@ -1,6 +1,13 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../../../head/page_head.jsp" %>
    <%@ include file="listCss.jsp" %>
    <title>用户管理</title>
</head>
<body>
<div class="m-form-inline">
    <div class="m-form-group f-mt10">
@ -20,3 +27,7 @@
    <div id="grid"></div>
</div>
</body>
<%@ include file="../../../head/page_foot.jsp" %>
<%@ include file="listJs.jsp" %>
</html>

+ 117 - 109
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/channel/listJs.jsp

@ -3,128 +3,136 @@
<script>
    var dataModel = $.DataModel.init();
    var detailDialog = null;
    var grid = null;
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        initWidget();
        bindEvents();
    }
        var dataModel = $.DataModel.init();
        var detailDialog = null;
        var grid = null;
    function initWidget() {
        $('#searchContent').ligerTextBox({
            width: 200, isSearch: true, search: function () {
                reloadGrid();
            }
        $(function () {
            init();
        });
        grid = $("#grid").ligerGrid($.LigerGridEx.config({
            url: '${contextRoot}/redis/mq/channel/search',
            method:'GET',
            columns: [
                {display: 'ID', name: 'id', hide: true},
                {display: '消息队列编码', name: 'channel', width: '20%', isAllowHide: false, align: 'left'},
                {display: '消息队列名称', name: 'channelName', width: '20%', isAllowHide: false, align: 'left'},
                {display: '入列数', name: 'enqueuedNum', width: '5%', isAllowHide: false, align: 'center'},
                {display: '出列数', name: 'dequeuedNum', width: '5%', isAllowHide: false, align: 'center'},
                {display: '订阅者数', name: 'subscriberNum', width: '5%', isAllowHide: false, align: 'center'},
                {display: '发布者数', name: 'publisherNum', width: '5%', isAllowHide: false, align: 'center'},
                {display: '备注', name: 'remark', width: '25%', isAllowHide: false, align: 'left'},
                {display: '操作', name: 'operator', width: '15%', minWidth: 120, align: 'center',
                    render: function (row) {
                        var html = '';
                        html += '<sec:authorize url="/redis/mq/channel/publisherList"><a class="label_a f-ml10" title="发布者" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:channel:publisherList", row.channel) + '">发布者</a></sec:authorize>';
                        html += '<sec:authorize url="/redis/mq/channel/subscriberList"><a class="label_a f-ml10" title="订阅者" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:channel:subscriberList", row.channel) + '">订阅者</a></sec:authorize>';
                        html += '<sec:authorize url="/redis/mq/channel/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:mq:channel:detail", row.id, 'modify') + '"></a></sec:authorize>';
                        html += '<sec:authorize url="/redis/mq/channel/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:channel:delete", row.id) + '"></a></sec:authorize>';
                        return html;
                    }
        function init() {
            initWidget();
            bindEvents();
        }
        function initWidget() {
            $('#searchContent').ligerTextBox({
                width: 200, isSearch: true, search: function () {
                    reloadGrid();
                }
            ],
            allowHideColumn: false,
            usePager: true
        }));
        grid.collapseAll();
        grid.adjustToWidth();
    }
            });
    function bindEvents() {
        // 发布者
        $.subscribe('redis:mq:channel:publisherList', function (event, channel) {
            var url = '${contextRoot}/admin/redis/publisher/index?';
            $("#contentPage").empty();
            $("#contentPage").load(url,{channel: channel});
        });
            grid = $("#grid").ligerGrid($.LigerGridEx.config({
                url: '${contextRoot}/redis/mq/channel/search',
                method:'GET',
                columns: [
                    {display: 'ID', name: 'id', hide: true},
                    {display: '消息队列编码', name: 'channel', width: '20%', isAllowHide: false, align: 'left'},
                    {display: '消息队列名称', name: 'channelName', width: '20%', isAllowHide: false, align: 'left'},
                    {display: '入列数', name: 'enqueuedNum', width: '5%', isAllowHide: false, align: 'center'},
                    {display: '出列数', name: 'dequeuedNum', width: '5%', isAllowHide: false, align: 'center'},
                    {display: '订阅者数', name: 'subscriberNum', width: '5%', isAllowHide: false, align: 'center'},
                    {display: '发布者数', name: 'publisherNum', width: '5%', isAllowHide: false, align: 'center'},
                    {display: '备注', name: 'remark', width: '25%', isAllowHide: false, align: 'left'},
                    {display: '操作', name: 'operator', width: '15%', minWidth: 120, align: 'center',
                        render: function (row) {
                            var html = '';
                            <sec:authorize url="/redis/mq/channel/publisherList">
                            html += '<a class="label_a f-ml10" title="发布者" href="${contextRoot}/admin/redis/publisher/index?channel='+row.channel+'">发布者</a>';
                            </sec:authorize>
                            <sec:authorize url="/redis/mq/channel/subscriberList">
                            html += '<a class="label_a f-ml10" title="订阅者" href="${contextRoot}/admin/redis/subscriber/index?channel='+row.channel + '">订阅者</a>';
                            </sec:authorize>
                            html += '<sec:authorize url="/redis/mq/channel/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:mq:channel:detail", row.id, 'modify') + '"></a></sec:authorize>';
                            html += '<sec:authorize url="/redis/mq/channel/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:channel:delete", row.id) + '"></a></sec:authorize>';
                            return html;
                        }
                    }
                ],
                allowHideColumn: false,
                usePager: true
            }));
            grid.collapseAll();
            grid.adjustToWidth();
        }
        // 订阅者
        $.subscribe('redis:mq:channel:subscriberList', function (event, channel) {
            var url = '${contextRoot}/admin/redis/subscriber/index?';
            $("#contentPage").empty();
            $("#contentPage").load(url,{channel: channel});
        });
        function bindEvents() {
            // 发布者
            $.subscribe('redis:mq:channel:publisherList', function (event, channel) {
                var url = '${contextRoot}/admin/redis/publisher/index?';
                $("#contentPage").empty();
                $("#contentPage").load(url,{channel: channel});
            });
        // 新增/修改
        $.subscribe('redis:mq:channel:detail', function (event, id, mode) {
            var title = '新增消息队列';
            if (mode == 'modify') {
                title = '修改消息队列';
            }
            detailDialog = $.ligerDialog.open({
                height: 560,
                width: 480,
                title: title,
                url: '${contextRoot}/redis/mq/channel/detail',
                urlParms: {
                    id: id,
                    mode: mode
            // 订阅者
            $.subscribe('redis:mq:channel:subscriberList', function (event, channel) {
                var url = '${contextRoot}/admin/redis/subscriber/index?';
                $("#contentPage").empty();
                $("#contentPage").load(url,{channel: channel});
            });
            // 新增/修改
            $.subscribe('redis:mq:channel:detail', function (event, id, mode) {
                var title = '新增消息队列';
                if (mode == 'modify') {
                    title = '修改消息队列';
                }
                detailDialog = $.ligerDialog.open({
                    height: 560,
                    width: 480,
                    title: title,
                    url: '${contextRoot}/redis/mq/channel/detail',
                    urlParms: {
                        id: id,
                        mode: mode
                    }
                });
            });
        });
        // 删除
        $.subscribe('redis:mq:channel:delete', function (event, id) {
            $.Notice.confirm('确认要删除所选数据吗?', function (r) {
                if (r) {
                    var loading = $.ligerDialog.waitting("正在删除数据...");
                    dataModel.updateRemote('${contextRoot}/redis/mq/channel/delete', {
                        data: {id: parseInt(id)},
                        success: function (data) {
                            if (data.successFlg) {
                                $.Notice.success('删除成功!');
                                reloadGrid();
                            } else {
                                $.Notice.error(data.errorMsg);
            // 删除
            $.subscribe('redis:mq:channel:delete', function (event, id) {
                $.Notice.confirm('确认要删除所选数据吗?', function (r) {
                    if (r) {
                        var loading = $.ligerDialog.waitting("正在删除数据...");
                        dataModel.updateRemote('${contextRoot}/redis/mq/channel/delete', {
                            data: {id: parseInt(id)},
                            success: function (data) {
                                if (data.successFlg) {
                                    $.Notice.success('删除成功!');
                                    reloadGrid();
                                } else {
                                    $.Notice.error(data.errorMsg);
                                }
                            },
                            error: function () {
                                $.Notice.error('删除发生异常');
                            },
                            complete: function () {
                                loading.close();
                            }
                        },
                        error: function () {
                            $.Notice.error('删除发生异常');
                        },
                        complete: function () {
                            loading.close();
                        }
                    });
                }
            })
        });
    }
                        });
                    }
                })
            });
        }
    function reloadGrid() {
        var params = {searchContent: $('#searchContent').val()};
        $.Util.reloadGrid.call(grid, '${contextRoot}/redis/mq/channel/search', params);
    }
        function reloadGrid() {
            var params = {searchContent: $('#searchContent').val()};
            $.Util.reloadGrid.call(grid, '${contextRoot}/redis/mq/channel/search', params);
        }
    /*-- 与明细 Dialog 页面间回调的函数 --*/
    window.reloadMasterGrid = function() {
        reloadGrid();
    };
    window.closeDetailDialog = function (type, msg) {
        detailDialog.close();
        msg && $.Notice.success(msg);
    };
        /*-- 与明细 Dialog 页面间回调的函数 --*/
        window.reloadMasterGrid = function() {
        };
        window.closeDetailDialog = function (type, msg) {
            detailDialog.close();
            reloadGrid();
            msg && $.Notice.success(msg);
        };
    });
})(jQuery, window)
</script>

+ 12 - 2
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/detail.jsp

@ -1,5 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../../../head/page_head.jsp" %>
    <%@ include file="detailCss.jsp" %>
    <title>用户管理</title>
</head>
<body>
<div id="redisMqSubscriberForm" class="m-form-inline f-mt20" data-role-form>
    <input type="hidden" id="id" data-attr-scan="id">
@ -42,4 +49,7 @@
        </div>
    </div>
</div>
</body>
<%@ include file="../../../head/page_foot.jsp" %>
<%@ include file="detailJs.jsp" %>
</html>

+ 79 - 76
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/detailJs.jsp

@ -2,94 +2,97 @@
<script>
    var detailModel = ${detailModel};
    var dataModel = $.DataModel.init();
    var validator;
    var $form = $("#redisMqSubscriberForm");
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        validator = customFormValidator();
        initForm();
        bindEvents();
    }
        var detailModel = ${detailModel};
        var dataModel = $.DataModel.init();
        var validator;
        var $form = $("#redisMqSubscriberForm");
    function initForm() {
        $('#channel').ligerTextBox({width: 240, disabled: true, readonly: true});
        var appIdTb = $('#appId').ligerTextBox({width: 240});
        $('#authorizedCode').ligerTextBox({width: 240, disabled: true, readonly: true});
        $('#remark').ligerTextBox({width: 240, height: 150});
        $(function () {
            init();
        });
        if(detailModel.id) {
            appIdTb.setDisabled(true);
            appIdTb.setReadonly(true);
        function init() {
            validator = customFormValidator();
            initForm();
            bindEvents();
        }
        $form.attrScan();
        $form.Fields.fillValues(detailModel);
    }
    function bindEvents() {
        // 保存
        $('#btnSave').click(function () {
            if (!validator.validate()) { return; }
        function initForm() {
            $('#channel').ligerTextBox({width: 240, disabled: true, readonly: true});
            var appIdTb = $('#appId').ligerTextBox({width: 240});
            $('#authorizedCode').ligerTextBox({width: 240});
            $('#remark').ligerTextBox({width: 240, height: 150});
            var loading = $.ligerDialog.waitting("正在保存数据...");
            var uri = "save";
            if(detailModel.id!=null&&detailModel.id!=-1){
                uri = "update"
            if(detailModel.id) {
                appIdTb.setDisabled(true);
                appIdTb.setReadonly(true);
            }
            dataModel.fetchRemote("${contextRoot}/redis/mq/publisher/"+uri, {
                type: 'post',
                data: {data: JSON.stringify($form.Fields.getValues())},
                success: function (data) {
                    if (data.successFlg) {
                        if (detailModel.id) {
                            parent.closeDetailDialog('新增成功');
            $form.attrScan();
            $form.Fields.fillValues(detailModel);
        }
        function bindEvents() {
            // 保存
            $('#btnSave').click(function () {
                if (!validator.validate()) { return; }
                var loading = $.ligerDialog.waitting("正在保存数据...");
                var uri = "save";
                if(detailModel.id!=null&&detailModel.id!=-1){
                    uri = "update"
                }
                dataModel.fetchRemote("${contextRoot}/redis/mq/publisher/"+uri, {
                    type: 'post',
                    data: {data: JSON.stringify($form.Fields.getValues())},
                    success: function (data) {
                        if (data.successFlg) {
                            if (detailModel.id) {
                                parent.closeDetailDialog('新增成功');
                            } else {
                                parent.closeDetailDialog('修改成功');
                            }
                            parent.reloadMasterGrid();
                        } else {
                            parent.closeDetailDialog('修改成功');
                            $.Notice.error(data.errorMsg);
                        }
                        parent.reloadMasterGrid();
                    } else {
                        $.Notice.error(data.errorMsg);
                    },
                    error: function () {
                        $.Notice.error('保存发生异常');
                    },
                    complete: function () {
                        loading.close();
                    }
                },
                error: function () {
                    $.Notice.error('保存发生异常');
                },
                complete: function () {
                    loading.close();
                }
                });
            });
        });
        // 关闭
        $('#btnClose').click(function () {
            parent.closeDetailDialog();
        })
    }
            // 关闭
            $('#btnClose').click(function () {
                parent.closeDetailDialog();
            })
        }
    // 表单验证对象
    function customFormValidator() {
        return new $.jValidation.Validation($form, {
            immediate: true,
            onElementValidateForAjax: function (el) {
                var id = detailModel.id || -1; // 新增时传-1。
                var elId = $(el).attr("id");
                switch(elId) {
                    case 'appId':
                        var appId = $("#appId").val();
                        if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                            var ulr = "${contextRoot}/redis/mq/publisher/isUniqueAppId";
                            return $.Util.validateByAjax(ulr, {id: id, channel: channel, appId: appId});
                        }
                        break;
        // 表单验证对象
        function customFormValidator() {
            return new $.jValidation.Validation($form, {
                immediate: true,
                onElementValidateForAjax: function (el) {
                    var id = detailModel.id || -1; // 新增时传-1。
                    var elId = $(el).attr("id");
                    switch(elId) {
                        case 'appId':
                            var appId = $("#appId").val();
                            if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                                var ulr = "${contextRoot}/redis/mq/publisher/isUniqueAppId";
                                return $.Util.validateByAjax(ulr, {id: id, channel: channel, appId: appId});
                            }
                            break;
                    }
                }
            }
        });
    }
            });
        }
    });
})(jQuery, window)
</script>

+ 12 - 1
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/list.jsp

@ -1,6 +1,13 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../../../head/page_head.jsp" %>
    <%@ include file="listCss.jsp" %>
    <title>用户管理</title>
</head>
<body>
<div class="m-form-inline">
    <div id="conditionArea" class="f-mb10 f-mr10" align="right">
@ -27,3 +34,7 @@
    <div id="grid"></div>
</div>
</body>
<%@ include file="../../../head/page_foot.jsp" %>
<%@ include file="listJs.jsp" %>
</html>

+ 107 - 102
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/publisher/listJs.jsp

@ -3,121 +3,126 @@
<script>
    var dataModel = $.DataModel.init();
    var channel = '${channel}';
    var detailDialog = null;
    var grid = null;
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        initWidget();
        bindEvents();
    }
        var dataModel = $.DataModel.init();
        var channel = '${channel}';
        var detailDialog = null;
        var grid = null;
    function initWidget() {
        $('#searchContent').ligerTextBox({
            width: 200, isSearch: true, search: function () {
                reloadGrid();
            }
        $(function () {
            init();
        });
        grid = $("#grid").ligerGrid($.LigerGridEx.config({
            url: '${contextRoot}/redis/mq/publisher/search',
            urlParms: { channel: channel },
            method:'GET',
            columns: [
                {display: 'ID', name: 'id', hide: true},
                {display: '应用ID', name: 'appId', width: '10%', isAllowHide: false, align: 'left'},
                {display: '授权码', name: 'authorizedCode', width: '25%', isAllowHide: false, align: 'left'},
                {display: '创建日期', name: 'createDate', width: '15%', isAllowHide: false, align: 'left'},
                {display: '备注', name: 'remark', width: '25%', isAllowHide: false, align: 'left'},
                {display: '操作', name: 'operator', minWidth: 120, align: 'center',
                    render: function (row) {
                        var html = '';
                        html += '<sec:authorize url="/redis/mq/publisher/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:mq:publisher:detail", row.id, 'modify') + '"></a></sec:authorize>';
                        html += '<sec:authorize url="/redis/mq/publisher/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:publisher:delete", row.id) + '"></a></sec:authorize>';
                        return html;
                    }
                }
            ],
            allowHideColumn: false,
            usePager: true
        }));
        grid.collapseAll();
        grid.adjustToWidth();
    }
        function init() {
            initWidget();
            bindEvents();
        }
    function bindEvents() {
        // 新增/修改
        $.subscribe('redis:mq:publisher:detail', function (event, id, mode) {
            var title = '新增消息发布者';
            if (mode == 'modify') {
                title = '修改消息发布者';
            }
            detailDialog = $.ligerDialog.open({
                height: 450,
                width: 480,
                title: title,
                url: '${contextRoot}/redis/mq/publisher/detail',
                urlParms: {
                    id: id,
                    channel: channel
        function initWidget() {
            $('#searchContent').ligerTextBox({
                width: 200, isSearch: true, search: function () {
                    reloadGrid();
                }
            });
        });
        // 删除
        $.subscribe('redis:mq:publisher:delete', function (event, id) {
            $.Notice.confirm('删除后该发布者将不能发布消息,确认要删除吗?', function (r) {
                if (r) {
                    var loading = $.ligerDialog.waitting("正在删除数据...");
                    dataModel.updateRemote('${contextRoot}/redis/mq/publisher/delete', {
                        data: {id: parseInt(id)},
                        success: function (data) {
                            if (data.successFlg) {
                                $.Notice.success('删除成功!');
                                reloadGrid();
                            } else {
                                $.Notice.error(data.errorMsg);
                            }
                        },
                        error: function () {
                            $.Notice.error('删除发生异常');
                        },
                        complete: function () {
                            loading.close();
            grid = $("#grid").ligerGrid($.LigerGridEx.config({
                url: '${contextRoot}/redis/mq/publisher/search',
                urlParms: { channel: channel },
                method:'GET',
                columns: [
                    {display: 'ID', name: 'id', hide: true},
                    {display: '应用ID', name: 'appId', width: '10%', isAllowHide: false, align: 'left'},
                    {display: '授权码', name: 'authorizedCode', width: '25%', isAllowHide: false, align: 'left'},
                    {display: '创建日期', name: 'createDate', width: '15%', isAllowHide: false, align: 'left'},
                    {display: '备注', name: 'remark', width: '25%', isAllowHide: false, align: 'left'},
                    {display: '操作', name: 'operator', minWidth: 120, align: 'center',
                        render: function (row) {
                            var html = '';
                            html += '<sec:authorize url="/redis/mq/publisher/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:mq:publisher:detail", row.id, 'modify') + '"></a></sec:authorize>';
                            html += '<sec:authorize url="/redis/mq/publisher/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:publisher:delete", row.id) + '"></a></sec:authorize>';
                            return html;
                        }
                    });
                    }
                ],
                allowHideColumn: false,
                usePager: true
            }));
            grid.collapseAll();
            grid.adjustToWidth();
        }
        function bindEvents() {
            // 新增/修改
            $.subscribe('redis:mq:publisher:detail', function (event, id, mode) {
                var title = '新增消息发布者';
                if (mode == 'modify') {
                    title = '修改消息发布者';
                }
            })
        });
                detailDialog = $.ligerDialog.open({
                    height: 450,
                    width: 480,
                    title: title,
                    url: '${contextRoot}/redis/mq/publisher/detail',
                    urlParms: {
                        id: id,
                        channel: channel
                    }
                });
            });
        // 返回上一页
        $('#btn_back').click(function(){
            $('#contentPage').empty();
            $('#contentPage').load('${contextRoot}/redis/mq/channel/index');
        });
            // 删除
            $.subscribe('redis:mq:publisher:delete', function (event, id) {
                $.Notice.confirm('删除后该发布者将不能发布消息,确认要删除吗?', function (r) {
                    if (r) {
                        var loading = $.ligerDialog.waitting("正在删除数据...");
                        dataModel.updateRemote('${contextRoot}/redis/mq/publisher/delete', {
                            data: {id: parseInt(id)},
                            success: function (data) {
                                if (data.successFlg) {
                                    $.Notice.success('删除成功!');
                                    reloadGrid();
                                } else {
                                    $.Notice.error(data.errorMsg);
                                }
                            },
                            error: function () {
                                $.Notice.error('删除发生异常');
                            },
                            complete: function () {
                                loading.close();
                            }
                        });
                    }
                })
            });
    }
            // 返回上一页
            $('#btn_back').click(function(){
                <%--$('#contentPage').empty();--%>
                <%--$('#contentPage').load('${contextRoot}/redis/mq/channel/index');--%>
                window.location.href = '${contextRoot}/admin/redis/channel';
            });
    function reloadGrid() {
        var params = {
            searchContent: $('#searchContent').val(),
            channel: channel
        };
        $.Util.reloadGrid.call(grid, '${contextRoot}/redis/mq/publisher/search', params);
    }
        }
        function reloadGrid() {
            var params = {
                searchContent: $('#searchContent').val(),
                channel: channel
            };
            $.Util.reloadGrid.call(grid, '${contextRoot}/redis/mq/publisher/search', params);
        }
    /*-- 与明细 Dialog 页面间回调的函数 --*/
    window.reloadMasterGrid = function() {
        reloadGrid();
    };
    window.closeDetailDialog = function (type, msg) {
        detailDialog.close();
        msg && $.Notice.success(msg);
    };
        /*-- 与明细 Dialog 页面间回调的函数 --*/
        window.reloadMasterGrid = function() {
        };
        window.closeDetailDialog = function (type, msg) {
            detailDialog.close();
            reloadGrid();
            msg && $.Notice.success(msg);
        };
    });
})(jQuery, window)
</script>

+ 12 - 2
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/detail.jsp

@ -1,5 +1,12 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../../../head/page_head.jsp" %>
    <%@ include file="detailCss.jsp" %>
    <title>用户管理</title>
</head>
<body>
<div id="redisMqSubscriberForm" class="m-form-inline f-mt20" data-role-form>
    <input type="hidden" id="id" data-attr-scan="id">
@ -42,4 +49,7 @@
        </div>
    </div>
</div>
</body>
<%@ include file="../../../head/page_foot.jsp" %>
<%@ include file="detailJs.jsp" %>
</html>

+ 88 - 85
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/detailJs.jsp

@ -2,103 +2,106 @@
<script>
    var detailModel = ${detailModel};
    var dataModel = $.DataModel.init();
    var validator;
    var $form = $("#redisMqSubscriberForm");
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        validator = customFormValidator();
        initForm();
        bindEvents();
    }
        var detailModel = ${detailModel};
        var dataModel = $.DataModel.init();
        var validator;
        var $form = $("#redisMqSubscriberForm");
    function initForm() {
        $('#channel').ligerTextBox({width: 240, disabled: true, readonly: true});
        var appIdTb = $('#appId').ligerTextBox({width: 240});
        var subscribedUrlTb = $('#subscribedUrl').ligerTextBox({width: 240});
        $('#remark').ligerTextBox({width: 240, height: 150});
        $(function () {
            init();
        });
        if(detailModel.id) {
            appIdTb.setDisabled(true);
            appIdTb.setReadonly(true);
            subscribedUrlTb.setDisabled(true);
            subscribedUrlTb.setReadonly(true);
        function init() {
            validator = customFormValidator();
            initForm();
            bindEvents();
        }
        $form.attrScan();
        $form.Fields.fillValues(detailModel);
    }
    function bindEvents() {
        // 保存
        $('#btnSave').click(function () {
            if (!validator.validate()) { return; }
        function initForm() {
            $('#channel').ligerTextBox({width: 240, disabled: true, readonly: true});
            var appIdTb = $('#appId').ligerTextBox({width: 240});
            var subscribedUrlTb = $('#subscribedUrl').ligerTextBox({width: 240});
            $('#remark').ligerTextBox({width: 240, height: 150});
            var loading = $.ligerDialog.waitting("正在保存数据...");
            var uri = "save";
            if(detailModel.id!=null&&detailModel.id!=-1){
                uri = "update"
            if(detailModel.id) {
                appIdTb.setDisabled(true);
                appIdTb.setReadonly(true);
                subscribedUrlTb.setDisabled(true);
                subscribedUrlTb.setReadonly(true);
            }
            dataModel.fetchRemote("${contextRoot}/redis/mq/subscriber/"+uri, {
                type: 'post',
                data: {data: JSON.stringify($form.Fields.getValues())},
                success: function (data) {
                    if (data.successFlg) {
                        if (detailModel.id) {
                            parent.closeDetailDialog('新增成功');
            $form.attrScan();
            $form.Fields.fillValues(detailModel);
        }
        function bindEvents() {
            // 保存
            $('#btnSave').click(function () {
                if (!validator.validate()) { return; }
                var loading = $.ligerDialog.waitting("正在保存数据...");
                var uri = "save";
                if(detailModel.id!=null&&detailModel.id!=-1){
                    uri = "update"
                }
                dataModel.fetchRemote("${contextRoot}/redis/mq/subscriber/"+uri, {
                    type: 'post',
                    data: {data: JSON.stringify($form.Fields.getValues())},
                    success: function (data) {
                        if (data.successFlg) {
                            if (detailModel.id) {
                                parent.closeDetailDialog('新增成功');
                            } else {
                                parent.closeDetailDialog('修改成功');
                            }
                            parent.reloadMasterGrid();
                        } else {
                            parent.closeDetailDialog('修改成功');
                            $.Notice.error(data.errorMsg);
                        }
                        parent.reloadMasterGrid();
                    } else {
                        $.Notice.error(data.errorMsg);
                    },
                    error: function () {
                        $.Notice.error('保存发生异常');
                    },
                    complete: function () {
                        loading.close();
                    }
                },
                error: function () {
                    $.Notice.error('保存发生异常');
                },
                complete: function () {
                    loading.close();
                }
                });
            });
        });
        // 关闭
        $('#btnClose').click(function () {
            parent.closeDetailDialog();
        })
    }
            // 关闭
            $('#btnClose').click(function () {
                parent.closeDetailDialog();
            })
        }
    // 表单验证对象
    function customFormValidator() {
        return new $.jValidation.Validation($form, {
            immediate: true,
            onElementValidateForAjax: function (el) {
                var id = detailModel.id || -1; // 新增时传-1。
                var elId = $(el).attr("id");
                switch(elId) {
                    case 'appId':
                        var appId = $("#appId").val();
                        if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                            var ulr = "${contextRoot}/redis/mq/subscriber/isUniqueAppId";
                            return $.Util.validateByAjax(ulr, {id: id, channel: channel, appId: appId});
                        }
                        break;
                    case 'subscribedUrl':
                        var subscriberUrl = $("#subscribedUrl").val();
                        if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                            var ulr = "${contextRoot}/redis/mq/subscriber/isUniqueSubscribedUrl";
                            return $.Util.validateByAjax(ulr, {id: id, channel: channel, subscriberUrl: subscriberUrl});
                        }
                        break;
        // 表单验证对象
        function customFormValidator() {
            return new $.jValidation.Validation($form, {
                immediate: true,
                onElementValidateForAjax: function (el) {
                    var id = detailModel.id || -1; // 新增时传-1。
                    var elId = $(el).attr("id");
                    switch(elId) {
                        case 'appId':
                            var appId = $("#appId").val();
                            if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                                var ulr = "${contextRoot}/redis/mq/subscriber/isUniqueAppId";
                                return $.Util.validateByAjax(ulr, {id: id, channel: detailModel.channel, appId: appId});
                            }
                            break;
                        case 'subscribedUrl':
                            var subscriberUrl = $("#subscribedUrl").val();
                            if(!$.Util.isStrEquals(channel, detailModel.channel)) {
                                var ulr = "${contextRoot}/redis/mq/subscriber/isUniqueSubscribedUrl";
                                return $.Util.validateByAjax(ulr, {id: id, channel: detailModel.channel, subscriberUrl: subscriberUrl});
                            }
                            break;
                    }
                }
            }
        });
    }
            });
        }
    });
})(jQuery, window)
</script>

+ 12 - 1
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/list.jsp

@ -1,6 +1,13 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <%@ include file="../../../head/page_head.jsp" %>
    <%@ include file="listCss.jsp" %>
    <title>用户管理</title>
</head>
<body>
<div class="m-form-inline">
    <div id="conditionArea" class="f-mb10 f-mr10" align="right">
@ -27,3 +34,7 @@
    <div id="grid"></div>
</div>
</body>
<%@ include file="../../../head/page_foot.jsp" %>
<%@ include file="listJs.jsp" %>
</html>

+ 107 - 102
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/redis/mq/subscriber/listJs.jsp

@ -3,121 +3,126 @@
<script>
    var dataModel = $.DataModel.init();
    var channel = '${channel}';
    var detailDialog = null;
    var grid = null;
(function ($, win) {
    $(function () {
        init();
    });
    function init() {
        initWidget();
        bindEvents();
    }
        var dataModel = $.DataModel.init();
        var channel = '${channel}';
        var detailDialog = null;
        var grid = null;
    function initWidget() {
        $('#searchContent').ligerTextBox({
            width: 200, isSearch: true, search: function () {
                reloadGrid();
            }
        $(function () {
            init();
        });
        grid = $("#grid").ligerGrid($.LigerGridEx.config({
            url: '${contextRoot}/redis/mq/subscriber/search',
            urlParms: { channel: channel },
            method:'GET',
            columns: [
                {display: 'ID', name: 'id', hide: true},
//                {display: '应用ID', name: 'appId', width: '10%', isAllowHide: false, align: 'left'},
                {display: '订阅者服务地址', name: 'subscribedUrl', width: '25%', isAllowHide: false, align: 'left'},
                {display: '创建日期', name: 'createDate', width: '15%', isAllowHide: false, align: 'left'},
                {display: '备注', name: 'remark', width: '25%', isAllowHide: false, align: 'left'},
                {display: '操作', name: 'operator', minWidth: 120, align: 'center',
                    render: function (row) {
                        var html = '';
                        html += '<sec:authorize url="/redis/mq/subscriber/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:mq:subscriber:detail", row.id, 'modify') + '"></a></sec:authorize>';
                        html += '<sec:authorize url="/redis/mq/subscriber/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:subscriber:delete", row.id) + '"></a></sec:authorize>';
                        return html;
                    }
                }
            ],
            allowHideColumn: false,
            usePager: true
        }));
        grid.collapseAll();
        grid.adjustToWidth();
    }
        function init() {
            initWidget();
            bindEvents();
        }
    function bindEvents() {
        // 新增/修改
        $.subscribe('redis:mq:subscriber:detail', function (event, id, mode) {
            var title = '新增消息订阅者';
            if (mode == 'modify') {
                title = '修改消息订阅者';
            }
            detailDialog = $.ligerDialog.open({
                height: 450,
                width: 480,
                title: title,
                url: '${contextRoot}/redis/mq/subscriber/detail',
                urlParms: {
                    id: id,
                    channel: channel
        function initWidget() {
            $('#searchContent').ligerTextBox({
                width: 200, isSearch: true, search: function () {
                    reloadGrid();
                }
            });
        });
        // 删除
        $.subscribe('redis:mq:subscriber:delete', function (event, id) {
            $.Notice.confirm('删除后该订阅者服务地址将不会接收到发布的消息,确认要删除吗?', function (r) {
                if (r) {
                    var loading = $.ligerDialog.waitting("正在删除数据...");
                    dataModel.updateRemote('${contextRoot}/redis/mq/subscriber/delete', {
                        data: {id: parseInt(id)},
                        success: function (data) {
                            if (data.successFlg) {
                                $.Notice.success('删除成功!');
                                reloadGrid();
                            } else {
                                $.Notice.error(data.errorMsg);
                            }
                        },
                        error: function () {
                            $.Notice.error('删除发生异常');
                        },
                        complete: function () {
                            loading.close();
            grid = $("#grid").ligerGrid($.LigerGridEx.config({
                url: '${contextRoot}/redis/mq/subscriber/search',
                urlParms: { channel: channel },
                method:'GET',
                columns: [
                    {display: 'ID', name: 'id', hide: true},
        //                {display: '应用ID', name: 'appId', width: '10%', isAllowHide: false, align: 'left'},
                    {display: '订阅者服务地址', name: 'subscribedUrl', width: '25%', isAllowHide: false, align: 'left'},
                    {display: '创建日期', name: 'createDate', width: '15%', isAllowHide: false, align: 'left'},
                    {display: '备注', name: 'remark', width: '25%', isAllowHide: false, align: 'left'},
                    {display: '操作', name: 'operator', minWidth: 120, align: 'center',
                        render: function (row) {
                            var html = '';
                            html += '<sec:authorize url="/redis/mq/subscriber/detail"><a class="grid_edit f-ml10" title="编辑" href="javascript:void(0)" onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}','{2}'])", "redis:mq:subscriber:detail", row.id, 'modify') + '"></a></sec:authorize>';
                            html += '<sec:authorize url="/redis/mq/subscriber/delete"><a class="grid_delete" title="删除" href="javascript:void(0)"  onclick="javascript:' + $.Util.format("$.publish('{0}',['{1}'])", "redis:mq:subscriber:delete", row.id) + '"></a></sec:authorize>';
                            return html;
                        }
                    });
                    }
                ],
                allowHideColumn: false,
                usePager: true
            }));
            grid.collapseAll();
            grid.adjustToWidth();
        }
        function bindEvents() {
            // 新增/修改
            $.subscribe('redis:mq:subscriber:detail', function (event, id, mode) {
                var title = '新增消息订阅者';
                if (mode == 'modify') {
                    title = '修改消息订阅者';
                }
            })
        });
                detailDialog = $.ligerDialog.open({
                    height: 450,
                    width: 480,
                    title: title,
                    url: '${contextRoot}/redis/mq/subscriber/detail',
                    urlParms: {
                        id: id,
                        channel: channel
                    }
                });
            });
        // 返回上一页
        $('#btn_back').click(function(){
            $('#contentPage').empty();
            $('#contentPage').load('${contextRoot}/redis/mq/channel/index');
        });
            // 删除
            $.subscribe('redis:mq:subscriber:delete', function (event, id) {
                $.Notice.confirm('删除后该订阅者服务地址将不会接收到发布的消息,确认要删除吗?', function (r) {
                    if (r) {
                        var loading = $.ligerDialog.waitting("正在删除数据...");
                        dataModel.updateRemote('${contextRoot}/redis/mq/subscriber/delete', {
                            data: {id: parseInt(id)},
                            success: function (data) {
                                if (data.successFlg) {
                                    $.Notice.success('删除成功!');
                                    reloadGrid();
                                } else {
                                    $.Notice.error(data.errorMsg);
                                }
                            },
                            error: function () {
                                $.Notice.error('删除发生异常');
                            },
                            complete: function () {
                                loading.close();
                            }
                        });
                    }
                })
            });
    }
            // 返回上一页
            $('#btn_back').click(function(){
                <%--$('#contentPage').empty();--%>
                <%--$('#contentPage').load('${contextRoot}/redis/mq/channel/index');--%>
                window.location.href = '${contextRoot}/admin/redis/channel';
            });
    function reloadGrid() {
        var params = {
            searchContent: $('#searchContent').val(),
            channel: channel
        };
        $.Util.reloadGrid.call(grid, '${contextRoot}/redis/mq/subscriber/search', params);
    }
        }
        function reloadGrid() {
            var params = {
                searchContent: $('#searchContent').val(),
                channel: channel
            };
            $.Util.reloadGrid.call(grid, '${contextRoot}/redis/mq/subscriber/search', params);
        }
    /*-- 与明细 Dialog 页面间回调的函数 --*/
    window.reloadMasterGrid = function() {
        reloadGrid();
    };
    window.closeDetailDialog = function (type, msg) {
        detailDialog.close();
        msg && $.Notice.success(msg);
    };
        /*-- 与明细 Dialog 页面间回调的函数 --*/
        window.reloadMasterGrid = function() {
        };
        window.closeDetailDialog = function (type, msg) {
            detailDialog.close();
            reloadGrid();
            msg && $.Notice.success(msg);
        };
    });
})(jQuery, window)
</script>

+ 0 - 42
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_list.jsp

@ -1,42 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<!DOCTYPE html>
<html lang="en">
<head>
	<%@ include file="../head/page_head.jsp" %>
	<title>用户管理</title>
</head>
<body>
<div id="div_wrapper">
	<!-- 检索条件 -->
	<div class="m-retrieve-area f-h50 f-dn f-pr m-form-inline" data-role-form style='display: block;'>
		<div class="m-form-group f-mt10">
			<div class="m-form-control f-ml15">
				<input type="text" id="inp_name" placeholder="请输入用户姓名" class="f-ml10" data-attr-scan="name"/>
			</div>
			<div class="m-form-control f-ml15">
				<input type="text" id="inp_mobile" placeholder="请输入手机号" class="f-ml10" data-attr-scan="mobile"/>
			</div>
			<sec:authorize url="/admin/user/userList">
			<div id="btn_search" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam  f-ml10" >
				<span>查询</span>
			</div>
			</sec:authorize>
			<sec:authorize url="/admin/user/create">
			<div class="m-form-control m-form-control-fr">
				<div id="btn_add" class="l-button u-btn u-btn-primary u-btn-small f-ib f-vam" style="margin-right: 20px;">
					<span>新增</span>
				</div>
			</div>
			</sec:authorize>
		</div>
	</div>
	<!-- 列表 -->
	<div id="div_user_list">
	</div>
</div>
</body>
<%@ include file="../head/page_foot.jsp" %>
<%@ include file="user_list_js.jsp" %>
</html>

+ 0 - 202
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_list_js.jsp

@ -1,202 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<script>
	(function ($, win) {
		$(function () {
			/* ************************** 变量定义 ******************************** */
			// 通用工具类库
			var Util = $.Util;
			var retrieve = null;
			var master = null;
			var isFirstPage = false;
			/* *************************** 函数定义 ******************************* */
			function pageInit() {
				retrieve.init();
				master.init();
			}
			function reloadGrid(params) {
				if (isFirstPage) {
					this.grid.options.newPage = 1;
				}
				this.grid.setOptions({parms: params});
				this.grid.loadData(true);
			}
			/* *************************** 模块初始化 ***************************** */
			retrieve = {
				$element: $('.m-retrieve-area'),
				$searchBtn: $('#btn_search'),
				$addBtn: $('#btn_add'),
				$name: $("#inp_name"),//人员姓名
				$code: $("#inp_code"),//人员姓名
				$mobile: $("#inp_mobile"),
				init: function () {
					this.$element.show();
					this.$element.attrScan();
					window.form = this.$element;
					this.$name.ligerTextBox({width: 200}); //姓名
					this.$code.ligerTextBox({width: 200}); //姓名
					this.$mobile.ligerTextBox({width: 200})//手机号
					this.bindEvents();
				},
				bindEvents: function () {
					var self = this;
					self.$searchBtn.click(function () {
						master.grid.options.newPage = 1;
						master.reloadGrid();
					});
					self.$addBtn.click(function () {
						$.publish("info:create", [''])
					});
				}
			};
			master = {
				infoDialog: null,
				grid: null,
				init: function () {
					var data;
					this.grid = $("#div_user_list").ligerGrid($.LigerGridEx.config({
						url: ctx + '/admin/user/userList',
						parms: {},
						ajaxHeader: ajaxHeaderName,
						ajaxHeaderValue: ajaxHeaderValue,
						columns: [
							{display: 'ID', name: 'id', hide: true},
							{display: '用户编码', name: 'code', width: '10%', align: "center"},
							{display: '用户姓名', name: 'name', width: '10%', align: "center"},
							{display: '手机号码', name: 'mobile', width: '10%', align: "center"},
							{
								display: '用户类型', name: 'type', width: '10%', align: "center",
								render: function (row) {
									if (Util.isStrEquals(row.type, "1")) {
										return "管理员";
									} else if (Util.isStrEquals(row.type, "2")) {
										return "医生";
									}else if (Util.isStrEquals(row.type, "3")) {
                                        return "客服管理员";
                                    }else if (Util.isStrEquals(row.type, "4")) {
                                        return "普通客服";
                                    }
									return "其他";
								}
							},
							{display: '创建时间', name: 'czrq', width: '15%', align: "center"},
							{display: '用户角色', name: 'roleName', width: '10%', align: "center"},
							{display: '所属机构', name: '', width: '20%', align: "left"},
							{
								display: '操作', name: 'operator', width: '15%', align: "center", isSort: false,
								render: function (row) {
									var html = '';
									html += '<a  href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "info:view", row.id) + '">查看</a>';
									<sec:authorize url="/admin/user/update">
									if (!Util.isStrEquals(row.code, "admin")) {
										html += '<a  style="margin-left:10px;"href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}'])", "info:edit", row.id) + '">编辑</a>';
									}
									</sec:authorize>
									<sec:authorize url="/admin/user/delete">
									if (!Util.isStrEquals(row.code, "admin")) {
										html += '<a  style="margin-left:10px;" title="删除" href="javascript:void(0)" onclick="javascript:' + Util.format("$.publish('{0}',['{1}','{2}'])", "info:del", row.id) + '">删除</a>';
									}
									</sec:authorize>
									return html;
								}
							}
						],
					}));
					// 自适应宽度
					this.grid.adjustToWidth();
					this.bindEvents();
				},
				reloadGrid: function (msg) {
					if (msg) {
						//如果是新增,直接刷新页面
						master.grid.loadData();
					} else {
						//如果是查询
						retrieve.$element.attrScan();
						var values = retrieve.$element.Fields.getValues();
						reloadGrid.call(this, values);
					}
				},
				delRecord: function (id, code) {
					var self = this;
					$.ajax({
						url: ctx + "/admin/user/delete",
						data: {"id": id},
						method: "post",
						dataType: "json",
						success: function (result) {
							if (result.status == '200') {
								window.reloadMasterGrid(result.msg);
							} else {
								$.Notice.error(result.msg);
							}
						},
						error: function (data) {
							$.Notice.error("系统异常,请联系管理员!");
						}
					})
				},
				bindEvents: function () {
					var self = this;
					$.subscribe('info:view', function (event, id) {
						var title = '查看用户信息';
						self.infoDialog = $.ligerDialog.open({
							height: 460,
							width: 490,
							urlParms: {"id": id, "mode": "view"},
							title: title,
							url: ctx + '/admin/user/infoInit'
						})
					});
					$.subscribe('info:edit', function (event, id) {
						var title = '编辑用户信息';
						self.infoDialog = $.ligerDialog.open({
							height: 460,
							width: 490,
							urlParms: {"id": id, "mode": "edit"},
							title: title,
							url: ctx + '/admin/user/infoInit'
						})
					});
					$.subscribe('info:create', function (event, id) {
						var title = '新增用户';
						self.infoDialog = $.ligerDialog.open({
							height: 460,
							width: 490,
							urlParms: {"id": id, "mode": "new"},
							title: title,
							url: ctx + '/admin/user/infoInit'
						})
					});
					$.subscribe('info:del', function (event, id, code) {
						$.ligerDialog.confirm('确认删除该行信息?<br>如果是请点击确认按钮,否则请点击取消。', function (yes) {
							if (yes) {
								self.delRecord(id, code);
							}
						});
					})
				}
			};
			/* ************************* Dialog页面回调接口 ************************** */
			win.reloadMasterGrid = function (msg) {
				if (isNoEmpty(msg)) {
					$.Notice.success(msg);
				}
				master.reloadGrid(msg);
			};
			win.closeUserInfoDialog = function () {
				master.infoDialog.close();
			};
			/* *************************** 页面初始化 **************************** */
			pageInit();
		});
	})(jQuery, window);
</script>

+ 0 - 88
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_modify.jsp

@ -1,88 +0,0 @@
<%@ page contentType="text/html; charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<html>
<head>
	<%@ include file="../head/page_head.jsp"%>
	<title>患者详情</title>
	<style type="text/css">
		.m-form-group label.label_title{width: 100px}
	</style>
</head>
<body>
<div id="div_patient_info_form" data-role-form class="m-form-inline f-mt20 f-ml30" data-role-form>
	<input type="hidden" id="inp_id" value='${id}' data-attr-scan="id"/>
	<input type="hidden" id="inp_mode" value='${mode}'/>
	<!-- <div class="m-form-group">	 -->
	<%--<div  class="l-text-wrapper m-form-control " style="height:150px;width:120px;background:#EDF6FA;float:right;position: absolute;right: 90px;top: 30px;">--%>
		<%--<input type="hidden" id="photo" data-attr-scan="photo"/>--%>
	<%--</div>--%>
	<!-- </div> -->
	<div class="m-form-group" style="padding:10 0 10 0">
		<label class="label_title" style="width:120px">编码</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_code" class="required useTitle ajax f-w240 validate-special-char"  required-title="编码不能为空"  data-attr-scan="code"/>
		</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">姓名</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_name" class="required useTitle f-w240 validate-special-char"  required-title="姓名不能为空"  data-attr-scan="name"/>
		</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">手机号码</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_mobile" class="required useTitle ajax validate-mobile-phone f-w240 validate-special-char" required-title="手机号码不能为空"  required-title="请输入手机号码"  data-attr-scan="mobile"/>
		</div>
	</div>
	<div class="m-form-group">
		<label class="label_title" style="width:120px">用户类型</label>
		<div class="l-text-wrapper m-form-control essential">
			<input type="text"  id="inp_type" class="required useTitle f-w240 validate-special-char" required-title="用户类型不能为空"  data-attr-scan="type"/>
		</div>
	</div>
	<div id="customer" style="display: none">
		<div class="m-form-group">
			<label class="label_title" style="width:120px">工号</label>
			<div class="l-text-wrapper m-form-control essential">
				<input type="text"  id="inp_jobNo" class="required useTitle f-w240 validate-special-char" required-title="工号不能为空"  data-attr-scan="jobNo"/>
			</div>
		</div>
		<div class="m-form-group">
			<label class="label_title" style="width:120px">座席</label>
			<div class="l-text-wrapper m-form-control essential">
				<input type="text"  id="inp_seat" class="required useTitle f-w240 validate-special-char" required-title="座席不能为空"  data-attr-scan="seat"/>
			</div>
		</div>
		<div class="m-form-group">
			<label class="label_title" style="width:120px">号码</label>
			<div class="l-text-wrapper m-form-control essential">
				<input type="text"  id="inp_phone" class="required useTitle f-w240 validate-special-char" required-title="号码不能为空"  data-attr-scan="phone"/>
			</div>
		</div>
	</div>
	<%--<div class="m-form-group">--%>
		<%--<label class="label_title" style="width:120px">所属角色组</label>--%>
		<%--<div class="l-text-wrapper m-form-control">--%>
			<%--<input type="text"  id="inp_roles" class="f-w240 validate-special-char" required-title=""  required-title="请输入手机号码"  data-attr-scan="roles"/>--%>
		<%--</div>--%>
	<%--</div>--%>
	<%--<div class="m-form-group">--%>
		<%--<label class="label_title" style="width:120px">所属机构</label>--%>
		<%--<div class="l-text-wrapper m-form-control">--%>
			<%--<input type="text"  id="inp_organizationId" class="f-w240 validate-special-char" required-title=""  required-title="请选择所属机构"  data-attr-scan="organizationId"/>--%>
		<%--</div>--%>
	<%--</div>--%>
	<div class="m-form-group f-pa" id="btn_save_close"  style="right: 10px;bottom: 0;display: none">
		<div class="m-form-control">
			<input type="button" value="保存" id="btn_save" class="l-button u-btn u-btn-primary u-btn-large f-ib f-vam" />
			<div id="btn_cancel" class="l-button u-btn u-btn-cancel u-btn-large f-ib f-vam" >
				<span>关闭</span>
			</div>
		</div>
	</div>
</div>
</body>
<%@ include file="../head/page_foot.jsp"%>
<%@ include file="user_modify_js.jsp" %>
<%--<script src="${ctx}/static/js/user/user_modify.js"></script>--%>
</html>

+ 0 - 228
patient-co-manage/redis-cache/src/main/webapp/WEB-INF/views/user/user_modify_js.jsp

@ -1,228 +0,0 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<script>
	(function ($, win) {
		$(function () {
			var Util = $.Util;
			var type = $('#inp_mode').val();
			var id = $('#inp_id').val();
			var info = "";
			var oldCode = "";
			var oldMobile = "";
			var jValidation = $.jValidation;
			function pageInit() {
				info.init();
				info.initForm();
			}
			info = {
				//变量
				$form: $("#div_patient_info_form"),
				$code: $('#inp_code'),
				$name: $('#inp_name'),
				$mobile: $('#inp_mobile'),
				$type: $("#inp_type"),
                $jobNo:$("#inp_jobNo"),
                $seat:$("#inp_seat"),
                $phone:$("#inp_phone"),
				//$roles:$("#inp_roles"),
				$organization: $("#inp_organizationId"),
				init: function () {
					this.$form.attrScan();
					this.$code.ligerTextBox({width: 240});
					this.$name.ligerTextBox({width: 240});
					this.$mobile.ligerTextBox({width: 240});
					this.typeBox = this.$type.ligerComboBox({
						width: 240,
						data: [
							{text: '管理员', typeId: '1'},
							{text: '医生', typeId: '2'},
                            {text: '客服管理员', typeId: '3'},
                            {text: '普通客服', typeId: '4'},
							{text: '其他', typeId: '0'}
						],
						initIsTriggerEvent: false,
						valueField: 'typeId',
					});
                    this.$jobNo.ligerTextBox({width: 240});
                    this.$seat.ligerTextBox({width: 240});
                    this.$phone.ligerTextBox({width: 240});
				},
				initForm: function () {
					_this = this;
                    this.bindEvents();
					//修改、查看
					if (isNoEmpty(id) && id != 0) {
						$.ajax({
							url: ctx + "/admin/user/user",
							method: "post",
							dataType: "json",
							async: false,
							data: {id: id},
							success: function (result) {
								if (result.status == '200') {
									//通过id查信息
									var data = result.data;
									if (!data) {
										return
									}
									oldCode = data.code;
									oldMobile = data.mobile;
									_this.$form.Fields.fillValues({
										code: data.code,
										name: data.name,
										mobile: data.mobile,
                                        jobNo:data.jobNo,
                                        seat:data.seat,
                                        phone:data.phone
									});
									_this.typeBox.selectValue(data.type);
								} else {
									$.Notice.error(result.msg);
								}
							},
							error: function (data) {
								$.Notice.error("系统异常,请联系管理员!");
							}
						});
					}
					if (type == "view") {
						_this.$form.addClass("m-form-readonly"); //表单只读
						$(".essential").addClass("XXXtest");
						$(".essential").removeClass("essential");
						$("#btn_save_close").css("display", "none");
					} else {
						this.$form.removeClass("m-form-readonly");
						$(".XXXtest").addClass("essential");
						$("#btn_save_close").css("display", "block");
					}
					this.$form.show();
				},
				//绑定事件
				bindEvents: function () {
					var validator = new jValidation.Validation(this.$form, {
						immediate: true, onSubmit: false,
						onElementValidateForAjax: function (elm) {
							if (Util.isStrEquals($(elm).attr("id"), 'inp_mobile')) {
								var result = new jValidation.ajax.Result();
								var newMobile = $('#inp_mobile').val();
								if (newMobile != null && oldMobile != '' && oldMobile == newMobile) {
									return true;
								}
								if (newMobile != oldMobile) {
									$.ajax({
										url: ctx + "/admin/user/isMobileExist",
										async: false,
										method: "post",
										dataType: "json",
										data: {"mobile": newMobile},
										success: function (data) {
											if (data == true) {
												result.setResult(false);
												result.setErrorMsg("手机号已注册过");
											} else {
												result.setResult(true);
											}
										}
									});
								}
								return result;
							}
							;
							if (Util.isStrEquals($(elm).attr("id"), 'inp_code')) {
								var result = new jValidation.ajax.Result();
								var newCode = $('#inp_code').val();
								if (newCode != null && oldCode != '' && oldCode == newCode) {
									return true;
								}
								if (newCode != oldCode) {
									$.ajax({
										url: ctx + "/admin/user/isCodeExist",
										async: false,
										method: "post",
										dataType: "json",
										data: {"code": newCode},
										success: function (data) {
											if (data == true) {
												result.setResult(false);
												result.setErrorMsg("用户编码已存在");
											} else {
												result.setResult(true);
											}
										}
									});
								}
								return result;
							}
						}
					});
					var self = this;
					$("#btn_save").click(function () {
                        var values = self.$form.Fields.getValues();
                        if (!validator.validate()) {
                            return;
                        }
                        values.type = self.typeBox.getValue();
                        update(values);
                    });
                    $("#inp_type").change(function () {
                        var val = self.typeBox.getValue();
                        if(val==3||val==4){
                            $("#customer").show();
                        }else{
                            $("#customer").hide();
                        }
                        debugger
                    });
					function update(values) {
						var dataModel = $.DataModel.init();
						var url = "update";
						if (values.id == 0) {
							url = "create";
						}
						$.ajax({
							url: ctx + "/admin/user/" + url,
							async: false,
							method: "post",
							dataType: "json",
							data: {jsonData: JSON.stringify(values)},
							success: function (data) {
								if (data.status == 200) {
									parent.window.reloadMasterGrid(data.msg);
									parent.window.closeUserInfoDialog();
								} else {
									$.Notice.error(data.msg);
								}
							}
						});
//						dataModel.updateRemote(ctx+"/admin/user/"+url, {
//							data:{jsonData:JSON.stringify(values)},
//							success: function(data) {
//								if (data.status==200) {
//									parent.window.reloadMasterGrid(data.msg);
//									parent.window.closeUserInfoDialog();
//								} else {
//									$.Notice.error(data.msg);
//								}
//							}
//						});
					}
					$("#btn_cancel").click(function () {
						parent.window.closeUserInfoDialog();
					});
				}
			}
			pageInit();
		});
	})(jQuery, window)
</script>