From 2213be065d68651345353c9b7efe42c754883e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=A3=95=E8=B4=A2?= Date: Sat, 2 Jul 2022 14:23:34 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E3=80=81=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E6=B8=85=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xm/core/ctrl/XmRecordVisitController.java | 74 ++++++++++--------- .../xm/core/service/XmRecordVisitService.java | 47 ++++++++++-- .../xm/core/dao/XmRecordVisitMapper.xml | 7 +- 3 files changed, 87 insertions(+), 41 deletions(-) diff --git a/xm-core/src/main/java/com/xm/core/ctrl/XmRecordVisitController.java b/xm-core/src/main/java/com/xm/core/ctrl/XmRecordVisitController.java index 72610da8..3c326236 100644 --- a/xm-core/src/main/java/com/xm/core/ctrl/XmRecordVisitController.java +++ b/xm-core/src/main/java/com/xm/core/ctrl/XmRecordVisitController.java @@ -1,32 +1,27 @@ package com.xm.core.ctrl; -import java.util.*; -import java.util.stream.Collectors; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.StringUtils; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import io.swagger.annotations.*; - -import static com.mdp.core.utils.ResponseHelper.*; -import static com.mdp.core.utils.BaseUtils.*; import com.mdp.core.entity.Tips; import com.mdp.core.err.BizException; -import com.mdp.mybatis.PageUtils; import com.mdp.core.utils.RequestUtils; -import com.mdp.core.utils.NumberUtil; +import com.mdp.core.utils.ResponseHelper; +import com.mdp.mybatis.PageUtils; import com.mdp.safe.client.entity.User; import com.mdp.safe.client.utils.LoginUtils; import com.mdp.swagger.ApiEntityParams; +import com.xm.core.entity.XmRecordVisit; +import com.xm.core.service.XmRecordVisitService; +import io.swagger.annotations.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; +import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; -import com.xm.core.service.XmRecordVisitService; -import com.xm.core.entity.XmRecordVisit; +import java.util.*; + +import static com.mdp.core.utils.BaseUtils.toMap; /** * url编制采用rest风格,如对xm_record_visit 重要页面访问记录的操作有增删改查,对应的url分别为:
@@ -42,6 +37,8 @@ public class XmRecordVisitController { @Autowired private XmRecordVisitService xmRecordVisitService; + + List datas=new ArrayList<>(); Map fieldsMap = toMap(new XmRecordVisit()); @@ -74,8 +71,7 @@ public class XmRecordVisitController { } - - /** + @ApiOperation( value = "新增一条重要页面访问记录信息",notes=" ") @ApiResponses({ @ApiResponse(code = 200,response=XmRecordVisit.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") @@ -85,19 +81,31 @@ public class XmRecordVisitController { Map m = new HashMap<>(); Tips tips=new Tips("成功新增一条数据"); try{ - boolean createPk=false; - if(!StringUtils.hasText(xmRecordVisit.getId())) { - createPk=true; - xmRecordVisit.setId(xmRecordVisitService.createKey("id")); + if(!StringUtils.hasText(xmRecordVisit.getBizId())){ + return ResponseHelper.failed("bizId-0","bizId不能为空"); + } + if(!StringUtils.hasText(xmRecordVisit.getPbizId())){ + return ResponseHelper.failed("pbizId-0","pbizId不能为空"); + } + if(!StringUtils.hasText(xmRecordVisit.getObjType())){ + return ResponseHelper.failed("objType-0","objType不能为空"); + } + User user= LoginUtils.getCurrentUserInfo(); + xmRecordVisit.setId(this.xmRecordVisitService.createKey("id")); + xmRecordVisit.setGloNo(MDC.get("gloNo")); + xmRecordVisit.setOperTime(new Date()); + xmRecordVisit.setOperUserid(user.getUserid()); + xmRecordVisit.setOperUsername(user.getUsername()); + xmRecordVisit.setBranchId(user.getBranchId()); + xmRecordVisit.setIp(RequestUtils.getIpAddr(RequestUtils.getRequest())); + + this.datas.add(xmRecordVisit); + if(this.datas.size()>100){ + xmRecordVisitService.batchAddAndCalc(this.datas); + this.datas.clear(); } - if(createPk==false){ - if(xmRecordVisitService.selectOneObject(xmRecordVisit) !=null ){ - return failed("pk-exists","编号重复,请修改编号再提交"); - } - } - xmRecordVisitService.insert(xmRecordVisit); m.put("data",xmRecordVisit); - }catch (BizException e) { + }catch (BizException e) { tips=e.getTips(); logger.error("",e); }catch (Exception e) { @@ -107,7 +115,7 @@ public class XmRecordVisitController { m.put("tips", tips); return m; } - */ + /** @ApiOperation( value = "删除一条重要页面访问记录信息",notes=" ") diff --git a/xm-core/src/main/java/com/xm/core/service/XmRecordVisitService.java b/xm-core/src/main/java/com/xm/core/service/XmRecordVisitService.java index 690ccc9e..62326d0f 100644 --- a/xm-core/src/main/java/com/xm/core/service/XmRecordVisitService.java +++ b/xm-core/src/main/java/com/xm/core/service/XmRecordVisitService.java @@ -1,16 +1,14 @@ package com.xm.core.service; +import com.mdp.core.service.BaseService; +import com.xm.core.entity.XmRecordVisit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.List; -import java.util.Map; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.mdp.core.service.BaseService; -import static com.mdp.core.utils.BaseUtils.*; -import com.mdp.core.entity.Tips; -import com.mdp.core.err.BizException; -import com.xm.core.entity.XmRecordVisit; +import java.util.*; + /** * 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.
* 组织 com 顶级模块 xm 大模块 core 小模块
@@ -20,5 +18,40 @@ import com.xm.core.entity.XmRecordVisit; public class XmRecordVisitService extends BaseService { static Logger logger =LoggerFactory.getLogger(XmRecordVisitService.class); + @Autowired + public void batchAddAndCalc(List datas) { + Map timesMap=new HashMap<>(); + Map > usersMap=new HashMap<>(); + for (XmRecordVisit data : datas) { + String key=data.getBizId(); + Set users=usersMap.get(key); + if(users==null){ + users=new HashSet<>(); + } + users.add(data.getOperUserid()); + usersMap.put(key,users); + } + for (XmRecordVisit data : datas) { + String key=data.getBizId(); + Integer times=timesMap.get(key); + if(times==null){ + times=0; + } + times=times+1; + timesMap.put(key,times); + } + List> datasToUpdate=new ArrayList<>(); + for (String key : timesMap.keySet()) { + Map data=new HashMap<>(); + data.put("id",key); + data.put("browseTimes",timesMap.get(key)); + data.put("browseUsers",usersMap.get(key).size()); + datasToUpdate.add(data); + } + this.batchInsert(datas); + if(datasToUpdate.size()>0){ + this.update("updateTaskBrowseTimesAndBrowseUsers",datasToUpdate); + } + } } diff --git a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmRecordVisitMapper.xml b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmRecordVisitMapper.xml index 1667f4f7..634c902b 100644 --- a/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmRecordVisitMapper.xml +++ b/xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmRecordVisitMapper.xml @@ -14,7 +14,12 @@ - + + + update xm_task t set t.browse_users=ifnull(t.browse_users,0)+#{item.browseUsers},t.browse_times=ifnull(t.browse_times,0)+#{item.browseTimes} + where t.id=#{item.id} + +