package com.api.tjbk; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import weaver.conn.RecordSet; import weaver.general.StringUtil; import weaver.general.Util; import weaver.hrm.HrmUserVarify; import weaver.hrm.User; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.HashMap; import java.util.Map; /** * 移动端接口类 * * @author wangj * @version 1.00版本 * @Date 2022/8/22 */ @Path("/tjbk/MsgTopDialog") public class TJBKMsgTopDialog { @GET @Path("/getDialog") @Produces(MediaType.TEXT_PLAIN) public String getVersionInfo(@Context HttpServletRequest request, @Context HttpServletResponse response) { Map apidatas = new HashMap(); try { //获取当前用户 User user = HrmUserVarify.getUser(request, response); RecordSet rs = new RecordSet(); RecordSet recordSet = new RecordSet(); JSONArray conArr = new JSONArray(); JSONObject dataObj = new JSONObject(); String userid = user.getUID() + ""; boolean isdialog = true; LocalDate now = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String nowStr = now.format(formatter); String id = ""; String title = ""; String btn = ""; String url = ""; String backgroundAddress = ""; String sql = "select * from uf_MsgTopDialog where startDate <= ? and endDate >= ? order by id desc"; rs.executeQuery(sql, nowStr, nowStr); while (rs.next()) { String dataid = Util.null2String(rs.getString("id")); String scope = Util.null2String(rs.getString("scope")); String role = Util.null2String(rs.getString("role")); boolean isLatest = getLatestData(dataid, user, recordSet, scope, role); if (isLatest) { id = Util.null2String(rs.getString("id")); title = Util.null2String(rs.getString("title")); btn = Util.null2String(rs.getString("btn")); url = Util.null2String(rs.getString("url")); backgroundAddress = Util.null2String(rs.getString("backgroundAddress")); break; } } if (!"".equals(id)) { sql = "select count(1) as sl from uf_MsgTopDialog_dt2 where mainid = '" + id + "' and hrmid = '" + userid + "'"; rs.execute(sql); while (rs.next()) { if (Util.getIntValue(rs.getString("sl")) > 0) { isdialog = false; } } } else { isdialog = false; } if (isdialog){ dataObj.put("id", id); dataObj.put("tilte", title); dataObj.put("backgroundAddress", backgroundAddress); dataObj.put("btn", btn); dataObj.put("url", url); } apidatas.put("data", dataObj); apidatas.put("api_status", true); } catch (Exception e) { e.printStackTrace(); apidatas.put("api_status", false); apidatas.put("api_errormsg", "getVersionInfo catch exception : " + e.getMessage()); } return JSONObject.toJSONString(apidatas); } @GET @Path("/addDialogUser") @Produces(MediaType.TEXT_PLAIN) public String addDialogUser(@Context HttpServletRequest request, @Context HttpServletResponse response) { Map apidatas = new HashMap(); try { //获取当前用户 User user = HrmUserVarify.getUser(request, response); String userid = user.getUID() + ""; String mainid = Util.null2String(request.getParameter("id")); String sql = "insert into uf_MsgTopDialog_dt2 (mainid,hrmid) values ('" + mainid + "','" + userid + "')"; RecordSet rs = new RecordSet(); boolean status = rs.execute(sql); apidatas.put("status", status); apidatas.put("api_status", true); } catch (Exception e) { e.printStackTrace(); apidatas.put("api_status", false); apidatas.put("api_errormsg", "addDialogUser catch exception : " + e.getMessage()); } return JSONObject.toJSONString(apidatas); } private boolean getLatestData(String id, User user, RecordSet recordSet, String scope, String role) { HrmUserVarify hrmUserVarify = new HrmUserVarify(); if ("0".equals(scope)) { //角色 if (!StringUtil.isEmpty(role)) { String[] roleArr = role.split(","); for (String roleid : roleArr) { boolean b = hrmUserVarify.checkUserRole(roleid, user, user.getUserDepartment() + ""); if(b){ return true; } } } } else if ("1".equals(scope)) { //多人力 String sql = "select count(main.id) cnt from uf_MsgTopDialog main left join uf_MsgTopDialog_dt1 dt on main.id = dt.mainid where main.id = ? and dt.hrmid = ?"; recordSet.executeQuery(sql,id,user.getUID()); if(recordSet.next()){ int cnt = recordSet.getInt("cnt"); if(cnt > 0 ){ return true; } } } return false; } }