115 lines
3.9 KiB
Java
115 lines
3.9 KiB
Java
package com.lp.controller.iot;
|
|
|
|
import com.lp.bo.ContactUserInfoBO;
|
|
import com.lp.bo.IotVideoInfoBO;
|
|
import com.lp.bo.UserInfoBO;
|
|
import com.lp.controller.BaseController;
|
|
import com.lp.util.BrowserJudge;
|
|
import com.lp.util.LogUtil4j;
|
|
import com.lp.util.ObjectUtil;
|
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
|
import me.chanjar.weixin.mp.api.WxMpServiceImpl;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.util.Map;
|
|
|
|
|
|
@Controller
|
|
public class IotWechatViewController extends BaseController {
|
|
|
|
protected final static Logger LOGGER = LoggerFactory.getLogger(IotWechatViewController.class);
|
|
|
|
private final static String VIEW_PATH = "/wechat/iot/" ;
|
|
|
|
@Resource(name = "wxMpService")
|
|
private WxMpServiceImpl wxMpService;
|
|
|
|
/**
|
|
* 获取jsapi ticket
|
|
*
|
|
* @param req
|
|
* @param url
|
|
* @throws WxErrorException
|
|
*/
|
|
private void getJsApiTicket(HttpServletRequest req, String url) {
|
|
Map<String, String> ret;
|
|
try {
|
|
ret = BrowserJudge.Weixin.sign(wxMpService.getJsapiTicket(), url);
|
|
req.setAttribute("noncestr", ret.get("nonceStr"));
|
|
req.setAttribute("timestamp", ret.get("timestamp"));
|
|
req.setAttribute("signature", ret.get("signature"));
|
|
} catch (WxErrorException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
@RequestMapping(method = RequestMethod.GET, value = "/wiot/{viewName}")
|
|
public String wechatPage(HttpServletRequest req, HttpServletResponse resp,
|
|
@PathVariable String viewName) {
|
|
setModelWeb(req,viewName);
|
|
LogUtil4j.debugLogger.debug("------------------++++++++++++++++++ get view {}", viewName);
|
|
return VIEW_PATH + viewName;
|
|
}
|
|
|
|
private void setModelWeb(HttpServletRequest req , String viewName){
|
|
if("edevice".equals(viewName) || "deviceConfigwifi".equals(viewName) || "edevicescene".equals(viewName) ){
|
|
// 增加微信公众号的识别
|
|
if(ObjectUtil.isEmpty(req.getQueryString())){
|
|
getJsApiTicket(req, req.getRequestURL().toString());
|
|
}else{
|
|
getJsApiTicket(req, req.getRequestURL().toString() + "?"+req.getQueryString());
|
|
}
|
|
}
|
|
}
|
|
|
|
@RequestMapping(method = RequestMethod.GET, value = "/wiot/user")
|
|
public ModelAndView userInfo(HttpServletRequest req, HttpServletResponse resp) {
|
|
Map<String,Object> resultData = getResultMap();
|
|
try{
|
|
UserInfoBO user = getUserInfoBySession(req);
|
|
// 查询子账户的数量
|
|
UserInfoBO userInfo = new UserInfoBO() ;
|
|
userInfo.setAid(user.getId());
|
|
int num = service.count("UserInfo.selectCount", userInfo);
|
|
putData(resultData, num);
|
|
}catch(Exception e){
|
|
exception(e,resultData);
|
|
}
|
|
return getModelAndView(resp, resultData,VIEW_PATH+"user","info");
|
|
}
|
|
|
|
@RequestMapping(method = RequestMethod.GET, value = "/wiot/live")
|
|
public ModelAndView live(HttpServletRequest req, HttpServletResponse resp ,@RequestParam Integer id ) {
|
|
Map<String,Object> resultData = getResultMap();
|
|
try{
|
|
resultData = service.selectOne("IotVideoInfo.selectOne", new IotVideoInfoBO(id));
|
|
}catch(Exception e){
|
|
exception(e,resultData);
|
|
}
|
|
return getModelAndView(resp, resultData,VIEW_PATH+"live","info");
|
|
}
|
|
|
|
@RequestMapping(method = RequestMethod.GET, value = "/wiot/cbind")
|
|
public ModelAndView cbind(HttpServletRequest req, HttpServletResponse resp ,@RequestParam Integer id ) {
|
|
Map<String,Object> resultData = getResultMap();
|
|
try{
|
|
ContactUserInfoBO obj = new ContactUserInfoBO(id);
|
|
resultData = service.selectOne("ContactUserInfo.selectOne", obj ) ;
|
|
}catch(Exception e){
|
|
exception(e,resultData);
|
|
}
|
|
return getModelAndView(resp, resultData,VIEW_PATH+"cbind","info");
|
|
}
|
|
|
|
}
|