| 
						
						
						
					 | 
					@ -1,5 +1,6 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					package com.epmet.service.impl; | 
					 | 
					 | 
					package com.epmet.service.impl; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.alibaba.fastjson.JSON; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.alibaba.fastjson.JSONObject; | 
					 | 
					 | 
					import com.alibaba.fastjson.JSONObject; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.constant.NumConstant; | 
					 | 
					 | 
					import com.epmet.commons.tools.constant.NumConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.exception.RenException; | 
					 | 
					 | 
					import com.epmet.commons.tools.exception.RenException; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -16,22 +17,20 @@ import com.epmet.dto.result.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.feign.OperCrmOpenFeignClient; | 
					 | 
					 | 
					import com.epmet.feign.OperCrmOpenFeignClient; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.feign.OssFeignClient; | 
					 | 
					 | 
					import com.epmet.feign.OssFeignClient; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.service.*; | 
					 | 
					 | 
					import com.epmet.service.*; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					import com.epmet.wxapi.param.WxMaCodeAuditStatusReq; | 
					 | 
					 | 
					import com.epmet.wxapi.param.*; | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.wxapi.param.WxMaCodeCommitReq; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.wxapi.param.WxMaCodeSubmitAuditRequest; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.wxapi.param.WxMaNewsReq; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.wxapi.result.*; | 
					 | 
					 | 
					import com.epmet.wxapi.result.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.wxapi.service.WxMaCodeService; | 
					 | 
					 | 
					import com.epmet.wxapi.service.WxMaCodeService; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.github.pagehelper.PageHelper; | 
					 | 
					 | 
					import com.github.pagehelper.PageHelper; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.github.pagehelper.PageInfo; | 
					 | 
					 | 
					import com.github.pagehelper.PageInfo; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
					 | 
					 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import org.springframework.mock.web.MockMultipartFile; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.transaction.annotation.Transactional; | 
					 | 
					 | 
					import org.springframework.transaction.annotation.Transactional; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import org.springframework.web.multipart.MultipartFile; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.io.File; | 
					 | 
					 | 
					import java.io.File; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.io.FileOutputStream; | 
					 | 
					 | 
					import java.io.FileOutputStream; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.io.OutputStream; | 
					 | 
					 | 
					import java.io.OutputStream; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.nio.file.Files; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.util.ArrayList; | 
					 | 
					 | 
					import java.util.ArrayList; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.util.Collections; | 
					 | 
					 | 
					import java.util.Collections; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.util.List; | 
					 | 
					 | 
					import java.util.List; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -68,8 +67,6 @@ public class CodeServiceImpl implements CodeService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						private OssFeignClient ossFeignClient; | 
					 | 
					 | 
						private OssFeignClient ossFeignClient; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						@Autowired | 
					 | 
					 | 
						@Autowired | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						private PaCustomerService paCustomerService; | 
					 | 
					 | 
						private PaCustomerService paCustomerService; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						@Autowired | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						private WxMaCodeService wxsMaCodeService; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						@Override | 
					 | 
					 | 
						@Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						public List<TemplateListResultDTO> templateList() { | 
					 | 
					 | 
						public List<TemplateListResultDTO> templateList() { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -104,6 +101,15 @@ public class CodeServiceImpl implements CodeService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							return codeExtDTO.getExtJson(); | 
					 | 
					 | 
							return codeExtDTO.getExtJson(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						} | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						public static void main(String[] args) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							String json = "{\"extEnable\":true,\"extAppid\":\"wx2679392c4cc2af22\",\"directCommit\":false,\"ext\":{\"extAppid\":\"wx2679392c4cc2af22\",\"footbar\":{\"work\":{\"name\":\"工作\",\"pageTile\":\"工作\"},\"org\":{\"name\":\"组织\",\"pageTile\":\"组织\"},\"data\":{\"name\":\"数据\",\"pageTile\":\"数据\"},\"find\":{\"name\":\"更多\",\"pageTile\":\"更多\"}}}}"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							WxExtJson wxExtJson = JSONObject.parseObject(json, WxExtJson.class); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							wxExtJson.setExtAppid("123456"); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							wxExtJson.getExt().setExtAppid("123456"); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							String extJson = JSON.toJSONString(wxExtJson); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							System.out.println(extJson); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						@Override | 
					 | 
					 | 
						@Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						@Transactional(rollbackFor = Exception.class) | 
					 | 
					 | 
						@Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						public void upload(CodeUploadFormDTO formDTO) { | 
					 | 
					 | 
						public void upload(CodeUploadFormDTO formDTO) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -120,20 +126,24 @@ public class CodeServiceImpl implements CodeService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								throw new RenException("第三方配置不是有效的Json"); | 
					 | 
					 | 
								throw new RenException("第三方配置不是有效的Json"); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							} | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							WxExtJson wxExtJson = JSONObject.parseObject(formDTO.getExtJson(), WxExtJson.class); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							wxExtJson.setExtAppid(authInfo.getAuthorizerAppid()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							wxExtJson.getExt().setExtAppid(authInfo.getAuthorizerAppid()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
							String extJson = JSON.toJSONString(wxExtJson); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							CodeExtDTO codeExtDTO = codeExtService.getExtByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); | 
					 | 
					 | 
							CodeExtDTO codeExtDTO = codeExtService.getExtByCustomer(formDTO.getCustomerId(), formDTO.getClientType()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							if (null == codeExtDTO) { | 
					 | 
					 | 
							if (null == codeExtDTO) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								codeExtDTO = new CodeExtDTO(); | 
					 | 
					 | 
								codeExtDTO = new CodeExtDTO(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								codeExtDTO.setCustomerId(formDTO.getCustomerId()); | 
					 | 
					 | 
								codeExtDTO.setCustomerId(formDTO.getCustomerId()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								codeExtDTO.setClientType(formDTO.getClientType()); | 
					 | 
					 | 
								codeExtDTO.setClientType(formDTO.getClientType()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								codeExtDTO.setAppId(authInfo.getAuthorizerAppid()); | 
					 | 
					 | 
								codeExtDTO.setAppId(authInfo.getAuthorizerAppid()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								codeExtDTO.setExtJson(formDTO.getExtJson()); | 
					 | 
					 | 
								codeExtDTO.setExtJson(extJson); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								codeExtService.save(codeExtDTO); | 
					 | 
					 | 
								codeExtService.save(codeExtDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							} | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							codeExtDTO.setExtJson(formDTO.getExtJson()); | 
					 | 
					 | 
							codeExtDTO.setExtJson(extJson); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							codeExtService.update(codeExtDTO); | 
					 | 
					 | 
							codeExtService.update(codeExtDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							WxMaCodeCommitReq request = ConvertUtils.sourceToTarget(formDTO, WxMaCodeCommitReq.class); | 
					 | 
					 | 
							WxMaCodeCommitReq request = ConvertUtils.sourceToTarget(formDTO, WxMaCodeCommitReq.class); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							request.setExtJson(formDTO.getExtJson()); | 
					 | 
					 | 
							request.setExtJson(extJson); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							//调用微信API上传代码
 | 
					 | 
					 | 
							//调用微信API上传代码
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							WxResult wxResult = wxMaCodeService.commit(authInfo.getAuthorizerAccessToken(), request); | 
					 | 
					 | 
							WxResult wxResult = wxMaCodeService.commit(authInfo.getAuthorizerAccessToken(), request); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							//上传失败,抛出异常
 | 
					 | 
					 | 
							//上传失败,抛出异常
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -151,7 +161,7 @@ public class CodeServiceImpl implements CodeService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							//将上传信息存入表中
 | 
					 | 
					 | 
							//将上传信息存入表中
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							CodeCustomerDTO codeCustomerDTO = ConvertUtils.sourceToTarget(formDTO, CodeCustomerDTO.class); | 
					 | 
					 | 
							CodeCustomerDTO codeCustomerDTO = ConvertUtils.sourceToTarget(formDTO, CodeCustomerDTO.class); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							codeCustomerDTO.setCustomerName(paCustomerDTO.getCustomerName()); | 
					 | 
					 | 
							codeCustomerDTO.setCustomerName(paCustomerDTO.getCustomerName()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							codeCustomerDTO.setExtJson(formDTO.getExtJson()); | 
					 | 
					 | 
							codeCustomerDTO.setExtJson(extJson); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							codeCustomerDTO.setAppId(authInfo.getAuthorizerAppid()); | 
					 | 
					 | 
							codeCustomerDTO.setAppId(authInfo.getAuthorizerAppid()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							codeCustomerDTO.setStatus(CodeConstant.UNAUDITED); | 
					 | 
					 | 
							codeCustomerDTO.setStatus(CodeConstant.UNAUDITED); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							codeCustomerService.save(codeCustomerDTO); | 
					 | 
					 | 
							codeCustomerService.save(codeCustomerDTO); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -374,9 +384,9 @@ public class CodeServiceImpl implements CodeService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType()); | 
					 | 
					 | 
							AuthorizationInfoDTO authInfo = authorizationInfoDao.getAuthInfoByCustomer(codeCustomerDTO.getCustomerId(), codeCustomerDTO.getClientType()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							//调用微信API获取获取体验版二维码
 | 
					 | 
					 | 
							//调用微信API获取获取体验版二维码
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							WxResult<byte[]> wxResult = wxMaCodeService.getQrCode(authInfo.getAuthorizerAccessToken(), formDTO.getPath()); | 
					 | 
					 | 
							WxResult<byte[]> wxResult = wxMaCodeService.getQrCode(authInfo.getAuthorizerAccessToken(), formDTO.getPath()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
							QrCodeDTO qrCodeDTO = new QrCodeDTO(); | 
					 | 
					 | 
							MultipartFile file = null; | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
							qrCodeDTO.setQrCode(wxResult.getData()); | 
					 | 
					 | 
							file = new MockMultipartFile("file", "QRCode.jpg", "image/jpeg", wxResult.getData()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
							Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(qrCodeDTO); | 
					 | 
					 | 
							Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(file); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
							codeCustomerDTO.setQrCode(uploadResult.getData().getUrl()); | 
					 | 
					 | 
							codeCustomerDTO.setQrCode(uploadResult.getData().getUrl()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							codeCustomerService.update(codeCustomerDTO); | 
					 | 
					 | 
							codeCustomerService.update(codeCustomerDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							result.setQrcode(uploadResult.getData().getUrl()); | 
					 | 
					 | 
							result.setQrcode(uploadResult.getData().getUrl()); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -399,9 +409,7 @@ public class CodeServiceImpl implements CodeService { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						@Override | 
					 | 
					 | 
						@Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
						public String mediaUpload(MediaUploadFormDTO formDTO) { | 
					 | 
					 | 
						public String mediaUpload(MediaUploadFormDTO formDTO) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
							try { | 
					 | 
					 | 
							try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
								QrCodeDTO dto = new QrCodeDTO(); | 
					 | 
					 | 
								Result<UploadImgResultDTO> uploadWxImg = ossFeignClient.uploadWxImg(formDTO.getMedia()); | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
								dto.setMedia(formDTO.getMedia()); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								Result<UploadImgResultDTO> uploadWxImg = ossFeignClient.uploadWxImg(dto); | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
								File file = new File(uploadWxImg.getData().getUrl()); | 
					 | 
					 | 
								File file = new File(uploadWxImg.getData().getUrl()); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								//获取上传代码信息
 | 
					 | 
					 | 
								//获取上传代码信息
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
								CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); | 
					 | 
					 | 
								CodeCustomerDTO codeCustomerDTO = codeCustomerService.get(formDTO.getCodeId()); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |