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> | ... | ... |