@@ -1,5 +1,6 @@
package com.ytpm.config.interceptor;
+import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
@@ -7,14 +8,26 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
+@Component
public class HttpInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object obj) throws Exception {
+ // 获取客户端IP地址
+ String clientIp = getClientIp(request);
+ System.out.println("客户端" + clientIp + "发起用户请求");
+ // 可以在这里添加更多的逻辑,比如记录日志等
return true;
}
+ private String getClientIp(HttpServletRequest request) {
+ String xfHeader = request.getHeader("X-Forwarded-For");
+ if (xfHeader == null) {
+ return request.getRemoteAddr();
+ }
+ return xfHeader.split(",")[0]; // 可能会有多个IP,这里取第一个逗号前的IP
/**
* 请求处理之后调用;在视图渲染之前,controller处理之后。
*/
@@ -18,6 +18,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
@RestController
@RequestMapping("/user")
@@ -36,8 +38,15 @@ public class UserController {
@GetMapping("/queryAll")
public ResultTable<YtDyzUser> queryAll(){
List<YtDyzUser> dyzUsers = appUserMapper.queryAll();
+ if(dyzUsers.isEmpty()) return ResultTable.resultTableOk(new PageInfo<YtDyzUser>(dyzUsers));
+ List<YtDyzAdRecord> ids = adRecordMapper.getByUserIds(
+ dyzUsers.stream().map(YtDyzUser::getUserId).collect(Collectors.joining(",")));
+ Map<String, List<YtDyzAdRecord>> userAdMap = ids.stream().collect(
+ Collectors.groupingBy(YtDyzAdRecord::getUserId));
for (YtDyzUser user : dyzUsers) {
user.setLoginRecordList(loginRecordMapper.getLoginRecords(user.getWxOpenId()));
+ user.setTodayVideo(userAdMap.containsKey(user.getUserId())?
+ userAdMap.get(user.getUserId()).size():0);
return ResultTable.resultTableOk(new PageInfo<YtDyzUser>(dyzUsers));
@@ -16,4 +16,6 @@ public interface AdRecordMapper {
* 查询用户的广告记录
List<YtDyzAdRecord> getByUserId(@Param("userId") String userId);
+
+ List<YtDyzAdRecord> getByUserIds(@Param("userIds") String userIds);
@@ -47,4 +47,14 @@
where user_id = #{userId}
order by finish_time
</select>
+ <select id="getByUserIds" resultType="com.ytpm.app.model.YtDyzAdRecord">
+ select
+ record_id, user_id, nick_name, placement_id, ad_source_id, revenue, network_form_id, network_name, network_placement_id, finish_time, begin_time,result_json,ad_source_type,ad_source_index,ecpm
+ from yt_dyz_ad_record
+ where user_id in
+ <foreach collection="userIds.split(',')" open="(" close=")" separator="," item="item">
+ #{item}
+ </foreach>
+ order by finish_time
+ </select>
</mapper>
@@ -106,4 +106,6 @@ public class YtDyzUser {
private List<YtDyzLoginRecord> loginRecordList;
/** 风控编码 */
private String riskCode;
+ @ApiModelProperty("今日视频播放数")
+ private int todayVideo;
@@ -213,6 +213,6 @@
LEFT JOIN yt_risk_template_config rtc ON rt.template_id = rtc.template_id
LEFT JOIN yt_risk_config rc ON rtc.config_id = rc.config_id
WHERE
- rt.template_code = #{templateCode}
+ rt.template_code = #{riskCode}