Commit fa60bcc6 by yao.xiao

增加-微信文件上传

parent 13522d43
......@@ -3,6 +3,8 @@ package com.yd.api.practitioner;
import com.yd.api.practitioner.service.PractitionerService;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.media.MediaGetReqVO;
import com.yd.api.practitioner.vo.media.MediaGetRespVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankRequestVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankResponseVO;
import com.yd.api.practitioner.vo.setting.*;
......@@ -89,4 +91,12 @@ public class PractitionerController {
return result;
}
@RequestMapping("/mediaGet")
public Object mediaGet(@RequestBody MediaGetReqVO requestVO) throws Exception{
JsonResult result = new JsonResult();
MediaGetRespVO responseVO = practitionerService.mediaGet(requestVO);
result.addResult(responseVO);
result.setData(responseVO);
return result;
}
}
......@@ -2,6 +2,8 @@ package com.yd.api.practitioner.service;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.media.MediaGetReqVO;
import com.yd.api.practitioner.vo.media.MediaGetRespVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankRequestVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankResponseVO;
import com.yd.api.practitioner.vo.setting.*;
......@@ -44,4 +46,11 @@ public interface PractitionerService {
* @return
*/
SettingSaveResponseVO settingSave(SettingSaveRequestVO requestVO) throws Exception;
/**
* 微信上传图片
* @param requestVO
* @return
*/
MediaGetRespVO mediaGet(MediaGetReqVO requestVO);
}
......@@ -2,6 +2,8 @@ package com.yd.api.practitioner.service.impl;
import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.media.MediaGetReqVO;
import com.yd.api.practitioner.vo.media.MediaGetRespVO;
import com.yd.api.practitioner.vo.rank.AclCustomerFortuneStatistics;
import com.yd.api.practitioner.vo.rank.PractitionerRankRequestVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankResponseVO;
......@@ -21,6 +23,9 @@ import com.yd.dal.service.practitioner.PractitionerSubordinateDALService;
import com.yd.dal.service.tencent.TenInterfRecordDALService;
import com.yd.dal.service.transaction.TranLogDALService;
import com.yd.rmi.ali.oss.service.OssService;
import com.yd.rmi.tencent.wechat.service.WechatService;
import com.yd.rmi.tencent.wechatinterf.pojo.ticket.TicketRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenRequest;
import com.yd.util.CommonUtil;
import com.yd.util.HttpUtil;
import com.yd.util.config.ZHBErrorConfig;
......@@ -33,12 +38,15 @@ import com.google.common.base.Strings;
import org.springframework.transaction.annotation.Transactional;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
@Service("practitionerService")
public class PractitionerServiceImpl implements com.yd.api.practitioner.service.PractitionerService {
......@@ -55,6 +63,8 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
private AclCustomerLogDALService aclCustomerLogDALService;
@Autowired
private OssService ossService;
@Autowired
private WechatService wechatService;
@Override
public PractitionerLoginResponseVO practitionerLogin(PractitionerLoginRequestVO requestVO) {
......@@ -330,6 +340,61 @@ public class PractitionerServiceImpl implements com.yd.api.practitioner.service.
return responseVO;
}
@Override
public MediaGetRespVO mediaGet(MediaGetReqVO requestVO) {
MediaGetRespVO mediaGetRespVO=new MediaGetRespVO();
boolean success=true;
String message=ZHBErrorConfig.getErrorInfo("800000");
String mediaId = requestVO.getMediaId();
String accessToken = wechatService.obtainToken(new TokenRequest());
System.out.println("accessToken:"+accessToken);
TicketRequest ticketRequest = new TicketRequest();
ticketRequest.setAccessToken(accessToken);
String jsapiTicket = wechatService.obtainTicket(ticketRequest);
System.out.println("jsapiTicket:"+jsapiTicket);
String ImgUrl= "https://api.weixin.qq.com/cgi-bin/media/get?access_token="+accessToken+"&media_id="+mediaId;
String scale = requestVO.getScale();
//判断上传尺寸是否符合要求
if(!CommonUtil.isNullOrBlank(scale)){
Map<String,Object> input = HttpUtil.getInput(ImgUrl);
if (!(boolean)input.get("success")){
mediaGetRespVO.setCommonResult(new CommonResult(false, (String)input.get("message")));
return mediaGetRespVO;
}
InputStream inputStream = (InputStream) input.get("is");
//判断图像尺寸
Image img = null;
try {
img = ImageIO.read(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
if (img == null || img.getWidth(null) <= 0 || img.getHeight(null) <= 0) {
mediaGetRespVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830014")));
return mediaGetRespVO;
}else {
double width = img.getWidth(null);
double height = img.getHeight(null);
double value =height/width;
Double scaleDouble = Double.valueOf(scale);
if (value !=scaleDouble) {
if (scaleDouble == 1){
//上传头像尺寸比例为1:1
mediaGetRespVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830016")));
return mediaGetRespVO;
}else if(scaleDouble ==0.75) {
mediaGetRespVO.setCommonResult(new CommonResult(false, ZHBErrorConfig.getErrorInfo("830015")));
return mediaGetRespVO;
}
}
}
}
// System.out.println("ImgUrl:"+ImgUrl);
mediaGetRespVO.setImgUrl(ImgUrl);
mediaGetRespVO.setCommonResult(new CommonResult(success, message));
return mediaGetRespVO;
}
private CommonResult paramCheck(SettingSaveRequestVO requestVO) {
//检查入参判断
Long practitionerId = requestVO.getPractitionerId();
......
package com.yd.api.practitioner.vo.media;
import lombok.Data;
@Data
public class MediaGetReqVO {
private String scale;
private String mediaId;
}
package com.yd.api.practitioner.vo.media;
import com.yd.api.result.CommonResult;
import lombok.Data;
@Data
public class MediaGetRespVO {
private CommonResult commonResult;
private String imgUrl;
}
package com.yd.rmi.ali.oss.service;
import com.yd.rmi.ali.oss.vo.OssRequestVO;
import com.yd.rmi.ali.oss.vo.OssResponseVO;
import java.io.InputStream;
public interface OssService {
......
package com.yd.rmi.tencent.wechat.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.yd.api.result.CommonResult;
import com.yd.cache.SystemConfigService;
import com.yd.dal.entity.customer.Customer;
import com.yd.dal.entity.tencent.TenInterfRecord;
import com.yd.dal.entity.transaction.TranLog;
import com.yd.dal.service.tencent.TenInterfRecordDALService;
......@@ -22,10 +18,7 @@ import com.yd.rmi.tencent.wechatinterf.pojo.token.TokenResponse;
import com.yd.rmi.tencent.wechatinterf.pojo.unifiedorder.UnifiedorderRequest;
import com.yd.rmi.tencent.wechatinterf.pojo.unifiedorder.UnifiedorderResponse;
import com.yd.rmi.tencent.wechatinterf.service.WechatInterfService;
import com.yd.util.CommonUtil;
import com.yd.util.EncryptUtil;
import com.yd.util.JsonUtil;
import com.yd.util.XmlUtil;
import com.yd.util.*;
import com.yd.util.config.ZHBErrorConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -50,10 +43,6 @@ public class WechatServiceImpl implements WechatService {
private WechatInterfService wechatInterfService;
@Autowired
private SystemConfigService systemConfigService;
// @Autowired
// private PoOrderService poOrderService;
// @Autowired
// private ProductPlanService productPlanService;
@Autowired
private TranLogDALService tranLogDALService;
......@@ -64,6 +53,10 @@ public class WechatServiceImpl implements WechatService {
String pGrantType = tokenRequest.getGrant_type() == null || "".equals(tokenRequest.getGrant_type()) ? systemConfigService.getSingleConfigValue("TENCENT_WECHAT_TOKEN_GRANT_TYPE") : tokenRequest.getGrant_type();
String pAppid = tokenRequest.getAppid() == null || "".equals(tokenRequest.getAppid()) ? systemConfigService.getSingleConfigValue("TENCENT_WECHAT_APPID"):tokenRequest.getAppid();
String pSecret = tokenRequest.getSecret() == null || "".equals(tokenRequest.getSecret()) ? systemConfigService.getSingleConfigValue("TENCENT_WECHAT_APP_SECRET") : tokenRequest.getSecret();
if(SpringContextUtil.isProd()){
pAppid =systemConfigService.getSingleConfigValue("YD-TENCENT_WECHAT_APPID");
pSecret =systemConfigService.getSingleConfigValue("YD-TENCENT_WECHAT_APP_SECRET");
}
TenInterfRecord tencentInterfRecord = new TenInterfRecord();
tencentInterfRecord.setInterfType("TOKEN");
tencentInterfRecord.setGrantType(pGrantType);
......@@ -89,7 +82,14 @@ public class WechatServiceImpl implements WechatService {
needReload = true;
}
if(needReload){
TokenResponse tokenResponse = wechatInterfService.token(tokenRequest);
String url = "https://api.weixin.qq.com/cgi-bin/token?"
+"grant_type="+pGrantType
+"&appid="+pAppid
+"&secret="+pSecret;
tranLogDALService.logDB("wechat", "accessToken", "in", tokenRequest.getAppid(), url, null, null);
String responseStr = wechatInterfService.transaction(url,null,null);
tranLogDALService.logDB("wechat", "accessToken", "out", tokenRequest.getAppid(), responseStr, null, null);
TokenResponse tokenResponse = (TokenResponse)JsonUtil.jsonToObj(responseStr,TokenResponse.class);
accessToken = tokenResponse.getAccess_token();
Long expiresIn = null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment