Commit 261c4e04caf7728016a662ebc8dc1dc19bd2c227

Authored by 陈杰
1 parent bbcd213f
Exists in master

动态码

src/main/java/com/sincere/wechatbusiness/controller/ReportVoluntaryController.java
@@ -17,9 +17,14 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -17,9 +17,14 @@ import org.springframework.web.bind.annotation.RequestMapping;
17 import org.springframework.web.bind.annotation.RequestMethod; 17 import org.springframework.web.bind.annotation.RequestMethod;
18 import org.springframework.web.bind.annotation.RestController; 18 import org.springframework.web.bind.annotation.RestController;
19 19
  20 +import javax.imageio.ImageIO;
  21 +import javax.servlet.ServletOutputStream;
  22 +import javax.servlet.http.HttpServletResponse;
  23 +import java.awt.image.BufferedImage;
20 import java.io.*; 24 import java.io.*;
21 import java.net.HttpURLConnection; 25 import java.net.HttpURLConnection;
22 import java.net.URL; 26 import java.net.URL;
  27 +import java.net.URLEncoder;
23 28
24 @RestController 29 @RestController
25 @RequestMapping("reportVoluntary") 30 @RequestMapping("reportVoluntary")
@@ -142,19 +147,28 @@ public class ReportVoluntaryController { @@ -142,19 +147,28 @@ public class ReportVoluntaryController {
142 147
143 @ApiOperation("获取小程序动态码") 148 @ApiOperation("获取小程序动态码")
144 @RequestMapping(value = "/downloadSmallRoutine" , method = RequestMethod.GET) 149 @RequestMapping(value = "/downloadSmallRoutine" , method = RequestMethod.GET)
145 - public BaseDto downloadSmallRoutine(int channelId){  
146 - BaseDto result = new BaseDto(); 150 + public void downloadSmallRoutine(int channelId, HttpServletResponse response){
147 Channel channel = channelService.getDetail(channelId); 151 Channel channel = channelService.getDetail(channelId);
148 if(StringUtils.isBlank(channel.getReportRoutineUrl())){ 152 if(StringUtils.isBlank(channel.getReportRoutineUrl())){
149 createRoutine(channelId); 153 createRoutine(channelId);
150 - String prefix = domain.replaceAll("51314","51315");  
151 - String url = prefix+"smallRoutine\\"+channelId+".png" ; 154 + String url = "https://market.myjxt.com:51315/smallRoutine/"+channelId+".png" ;
152 channel.setReportRoutineUrl(url); 155 channel.setReportRoutineUrl(url);
153 channelService.updateRoutine(channelId,url); 156 channelService.updateRoutine(channelId,url);
154 } 157 }
155 - result.setData(channel.getReportRoutineUrl());  
156 - return result ;  
157 - 158 + try{
  159 + String fileUrl = channel.getReportRoutineUrl().replace("https://market.myjxt.com:51315/smallRoutine/","c:\\report\\img\\smallRoutine\\");
  160 + response.setHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(channel.getName()+"动态码.jpg", "utf-8"));
  161 + InputStream in = new FileInputStream(fileUrl);
  162 + OutputStream out = response.getOutputStream();
  163 + byte [] by = new byte[1024];
  164 + int i = 0;
  165 + while((i=in.read(by))!=-1) {
  166 + out.write(by,0,i);
  167 + }
  168 + in.close();
  169 + }catch (Exception e){
  170 + e.printStackTrace();
  171 + }
158 } 172 }
159 173
160 public void createRoutine(int channelId){ 174 public void createRoutine(int channelId){
@@ -183,7 +197,7 @@ public class ReportVoluntaryController { @@ -183,7 +197,7 @@ public class ReportVoluntaryController {
183 printWriter.flush(); 197 printWriter.flush();
184 //开始获取数据 198 //开始获取数据
185 BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream()); 199 BufferedInputStream bis = new BufferedInputStream(httpURLConnection.getInputStream());
186 - OutputStream os = new FileOutputStream(new File("D:\report\img\smallRoutine\"+channelId+".png")); 200 + OutputStream os = new FileOutputStream(new File("C:\report\img\smallRoutine\"+channelId+".png"));
187 int len; 201 int len;
188 byte[] arr = new byte[1024]; 202 byte[] arr = new byte[1024];
189 while ((len = bis.read(arr)) != -1) 203 while ((len = bis.read(arr)) != -1)
@@ -192,13 +206,19 @@ public class ReportVoluntaryController { @@ -192,13 +206,19 @@ public class ReportVoluntaryController {
192 os.flush(); 206 os.flush();
193 } 207 }
194 os.close(); 208 os.close();
195 - }  
196 - catch (Exception e)  
197 - { 209 + }catch (Exception e) {
198 e.printStackTrace(); 210 e.printStackTrace();
199 } 211 }
200 } 212 }
201 213
  214 + @ApiOperation("获取渠道商列表")
  215 + @RequestMapping(value = "/getChannelList" , method = RequestMethod.GET)
  216 + public BaseDto getChannelList(String name , int page , int pageSize ){
  217 + BaseDto result = new BaseDto();
  218 + result.setData(channelService.getReportChannel(page,pageSize,name));
  219 + return result ;
  220 + }
  221 +
202 @ApiOperation("获取渠道商推广的用户") 222 @ApiOperation("获取渠道商推广的用户")
203 @RequestMapping(value = "/getUserList" , method = RequestMethod.GET) 223 @RequestMapping(value = "/getUserList" , method = RequestMethod.GET)
204 public JSONObject getUserList(int channelId , int page , int pageSize){ 224 public JSONObject getUserList(int channelId , int page , int pageSize){
src/main/java/com/sincere/wechatbusiness/mapper/ChannelMapper.java
@@ -8,6 +8,9 @@ import java.util.List; @@ -8,6 +8,9 @@ import java.util.List;
8 8
9 public interface ChannelMapper { 9 public interface ChannelMapper {
10 10
  11 + List<Channel> getReportChannel(@Param("name") String name);
  12 + int getReportChannelCount(@Param("name") String name);
  13 +
11 Channel getByName(String name); 14 Channel getByName(String name);
12 15
13 List<Channel> getListByTemplate(int templateId); 16 List<Channel> getListByTemplate(int templateId);
src/main/java/com/sincere/wechatbusiness/service/ChannelService.java
@@ -7,6 +7,8 @@ import java.util.List; @@ -7,6 +7,8 @@ import java.util.List;
7 7
8 public interface ChannelService { 8 public interface ChannelService {
9 9
  10 + Page<Channel> getReportChannel(int page , int pageSize , String name);
  11 +
10 List<Channel> getListByTemplate(int templateId); 12 List<Channel> getListByTemplate(int templateId);
11 13
12 Page<Channel> getList(Channel channel, int page, int pageSize); 14 Page<Channel> getList(Channel channel, int page, int pageSize);
src/main/java/com/sincere/wechatbusiness/service/impl/ChannelServiceImpl.java
@@ -16,6 +16,15 @@ public class ChannelServiceImpl implements ChannelService { @@ -16,6 +16,15 @@ public class ChannelServiceImpl implements ChannelService {
16 ChannelMapper channelMapper; 16 ChannelMapper channelMapper;
17 17
18 @Override 18 @Override
  19 + public Page<Channel> getReportChannel(int page, int pageSize, String name) {
  20 + Page<Channel> result=new Page<>(page,pageSize);
  21 + PageHelper.startPage(page,pageSize);
  22 + result.setList(channelMapper.getReportChannel(name));
  23 + result.setCount(channelMapper.getReportChannelCount(name));
  24 + return result;
  25 + }
  26 +
  27 + @Override
19 public List<Channel> getListByTemplate(int templateId) { 28 public List<Channel> getListByTemplate(int templateId) {
20 return channelMapper.getListByTemplate(templateId); 29 return channelMapper.getListByTemplate(templateId);
21 } 30 }
src/main/resources/mapper/ChannelMapper.xml
@@ -15,8 +15,25 @@ @@ -15,8 +15,25 @@
15 <result column="province_code" jdbcType="VARCHAR" property="provinceCode" /> 15 <result column="province_code" jdbcType="VARCHAR" property="provinceCode" />
16 <result column="city_code" jdbcType="VARCHAR" property="cityCode" /> 16 <result column="city_code" jdbcType="VARCHAR" property="cityCode" />
17 <result column="report_routine_url" jdbcType="VARCHAR" property="reportRoutineUrl" /> 17 <result column="report_routine_url" jdbcType="VARCHAR" property="reportRoutineUrl" />
  18 + <result column="register" property="register" />
18 </resultMap> 19 </resultMap>
19 20
  21 + <select id="getReportChannel" resultMap="ChannelMap">
  22 + select * , (select count(*) from report_voluntary.dbo.users as users where users.channelId = channel.id) as register
  23 + from channel where state = 1
  24 + <if test="name != null and name != ''">
  25 + and name like '%${name}%'
  26 + </if>
  27 + </select>
  28 +
  29 + <select id="getReportChannelCount" resultType="java.lang.Integer">
  30 + select count(*)
  31 + from channel where state = 1
  32 + <if test="name != null and name != ''">
  33 + and name like '%${name}%'
  34 + </if>
  35 + </select>
  36 +
20 <select id="getByName" parameterType="java.lang.String" resultMap="ChannelMap"> 37 <select id="getByName" parameterType="java.lang.String" resultMap="ChannelMap">
21 select * from channel where name = #{name} and state = 1 38 select * from channel where name = #{name} and state = 1
22 </select> 39 </select>