会议新增会议报名功能,消息推送增加消息类型
diff --git a/build.gradle b/build.gradle
index b57d012..fd8efb1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -93,7 +93,7 @@
annotationProcessor 'org.projectlombok:lombok:1.18.8'
compileOnly 'org.projectlombok:lombok:1.18.8'
- compile 'com.supwisdom:payapi-sdk:1.0.17'
+ compile 'com.supwisdom:payapi-sdk:1.0.18'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.rest-assured:rest-assured:3.3.0'
diff --git a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
index e5ed541..e5be303 100644
--- a/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
+++ b/src/main/java/com/supwisdom/dlpay/app/controller/AppController.java
@@ -1,11 +1,22 @@
package com.supwisdom.dlpay.app.controller;
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.app.bean.CustomerInfo;
import com.supwisdom.dlpay.app.domain.VisitorConfig;
import com.supwisdom.dlpay.app.domain.WechatResp;
import com.supwisdom.dlpay.app.service.AppService;
+import com.supwisdom.dlpay.conference.bean.ConferenceShowBean;
+import com.supwisdom.dlpay.conference.dao.ConferenceReviewDao;
+import com.supwisdom.dlpay.conference.domain.TConferenceReview;
+import com.supwisdom.dlpay.conference.service.ConferenceService;
+import com.supwisdom.dlpay.customer.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.doorlist.bean.TCustomerImportBean;
import com.supwisdom.dlpay.doorlist.service.DoorlistMgrService;
+import com.supwisdom.dlpay.framework.domain.TOperator;
import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.framework.util.PageResult;
import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.framework.util.WebConstant;
import com.supwisdom.dlpay.mainservice.domain.TCustomer;
import com.supwisdom.dlpay.mainservice.service.WebInterfaceService;
import com.supwisdom.dlpay.ncmgr.domain.TNcAllottime;
@@ -14,6 +25,7 @@
import com.supwisdom.dlpay.ncmgr.domain.TNcDevice;
import com.supwisdom.dlpay.ncmgr.service.NcService;
import com.supwisdom.dlpay.util.RedisUtil;
+import com.supwisdom.dlpay.util.WebCheckException;
import com.supwisdom.dlpay.visitormanage.domain.EVisitorCheckDtl;
import com.supwisdom.dlpay.visitormanage.domain.VisitorCheckBean;
import com.supwisdom.dlpay.visitormanage.service.VisitormanageService;
@@ -22,6 +34,8 @@
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.core.annotation.AuthenticationPrincipal;
+import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@@ -39,6 +53,9 @@
@Autowired
private AppService appService;
+
+ @Autowired
+ private ConferenceService conferenceService;
@Autowired
private NcService ncService;
@Autowired
@@ -421,11 +438,83 @@
@RequestMapping("/conference/attendconference")
public String doAttendConference( @RequestParam(value = "userId", required = true, defaultValue = "") String userId,
Model model) {
- model.addAttribute("flag",false);
- return "apph5/conference/confresult";
+ TConferenceReview review=conferenceService.getReviewerByuserid(userId);
+ if(null==review){
+ return null;
+ }
+ TCustomer cust=webInterfaceService.findCustomerById(userId);
+ if(null==cust){
+ return null;
+ }
+
+ model.addAttribute("deptcode",cust.getDeptcode());
+
+ return "apph5/conference/confreviewlist";
+ }
+
+ @GetMapping("/conference/conflist")
+ @ResponseBody
+ public PageResult<ConferenceShowBean> searchConflist(
+ @RequestParam(value = "confname", required = false) String confname,
+ @RequestParam(value = "confstatus", required = false) String confstatus,
+ @RequestParam(value = "deptcode", required = false) String deptcode ) {
+ try {
+ return conferenceService.getConferenceInfos(confname, "", deptcode, "",confstatus, 1, 100);
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
+ }
+
+ @GetMapping("/conference/loadimport")
+ public String loadimport(@RequestParam("confid") Integer confid,
+ @RequestParam(value = "deptcode", required = false) String deptcode,
+ Model model) {
+ model.addAttribute("detailConfid", confid);
+ return "apph5/conference/confpeoplebind";
+ }
+
+ @GetMapping("/conference/listpeopleforimport")
+ @ResponseBody
+ public PageResult<TCustomerImportBean> listConfpeople(
+ @RequestParam(value = "custname", required = false) String custname,
+ @RequestParam(value = "deptcode", required = false) String deptcode,
+ @AuthenticationPrincipal TOperator operUser) {
+ try {
+ CustomerSearchBean searchBean = new CustomerSearchBean();
+ searchBean.setCustname(custname);
+ searchBean.setDeptcode(deptcode);
+ PageResult<TCustomerImportBean> bean = webInterfaceService.getCustomerInfo(searchBean);
+ return bean;
+ } catch (Exception e) {
+ e.printStackTrace();
+ return new PageResult<>(99, "系统查询错误");
+ }
}
+ @PostMapping("/conference/addconfpeople")
+ @ResponseBody
+ public JsonResult addConfpeople(@RequestParam("confid") Integer confid,
+ @RequestParam("cardnos[]") List<String> cardnos) {
+ try {
+ if (null == confid || StringUtil.isEmpty(cardnos)) {
+ return JsonResult.error("参数传递错误");
+ }
+
+ if (conferenceService.saveConferencePeople(confid, cardnos)) {
+ return JsonResult.ok("人员添加成功");
+ } else {
+ return JsonResult.error("添加失败");
+ }
+ } catch (WebCheckException e) {
+ return JsonResult.ok(599, e.getMessage());
+ } catch (Exception e) {
+ e.printStackTrace();
+ return JsonResult.error("系统处理异常").put("exception", e);
+ }
+
+ }
/**
* App远程开门
diff --git a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
index 507edf3..bb40eb3 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/controller/ConferenceController.java
@@ -93,7 +93,7 @@
if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
TOperator oper = (TOperator) operUser;
String deptcode = oper.getDeptcode();
- return conferenceService.getConferenceInfos(confname, conftype, deptcode, "", pageNo, pageSize);
+ return conferenceService.getConferenceInfos(confname, conftype, deptcode, "", "",pageNo, pageSize);
} catch (Exception e) {
e.printStackTrace();
return new PageResult<>(99, "系统查询错误");
@@ -209,12 +209,12 @@
CommonSendMessageParam param=new CommonSendMessageParam();
param.setContent("您有新的会议需要分配,请确认");
param.setTitle("会议分配通知");
+ param.setMsgtype("conference");
for(TConferenceReview rev:review){
param.setUserid(rev.getCustid());
ApiResponse resp=commonProxy.sendMsg(param);
resp.getRetcode();
resp.getRetmsg();
-
}
return JsonResult.ok("新增成功");
} else {
diff --git a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
index 269dda1..9ed6589 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/ConferenceService.java
@@ -21,7 +21,7 @@
public interface ConferenceService {
@Transactional(rollbackFor = Exception.class, readOnly = true)
- PageResult<ConferenceShowBean> getConferenceInfos(String confname, String conftype,String deptocde,String confdate, int pageNo, int pageSize);
+ PageResult<ConferenceShowBean> getConferenceInfos(String confname, String conftype,String deptocde,String confdate,String confstatus, int pageNo, int pageSize);
@Transactional(rollbackFor = Exception.class, readOnly = true)
PageResult<ConfReportShowBean> getConfReportPage(String confname, String conftype, String deptcode, String startdate,String enddate,String status, int pageNo, int pageSize);
@@ -125,6 +125,9 @@
@Transactional(rollbackFor = Exception.class, readOnly = true)
List<TConferenceReview> getAllReviewer(String deptcode);
+ @Transactional(rollbackFor = Exception.class, readOnly = true)
+ TConferenceReview getReviewerByuserid(String userid);
+
@Transactional(rollbackFor = Exception.class)
boolean addConfReview(String deptcode, String opercode, List<String> custidlist);
}
diff --git a/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java b/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
index cf69c68..47f0bd5 100644
--- a/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/conference/service/impl/ConferenceServiceImpl.java
@@ -76,8 +76,8 @@
private EntityManager entityManager;
@Override
- public PageResult<ConferenceShowBean> getConferenceInfos(String confname, String conftype, String deptcode, String confdate, int pageNo, int pageSize) {
- Page<TConference> page = getConferencePage(confname, conftype, deptcode, "", "", "", pageNo, pageSize);
+ public PageResult<ConferenceShowBean> getConferenceInfos(String confname, String conftype, String deptcode, String confdate,String confstatus, int pageNo, int pageSize) {
+ Page<TConference> page = getConferencePage(confname, conftype, deptcode, "", "", confstatus, pageNo, pageSize);
List<ConferenceShowBean> result = new ArrayList<>(0);
if (null != page && page.getTotalElements() > 0) {
for (TConference conf : page.getContent()) {
@@ -171,7 +171,6 @@
}
if (!StringUtil.isEmpty(childdplist)) {
predicates.add(root.get("deptcode").in(childdplist));
-
}
if (!StringUtil.isEmpty(startdate)) {
predicates.add(criteriaBuilder.greaterThanOrEqualTo(root.get("confdate").as(String.class), startdate));
@@ -411,7 +410,6 @@
public boolean saveConferencePeople(Integer confid, List<String> cardnos) throws Exception {
List<String> successCardnos = new ArrayList<>(0);
List<String> errmsgList = new ArrayList<>(0);
-
for (String card : cardnos) {
String msg = "";
TCustomerInfo customer = new TCustomerInfo();
@@ -894,6 +892,11 @@
}
@Override
+ public TConferenceReview getReviewerByuserid(String userid) {
+ return conferenceReviewDao.getOne(userid);
+ }
+
+ @Override
public boolean addConfReview(String deptcode, String opercode, List<String> custidlist) {
delConfReview(deptcode);
for (String custid:custidlist){
diff --git a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
index 4979e95..4815d9d 100644
--- a/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/mainservice/dao/impl/CustomerDaoImpl.java
@@ -180,7 +180,7 @@
sql+=" and a.deptcode in ('"+ StringUtils.join(childdplist.toArray(),"','")+"') ";
}
- sql +=" order by b.cardno desc ";
+ sql +=" order by c.deptno desc ";
Query query = entityManager.createNativeQuery(sql);
if (!StringUtil.isEmpty(perName)){
diff --git a/src/main/resources/templates/apph5/conference/confpeoplebind.html b/src/main/resources/templates/apph5/conference/confpeoplebind.html
new file mode 100644
index 0000000..1d427f3
--- /dev/null
+++ b/src/main/resources/templates/apph5/conference/confpeoplebind.html
@@ -0,0 +1,152 @@
+<div id="confpeoplebind-form" lay-filter="confpeoplebind-filter" class="layui-form model-form"
+ style="padding: 30px 25px 10px 25px;">
+ <input type="hidden" id="confpeoplebind-confid" th:value="${detailConfid}"/>
+
+ <div class="layui-form-item">
+ <div class="layui-card-body">
+ <table class="layui-table" id="confpeoplebind-form-table"
+ lay-filter="confpeoplebind-form-table-filter"></table>
+ </div>
+ </div>
+ </div>
+ <div class="layui-form-item model-form-footer">
+ <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+ <button style="margin-right: 30px" class="layui-btn" lay-filter="confpeoplebind-form-submit" lay-submit id="submitbtn">保存</button>
+ </div>
+</div>
+
+<style type="text/css" id="confpeoplebind-form-css">
+ .layui-form-item .layui-form-checkbox[lay-skin=primary] {
+ margin-top: 0;
+ }
+ .layui-layer-page {
+ left: 10% !important;
+ top:20px ! important;
+ width: 80% ! important;
+ }
+</style>
+
+<script>
+ layui.use(['layer', 'table', 'admin', 'form'], function () {
+ var layer = layui.layer;
+ var admin = layui.admin;
+ var form = layui.form;
+ var table = layui.table;
+ var deptcode=$("#conferenceReview-deptcode").val();
+ console.log(deptcode)
+
+ var renderDetailTable = function (obj) {
+ table.render({
+ where: obj,
+ elem: '#confpeoplebind-form-table',
+ url: '[[@{/app/conference/listpeopleforimport}]]',
+ page: false,
+ height:300,
+ cols: [
+ [
+ {type: 'checkbox', style: "#confpeoplebind-form-css", fixed: 'left'},
+ {field: 'custname', title: '姓名', align: 'center'},
+ {field: 'deptname', title: '部门', align: 'center'}
+ ]
+ ]
+ });
+ }
+
+ renderDetailTable({ deptcode:deptcode});
+
+ // 搜索按钮点击事件
+ $('#btn-search-confpeoplebind-form').click(function () {
+ var deptcode = $("#search-confpeoplebind-form-deptcode").val();
+ var custname = $("#search-confpeoplebind-form-searchkey").val();
+ table.reload('confpeoplebind-form-table', {
+ where: {
+ deptcode: deptcode,
+ custname: custname
+ }
+ });
+ });
+
+ $("#btn-reset-confpeoplebind-form").click(function () {
+ $("#search-confpeoplebind-form-deptcode").val("");
+ $("#search-confpeoplebind-form-searchkey").val("");
+ treeSelect.revokeNode('search-confpeoplebind-form-deptcode-filter');
+ });
+
+ $("#loadimport").click(function () {
+ var confid = $("#confpeoplebind-confid").val();
+ admin.popupCenter({
+ title: "分配人员",
+ // area: '900px',
+ path: '[[@{/conference/loadimportbyExcel}]]?confid=' + confid,
+ finish: function () {
+ table.reload('conferenceTable');
+ }
+ });
+ })
+
+ form.on('submit(confpeoplebind-form-submit)', function (el) {
+ var confid = $("#confpeoplebind-confid").val();
+ var checkStatus = table.checkStatus('confpeoplebind-form-table');
+ var data = checkStatus.data;
+ var cardnos = [];
+ var custnames=[];
+ for (var i = 0; i < data.length; i++) {
+ cardnos.push(data[i].cardno);
+ custnames.push(data[i].custname);
+ }
+ if (cardnos.length < 1) {
+ layer.msg("请选择用户", {icon: 2, time: 1500});
+ return;
+ }
+
+ var token = $("meta[name='_csrf_token']").attr("value");
+
+ layer.confirm('确定要添加【' +custnames + '】吗?', {
+ btn: ['确定', '取消']
+ }, function () {
+ layer.load(2);
+ $.ajax({
+ type: "POST",
+ dataType: "json",
+ url: '[[@{/app/conference/addconfpeople}]]',
+ data: {
+ "confid": confid,
+ "cardnos[]": cardnos,
+ "_csrf": token
+ },
+ success: function (result) {
+ layer.closeAll('loading');
+ if (result.code == 200) {
+ layer.msg(result.msg, {icon: 1});
+ table.reload('confpeoplebind-form-table'); //刷新表格
+ admin.finishPopupCenter();
+ } else if (result.code == 401) {
+ layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+ location.replace('[[@{/login}]]');
+ }, 1000);
+ return;
+ } else if (result.code == 599) {
+ //自定义错误
+ layer.open({
+ type: 0,
+ title: "错误信息",
+ icon: 2,
+ area: ['600px', '400px'],
+ content: result.msg
+ });
+
+ } else {
+ console.log('err:' + result.code);
+ layer.msg(result.msg, {icon: 2});
+ }
+ },
+ error: function (err) {
+ admin.errorBack(err);
+ }
+ });
+ });
+
+
+ });
+ });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/apph5/conference/confreviewlist.html b/src/main/resources/templates/apph5/conference/confreviewlist.html
new file mode 100644
index 0000000..4d2f92b
--- /dev/null
+++ b/src/main/resources/templates/apph5/conference/confreviewlist.html
@@ -0,0 +1,88 @@
+
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
+
+<head>
+ <title>首页</title>
+ <meta name="_csrf_header" th:content="${_csrf.headerName}"/>
+ <meta name="_csrf_token" th:content="${_csrf.parameterName}" th:value="${_csrf.token}"/>
+ <meta charset="utf-8"/>
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+ <link rel="stylesheet" th:href="@{/static/libs/layui/css/layui.css}"/>
+ <link rel="stylesheet" th:href="@{/static/libs/zTree/css/zTreeStyle/zTreeStyle.css}"/>
+ <link rel="stylesheet" th:href="@{/static/custom/module/formSelects/formSelects-v4.css}"/>
+ <link rel="stylesheet" th:href="@{/static/custom/css/admin.css}"/>
+ <link th:if="${session.theme != null}" rel="stylesheet" th:href="@{/static/custom/css/theme-blue.css}"/>
+
+</head>
+
+<script type="text/javascript" th:src="@{/static/libs/jquery/jquery-3.2.1.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/q.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/layui/layui.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/zTree/js/jquery.ztree.all-3.5.min.js}"></script>
+<script type="text/javascript" th:src="@{/static/libs/custom.js}"></script>
+
+
+<div class="layui-card">
+ <input type="hidden" id="conferenceReview-deptcode" th:value="${deptcode}"/>
+ <div class="layui-card-body">
+ <div class="layui-form toolbar">
+ <input id="search-conference-confname" class="layui-input search-input" maxlength="20" type="text"
+ placeholder="输入名称查询"/> 
+ <button id="btn-search-conferenceReview" class="layui-btn icon-btn" data-type="search"><i class="layui-icon"></i>搜索
+ </button>
+ </div>
+ <table class="layui-table" id="conferenceReviewTable" lay-filter="conferenceReviewTable-filter"></table>
+ </div>
+</div>
+
+<script>
+ layui.config({
+ base: '../../static/custom/module/'
+ }).use(['form', 'table', 'layer','admin', 'element'], function () {
+ var table = layui.table;
+ var deptcode=$("#conferenceReview-deptcode").val();
+ var admin = layui.admin;
+ // 渲染表格
+ console.log(deptcode)
+ var renderDetailTable = function (obj) {
+ table.render({
+ where: obj,
+ elem: '#conferenceReviewTable',
+ url: '[[@{/app/conference/conflist}]]',
+ page: false,
+ cols: [
+ [
+ {field: 'confname', title: '会议名称', align: 'center', fixed: 'left'},
+ {field: 'confdate', title: '会议日期', align: 'center'},
+ {field: 'timeperoid', title: '会议时间', align: 'center'}
+ ]
+ ]
+ });
+ }
+
+ renderDetailTable({confstatus:'unstart',deptcode:deptcode});
+
+ // 搜索按钮点击事件
+ $('#btn-search-conferenceReview').click(function () {
+ var confname = $("#search-conference-confname").val();
+ table.reload('conferenceReviewTable',
+ {where: { confstatus:'unstart', confname: confname,deptcode:deptcode}});
+ });
+ //监听行
+ table.on('row(conferenceReviewTable-filter)', function (obj) {
+ var data = obj.data;
+ admin.popupCenter({
+ title: data.confname,
+ area: '200px',
+ path: '[[@{/app/conference/loadimport}]]?confid=' + data.confid+'&confname='+data.confname,
+ finish: function () {
+ table.reload('conferenceTable');
+ }
+ });
+ });
+
+ });
+</script>
+