screen-api/src/main/java/com/moral/api/controller/AppDevicController.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/controller/AppUserController.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java | ●●●●● patch | view | raw | blame | history | |
screen-api/src/main/java/com/moral/api/vo/WxMssVo.java | ●●●●● patch | view | raw | blame | history |
screen-api/src/main/java/com/moral/api/controller/AppDevicController.java
@@ -50,10 +50,7 @@ @ApiOperation(value = "小程序获取设备") public ResultMessage selectDevice(@RequestParam @ApiParam(value = "organizationId",name = "组织ID") Integer organizationId){ List<Device> organizationDevice = deviceService.getOrganizationDevice(organizationId); if (ObjectUtils.isEmpty(organizationDevice)){ return ResultMessage.fail(ResponseCodeEnum.TARGET_IS_NULL.getCode(), ResponseCodeEnum.TARGET_IS_NULL.getMsg()); } return ResultMessage.ok(organizationDevice); return ResultMessage.ok(ObjectUtils.isEmpty(organizationDevice)?null:organizationDevice); } @GetMapping("fuzzySearch") screen-api/src/main/java/com/moral/api/controller/AppUserController.java
@@ -7,17 +7,22 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import java.util.HashMap; import java.util.Map; import com.moral.api.service.UserService; import com.moral.api.utils.HttpClientUtil; import com.moral.api.vo.WxMssVo; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; @@ -61,4 +66,32 @@ return ResultMessage.ok(); } @GetMapping("pushOneUser") @ApiOperation(value = "小程序推送消息") public ResultMessage pushOneUser(String openid){ String body = push("oOCWi6yfVapaK25Jnkk7jKSbMLyw"); return ResultMessage.ok(body); } public String push(String openid) { RestTemplate restTemplate = new RestTemplate(); //这里简单起见我们每次都获取最新的access_token(时间开发中,应该在access_token快过期时再重新获取) String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + HttpClientUtil.getAccessToken(); //拼接推送的模版 WxMssVo wxMssVo = new WxMssVo(); wxMssVo.setTouser(openid);//用户的openid(要发送给那个用户,通常这里应该动态传进来的) wxMssVo.setTemplate_id("CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU");//订阅消息模板id wxMssVo.setPage("pages/index/index"); Map<String, String> m = new HashMap<>(3); m.put("thing1", "小程序入门课程"); m.put("thing6", "杭州浙江大学"); m.put("thing7", "第一章第一节"); wxMssVo.setData(m); ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, wxMssVo, String.class); return responseEntity.getBody(); } } screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java
@@ -38,6 +38,8 @@ *WIND */ WIND_FARM_SCOPE("WIND","风场范围"), SYS_DEVICE("DEVICE","设备秒机数据") ; @EnumValue screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -5,6 +5,7 @@ import com.moral.api.entity.Organization; import com.moral.api.mapper.OrganizationMapper; import com.moral.api.pojo.vo.user.QxUser; import com.moral.api.service.DeviceService; import com.moral.api.service.OrganizationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; @@ -28,6 +29,9 @@ @Autowired OrganizationMapper organizationMapper; @Autowired private DeviceService deviceService; @Override @@ -58,6 +62,13 @@ } wrapper.eq("is_delete",Constants.NOT_DELETE); List<Organization> organizations = organizationMapper.selectList(wrapper); for (int i=0; i<organizations.size(); i++) { List<String> macs = deviceService.getMacsByOrganizationId(organizations.get(i).getId()); if (ObjectUtils.isEmpty(macs)){ organizations.remove(i); i--; } } return organizations; } screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java
@@ -12,13 +12,19 @@ import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; import java.io.IOException; import java.net.URI; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; public class HttpClientUtil { @@ -133,4 +139,19 @@ return resultString; } public static String getAccessToken() { RestTemplate restTemplate = new RestTemplate(); Map<String, String> params = new HashMap<>(); params.put("APPID", "wx7c54942dfc87f4d8"); // params.put("APPSECRET", "5873a729c365b65ab42bb5fc82d2ed49"); // ResponseEntity<String> responseEntity = restTemplate.getForEntity( "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}", String.class, params); String body = responseEntity.getBody(); JSONObject object = JSON.parseObject(body); String Access_Token = object.getString("access_token"); String expires_in = object.getString("expires_in"); System.out.println("有效时长expires_in:" + expires_in); return Access_Token; } } screen-api/src/main/java/com/moral/api/vo/WxMssVo.java
New file @@ -0,0 +1,13 @@ package com.moral.api.vo; import lombok.Data; import java.util.Map; @Data public class WxMssVo { private String touser;//用户openid private String template_id;//订阅消息模版id private String page = "pages/index/index";//默认跳到小程序首页 private Map<String, String> data;//推送文字 }