From 55225733d733bde31c16c21744a010e1e5472835 Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Mon, 7 Aug 2023 10:17:00 +0800 Subject: [PATCH] 2023-08-07 --- .../ProjectInformationService.java | 10 +- .../report/biz/wechat/WechatRest.java | 56 +++-- .../report/ds/system/systemMapper.java | 2 + .../yxt/supervise/system/sysuser/SysUser.java | 3 + .../sysuser/wx/SysUserWxBindMobileDto.java | 1 + .../system/sysuser/SysUserService.java | 202 ++++++------------ 6 files changed, 112 insertions(+), 162 deletions(-) diff --git a/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/projectinformation/ProjectInformationService.java b/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/projectinformation/ProjectInformationService.java index d3674c51..1023e5e5 100644 --- a/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/projectinformation/ProjectInformationService.java +++ b/yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/projectinformation/ProjectInformationService.java @@ -82,8 +82,10 @@ public class ProjectInformationService extends MybatisBaseServiceuser= crmMapper.suerList(projectSid); List openIds=new ArrayList<>(); for(String u:user){ - openIds.add(systemMapper.getOpenId(u)); + String id=systemMapper.getOpenId(u); + openIds.add(id); } ReportStockDay reportStockDay=stockDayRest.getDayGather(projectSid,orderDate).getData(); // 模板参数 @@ -483,35 +484,36 @@ public class WechatRest { * @throws Exception */ @PostMapping("/sendMessages") - public void sendMessages(String orderDate) throws Exception { + public void sendMessages(@PathVariable("projectSid") String projectSid,@PathVariable("orderDate") String orderDate) throws Exception { + ReportStockDay reportStockDay=stockDayRest.getDayGather(projectSid,orderDate).getData(); + List user= crmMapper.suerList(projectSid); + List openIds=new ArrayList<>(); + for(String u:user){ + String id=systemMapper.getOpenIdByStatus(u); + openIds.add(id); + } CsmCashReportVo csmCashReportVo=csmCashReportMapper.getCsmCashReport(orderDate); - // openId代表一个唯一微信用户,即微信消息的接收人 -// String openId="otnrM57kui-WCUmRtChhb1HguOgw"; - //郭 -// String openId="otnrM544hxIgkMOfaDU8VpJhj_6k"; - //刘 - //String openId ="otnrM5ySvUo7ZZc4qafWzM9eyKBk"; - //聂总 -// otnrM521f8KcCsRfL2Jj4Tk8np1g // 模板参数 Map sendMag = new HashMap(); // 公众号的模板id(也有相应的接口可以查询到) String templateId = "jvfjnNpuT_4rfhiV1aWW31qK31-CnICoIAp5Bgco8hw"; //微信的基础accessToken - String accessToken=getAccessTokenBiz(APP_ID_BIZ,APPSECRETBIZ); - String wxUrl = WX_URL_MESSAGE_BIZ_SEND.replace("ACCESS_TOKEN", accessToken); - List openIds=new ArrayList<>(); - openIds.add("oGdho668Hew45t0xfBJC84TNGVzI"); -// openIds.add("otnrM521f8KcCsRfL2Jj4Tk8np1g"); -// openIds.add("otnrM5ySvUo7ZZc4qafWzM9eyKBk"); + String accessToken=getAccessToken(APP_ID_BIZ,APPSECRETBIZ); + String wxUrl = WX_URL_MESSAGE_SEND.replace("ACCESS_TOKEN", accessToken); JSONObject jsonObject=new JSONObject(); + String pa=""; + List list=new ArrayList<>(); for(String openId:openIds){ - sendMag.put("thing1", new Template("测试")); - sendMag.put("date3", new Template("2023-07-14")); - sendMag.put("thing2", new Template("测试")); + MessageOpenidDto dto=new MessageOpenidDto(); + dto.setOpenId(openId); + list.add(dto); + sendMag.put("time1", new Template(reportStockDay.getReportTime())); + sendMag.put("thing2", new Template("质物库存汇总("+reportStockDay.getProjectName()+")")); + sendMag.put("thing3", new Template("赵丽晓")); Map miniprogram = new HashMap<>(); - miniprogram.put("appid",""); - miniprogram.put("pagepath",""); + miniprogram.put("appid","wx05604ce2a8bede05"); + miniprogram.put("pagepath","pages/index/InventorySummary?orderDate="+reportStockDay.getOrderDate()+"&"+"projectSid="+reportStockDay.getProjectSid()); + pa=miniprogram.get("pagepath"); RestTemplate restTemplate = new RestTemplate(); //拼接base参数 Map sendBody = new HashMap<>(); @@ -531,6 +533,18 @@ public class WechatRest { // 2431260672639467520 String msgId = jsonObject.getString("msgid"); System.out.println("messageCode : " + messageCode + ", msgId: " +msgId); + MessagePushLogDto logDto=new MessagePushLogDto(); + logDto.setContent(sendMag); + logDto.setMessageTime(reportStockDay.getReportTime()); + logDto.setPagepath(pa); + logDto.setMessageOpenidDtos(list); + ThreadUtil.execute(() -> { + try { + messagePushLogService.save(logDto); + } catch (Exception e) { + throw new RuntimeException(e); + } + }); //return forEntity.getBody(); } public String getAccessTokenBiz(String appId,String appsecret) throws Exception { diff --git a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/system/systemMapper.java b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/system/systemMapper.java index 43408480..88619e84 100644 --- a/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/system/systemMapper.java +++ b/yxt_supervise/supervise-report/supervise-report-biz/src/main/java/com/yxt/supervise/report/ds/system/systemMapper.java @@ -16,4 +16,6 @@ public interface systemMapper extends BaseMapper roleNames; + private String unionid; + //d订阅状态 + private String subscriptionStatus; } diff --git a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserWxBindMobileDto.java b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserWxBindMobileDto.java index bb7b0a44..d15d03a0 100644 --- a/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserWxBindMobileDto.java +++ b/yxt_supervise/supervise-system/supervise-system-api/src/main/java/com/yxt/supervise/system/sysuser/wx/SysUserWxBindMobileDto.java @@ -14,4 +14,5 @@ public class SysUserWxBindMobileDto implements Dto { private String code; //微信id private String openid; + private String unionid; } diff --git a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java index 75a4c889..c8093ae5 100644 --- a/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java +++ b/yxt_supervise/supervise-system/supervise-system-biz/src/main/java/com/yxt/supervise/system/sysuser/SysUserService.java @@ -335,61 +335,61 @@ public class SysUserService extends MybatisBaseService { userInfoOneVo.setUserName(user.getUserName()); userInfoOneVo.setIsAdmin(user.getIsAdmin()); //类型为员工的组织机构信息 - SysStaffOrg sysStaffOrg = sysStaffOrgService.selectAllByStaffSid(user.getStaffSid()).getData(); - if (sysStaffOrg == null) { - return null; - } - - userInfoOneVo.setRoleName(""); - String dwjb = ""; - // 系统管理员(没有对应的人员和单位) - //是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员 - if ("0".equals(user.getIsAdmin())) { - userInfoOneVo.setName("系统管理员"); - userInfoOneVo.setMobile(""); - userInfoOneVo.setStaffSid(""); - userInfoOneVo.setOrganizationName("无单位"); - userInfoOneVo.setDepartmentName("无部门"); - } else { - // 获取人员姓名 - SysStaffinfo staffVo = sysStaffinfoService.fetchBySid(user.getStaffSid()); - if (null != staffVo) { - userInfoOneVo.setName(staffVo.getName()); - userInfoOneVo.setMobile(staffVo.getMobile()); - userInfoOneVo.setStaffSid(staffVo.getSid()); -// userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath()); -// userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath()); + if(user.getUserType().equals("3")){ + } else if(user.getUserType().equals("1")){ + SysStaffOrg sysStaffOrg = sysStaffOrgService.selectAllByStaffSid(user.getStaffSid()).getData(); + if (sysStaffOrg == null) { + return null; } - // 尚无单位人员,没有单位和部门信息 - if ("3".equals(user.getIsAdmin())) { + // 系统管理员(没有对应的人员和单位) + //是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员 + if ("0".equals(user.getIsAdmin())) { + userInfoOneVo.setName("系统管理员"); + userInfoOneVo.setMobile(""); + userInfoOneVo.setStaffSid(""); userInfoOneVo.setOrganizationName("无单位"); userInfoOneVo.setDepartmentName("无部门"); } else { - userInfoOneVo.setOrganizationName("无单位"); - userInfoOneVo.setDepartmentName("无部门"); - List orgVoList = sysStaffOrgService.getSysStaffOrgListByStaff(user.getStaffSid()); - SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(user.getStaffSid()); - userInfoOneVo.setPostSid(staffPostDetailsVo.getPostSid()); - userInfoOneVo.setPostName(staffPostDetailsVo.getName()); - if (orgVoList.size() > 0) { - //类型为员工的组织机构信息 - SysStaffOrgVo sysStaffOrgVo = orgVoList.get(0); - userInfoOneVo.setDepartmentName(sysStaffOrgVo.getOrgName()); - userInfoOneVo.setDepartmentSid(sysStaffOrgVo.getOrgSid()); - SysOrganization sysOrganizationOne = sysOrganizationService.fetchBySid(sysStaffOrgVo.getOrgSid()); - if (sysOrganizationOne != null) { - String psid = sysOrganizationOne.getPsid(); - String name = sysOrganizationService.fetchBySid(psid).getName(); - userInfoOneVo.setPNameAndDepartmentNameAndPostName(name + "-" + sysStaffOrgVo.getOrgName()); - } - userInfoOneVo.setOrganizationSid(sysStaffOrgVo.getOrgSid()); - userInfoOneVo.setOrganizationName(sysStaffOrgVo.getOrgName()); - userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath()); - userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath()); - //根据orgSidPath查询分公司sid===== - userInfoOneVo.setDefaultOrgPath(sysStaffOrg.getOrgSidPath()); - userInfoOneVo.setDefaultOrgPathName(sysStaffOrg.getOrgNamePath()); + // 获取人员姓名 + SysStaffinfo staffVo = sysStaffinfoService.fetchBySid(user.getStaffSid()); + if (null != staffVo) { + userInfoOneVo.setName(staffVo.getName()); + userInfoOneVo.setMobile(staffVo.getMobile()); + userInfoOneVo.setStaffSid(staffVo.getSid()); +// userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath()); +// userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath()); + + } + // 尚无单位人员,没有单位和部门信息 + if ("3".equals(user.getIsAdmin())) { + userInfoOneVo.setOrganizationName("无单位"); + userInfoOneVo.setDepartmentName("无部门"); + } else { + userInfoOneVo.setOrganizationName("无单位"); + userInfoOneVo.setDepartmentName("无部门"); + List orgVoList = sysStaffOrgService.getSysStaffOrgListByStaff(user.getStaffSid()); + SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(user.getStaffSid()); + userInfoOneVo.setPostSid(staffPostDetailsVo.getPostSid()); + userInfoOneVo.setPostName(staffPostDetailsVo.getName()); + if (orgVoList.size() > 0) { + //类型为员工的组织机构信息 + SysStaffOrgVo sysStaffOrgVo = orgVoList.get(0); + userInfoOneVo.setDepartmentName(sysStaffOrgVo.getOrgName()); + userInfoOneVo.setDepartmentSid(sysStaffOrgVo.getOrgSid()); + SysOrganization sysOrganizationOne = sysOrganizationService.fetchBySid(sysStaffOrgVo.getOrgSid()); + if (sysOrganizationOne != null) { + String psid = sysOrganizationOne.getPsid(); + String name = sysOrganizationService.fetchBySid(psid).getName(); + userInfoOneVo.setPNameAndDepartmentNameAndPostName(name + "-" + sysStaffOrgVo.getOrgName()); + } + userInfoOneVo.setOrganizationSid(sysStaffOrgVo.getOrgSid()); + userInfoOneVo.setOrganizationName(sysStaffOrgVo.getOrgName()); + userInfoOneVo.setOrgNamePath(sysStaffOrg.getOrgNamePath()); + userInfoOneVo.setOrgSidPath(sysStaffOrg.getOrgSidPath()); + //根据orgSidPath查询分公司sid===== + userInfoOneVo.setDefaultOrgPath(sysStaffOrg.getOrgSidPath()); + userInfoOneVo.setDefaultOrgPathName(sysStaffOrg.getOrgNamePath()); /* String orgSid = sysStaffOrgService.getOrgByOrgSid(sysStaffOrgVo.getOrgSid()); SysOrganization sysOrganization = sysOrganizationService.fetchBySid(orgSid); if (sysOrganization != null) { @@ -398,9 +398,13 @@ public class SysUserService extends MybatisBaseService { } else { userInfoOneVo.setDefaultOrgPathName("暂无组织机构"); }*/ + } } } } + userInfoOneVo.setRoleName(""); + String dwjb = ""; + // 设置用户的角色sids List roleSids = this.getUserRoleSids(user.getSid()); userInfoOneVo.setRoleSids(roleSids); @@ -1161,6 +1165,7 @@ public class SysUserService extends MybatisBaseService { public ResultBean wxSilentLogin(String wxCode) { ResultBean rb = ResultBean.fireFail(); // 通过wxCode获取unionid,失败返回微信的错误提示。 + ResultBean rbJsonObject = wxLogin(wxCode,APP_ID,SECRET); if (!rbJsonObject.getSuccess()){ JSONObject jsonObject = rbJsonObject.getData(); @@ -1171,7 +1176,7 @@ public class SysUserService extends MybatisBaseService { // 判断存在不存在unionid,用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID 机制说明。、 JSONObject jsonObject = rbJsonObject.getData(); if (!jsonObject.containsKey("openid")){ - return rb.setMsg("未获得openid,请参见auth.code2Session"); + return rb.setMsg("未获得openid,请联系管理员"); } //String unionid = jsonObject.get("unionid").toString(); String openid = jsonObject.get("openid").toString(); @@ -1216,52 +1221,18 @@ public class SysUserService extends MybatisBaseService { if (!jsonObject.containsKey("openid")){ return rb.setMsg("未获得openid,请参见auth.code2Session"); } - //String unionid = jsonObject.get("unionid").toString(); + String unionid = jsonObject.get("unionid").toString(); String openid = jsonObject.get("openid").toString(); // 判断用户登陆授权表是否存在该用户unionid和openid,如果不存在就增加一条返回 SysUser sysUser=baseMapper.selectOne(new QueryWrapper().eq("appletOpenid",openid)); - + Map map=new HashMap<>(); + map.put("openid",openid); + map.put("unionid",unionid); if(sysUser==null){ - return rb.setMsg("此微信没有绑定用户").setCode("100").setData(openid); + return rb.setMsg("此微信没有绑定用户").setCode("100").setData(map); }else{ } -// //SysUserWxAuth sysUserWxAuth = sysUserWxAuthService.fetchByUnionidAndOpenid(unionid,openid); -// if (null == sysUser) { -// // 添加一个新用户授权记录 -// //sysUser.setUnionid(unionid); -// //sysUser.setOpenid(openid); -// int isSave = baseMapper.insert(sysUser); -// if ( isSave==0 ){ -// return rb.setMsg("登陆:新增用户授权表失败"); -// } -// return rb.setMsg(SysUserWxAuth_Not_Exist.getMsg()).setCode(SysUserWxAuth_Not_Exist.getCode()); -// } -// // 如果用户Sid为空返回 -// String sysUserSid = sysUserWxAuth.getSysUserSid(); -// if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(sysUserSid) || sysUserSid == null){ -// return rb.setMsg(SysUser_Sid_IsEmpty.getMsg()).setCode(SysUser_Sid_IsEmpty.getCode()); -// } -// // 如果未找到用户记录返回 -// SysUser sysUser = fetchBySid(sysUserSid); -// if (sysUser == null){ -// return rb.setMsg(SysUser_Not_Exist.getMsg()).setCode(SysUser_Not_Exist.getCode()); -// } -// // 如果未绑定手机号返回 -// String mobile = sysUser.getMobile(); -// if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(mobile) || mobile == null){ -// return rb.setMsg(SysUser_Mobile_Not_Bind.getMsg()).setCode(SysUser_Mobile_Not_Bind.getCode()); -// } -// // 如果设置为未登陆返回 -// int isLogin = sysUser.getIsLogin(); -// if (isLogin !=1){ -// return rb.setMsg(SysUser_Not_Login.getMsg()).setCode(SysUser_Not_Login.getCode()); -// } - // 获得Token -// String token = sysUser.getToken(); -// if(com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(token) || token == null){ -// return rb.setMsg("登陆:token为空").setCode("122016"); -// } // 重置Token失效时间 // {写代码} SysUserLoginVo sysUserLoginVo = new SysUserLoginVo(); @@ -1306,6 +1277,7 @@ public class SysUserService extends MybatisBaseService { if (sysUser != null) { sysUserSid = sysUser.getSid(); sysUser.setAppletOpenid(sysUserWxBindMobileDto.getOpenid()); + sysUser.setUnionid(sysUserWxBindMobileDto.getUnionid()); int i= baseMapper.updateById(sysUser); if (i>0){ return rb.success().setMsg("绑定成功").setData(sysUser); @@ -1313,54 +1285,8 @@ public class SysUserService extends MybatisBaseService { else{ return rb.setMsg("绑定失败"); } + }else{ + return rb.setMsg("您的平台应用未被授权,请联系工作人员。"); } - // 当用户Sid不为空时更新 -// if(!com.baomidou.mybatisplus.core.toolkit.StringUtils.isBlank(sysUserWxAuth.getSysUserSid()) && sysUserWxAuth.getSysUserSid() != null){ -// sysUserSid = sysUserWxAuth.getSysUserSid(); -// sysUser = fetchBySid(sysUserSid); -// if (sysUser != null){ -// sysUser.setMobile(mobile); -// boolean isUpdate = updateById(sysUser); -// if (isUpdate){ -// return rb.success().setMsg("绑定成功").setData(sysUserSid); -// } -// else{ -// return rb.setMsg("绑定失败"); -// } -// } -// } - -// // 添加用户信息表 -// SysUserInfoDto sysUserInfoDto = sysUserInfoService.setSysUserInfoDefaultValue(); -// sysUserInfoDto.setMobile(mobile); -// ResultBean isSave = sysUserInfoService.saveSysUserInfo(sysUserInfoDto); -// if (!isSave.getSuccess()){ -// return rb.setMsg("绑定用户新增用户信息表失败"); -// } -// String sysUserInfoSid = isSave.getData().toString(); -// sysUser = new SysUser(); -// sysUser.setSysUserInfoSid(sysUserInfoSid); -// sysUser.setMobile(mobile); -// // 设置登陆名 -// String timeNow = String.valueOf(System.currentTimeMillis()); -// sysUser.setLoginName("user" + timeNow); -// sysUser.setIsLogin(1); -// sysUser.setIsAdmin(2); -// sysUser.setOnlineState(1); -// boolean isSaveSysUser = this.save(sysUser); -// if (!isSaveSysUser){ -// return rb.setMsg("用户表保存失败"); -// } -// // 更新用户微信授权表 -// sysUserSid = sysUser.getSid(); -// sysUserWxAuth.setSysUserSid(sysUserSid); -// boolean isUpdate = sysUserWxAuthService.updateById(sysUserWxAuth); -// if (isUpdate){ -// return rb.success().setMsg("绑定成功").setData(sysUserSid); -// } -// else{ -// return rb.setMsg("绑定失败"); -// } - return rb; } } \ No newline at end of file