Commit 261c4e04caf7728016a662ebc8dc1dc19bd2c227
1 parent
bbcd213f
Exists in
master
动态码
Showing
5 changed files
with
62 additions
and
11 deletions
Show diff stats
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> | ... | ... |