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 17 import org.springframework.web.bind.annotation.RequestMethod;
18 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 24 import java.io.*;
21 25 import java.net.HttpURLConnection;
22 26 import java.net.URL;
  27 +import java.net.URLEncoder;
23 28  
24 29 @RestController
25 30 @RequestMapping("reportVoluntary")
... ... @@ -142,19 +147,28 @@ public class ReportVoluntaryController {
142 147  
143 148 @ApiOperation("获取小程序动态码")
144 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 151 Channel channel = channelService.getDetail(channelId);
148 152 if(StringUtils.isBlank(channel.getReportRoutineUrl())){
149 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 155 channel.setReportRoutineUrl(url);
153 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 174 public void createRoutine(int channelId){
... ... @@ -183,7 +197,7 @@ public class ReportVoluntaryController {
183 197 printWriter.flush();
184 198 //开始获取数据
185 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 201 int len;
188 202 byte[] arr = new byte[1024];
189 203 while ((len = bis.read(arr)) != -1)
... ... @@ -192,13 +206,19 @@ public class ReportVoluntaryController {
192 206 os.flush();
193 207 }
194 208 os.close();
195   - }
196   - catch (Exception e)
197   - {
  209 + }catch (Exception e) {
198 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 222 @ApiOperation("获取渠道商推广的用户")
203 223 @RequestMapping(value = "/getUserList" , method = RequestMethod.GET)
204 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 8  
9 9 public interface ChannelMapper {
10 10  
  11 + List<Channel> getReportChannel(@Param("name") String name);
  12 + int getReportChannelCount(@Param("name") String name);
  13 +
11 14 Channel getByName(String name);
12 15  
13 16 List<Channel> getListByTemplate(int templateId);
... ...
src/main/java/com/sincere/wechatbusiness/service/ChannelService.java
... ... @@ -7,6 +7,8 @@ import java.util.List;
7 7  
8 8 public interface ChannelService {
9 9  
  10 + Page<Channel> getReportChannel(int page , int pageSize , String name);
  11 +
10 12 List<Channel> getListByTemplate(int templateId);
11 13  
12 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 16 ChannelMapper channelMapper;
17 17  
18 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 28 public List<Channel> getListByTemplate(int templateId) {
20 29 return channelMapper.getListByTemplate(templateId);
21 30 }
... ...
src/main/resources/mapper/ChannelMapper.xml
... ... @@ -15,8 +15,25 @@
15 15 <result column="province_code" jdbcType="VARCHAR" property="provinceCode" />
16 16 <result column="city_code" jdbcType="VARCHAR" property="cityCode" />
17 17 <result column="report_routine_url" jdbcType="VARCHAR" property="reportRoutineUrl" />
  18 + <result column="register" property="register" />
18 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 37 <select id="getByName" parameterType="java.lang.String" resultMap="ChannelMap">
21 38 select * from channel where name = #{name} and state = 1
22 39 </select>
... ...