jinpengyong
2023-10-30 49d7ce5a988596d7540083be0e1948bcb66af544
chore:补充提交
1 files added
5 files modified
85 ■■■■■ changed files
screen-api/src/main/java/com/moral/api/controller/AppDevicController.java 5 ●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/controller/AppUserController.java 33 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/pojo/enums/SysDictTypeEnum.java 2 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/utils/HttpClientUtil.java 21 ●●●●● patch | view | raw | blame | history
screen-api/src/main/java/com/moral/api/vo/WxMssVo.java 13 ●●●●● 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;//推送文字
}