3 changed files with 541 additions and 0 deletions
-
273xm-core/src/main/java/com/xm/core/ctrl/XmRecordVisitController.java
-
55xm-core/src/main/java/com/xm/core/service/XmRecordVisitService.java
-
213xm-core/src/main/resources/mybatis/mapper/xm/core/dao/XmRecordVisitMapper.xml
@ -0,0 +1,273 @@ |
|||||
|
package com.xm.core.ctrl; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
||||
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
|
import com.mdp.core.entity.Result; |
||||
|
import com.mdp.core.query.QueryTools; |
||||
|
import com.mdp.core.utils.RequestUtils; |
||||
|
import com.mdp.core.utils.ResponseHelper; |
||||
|
import com.mdp.safe.client.entity.User; |
||||
|
import com.mdp.safe.client.utils.LoginUtils; |
||||
|
import com.mdp.swagger.ApiEntityParams; |
||||
|
import com.xm.core.entity.XmBranchStateHis; |
||||
|
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.scheduling.annotation.Scheduled; |
||||
|
import org.springframework.util.StringUtils; |
||||
|
import org.springframework.web.bind.annotation.*; |
||||
|
import springfox.documentation.annotations.ApiIgnore; |
||||
|
|
||||
|
import java.util.ArrayList; |
||||
|
import java.util.Date; |
||||
|
import java.util.List; |
||||
|
import java.util.Map; |
||||
|
|
||||
|
import static com.mdp.core.utils.BaseUtils.toMap; |
||||
|
|
||||
|
/** |
||||
|
* url编制采用rest风格,如对xm_record_visit 重要页面访问记录的操作有增删改查,对应的url分别为:<br> |
||||
|
* 组织 com 顶级模块 xm 大模块 core 小模块 <br> |
||||
|
* 实体 XmRecordVisit 表 xm_record_visit 当前主键(包括多主键): id; |
||||
|
***/ |
||||
|
@RestController("xm.core.xmRecordVisitController") |
||||
|
@RequestMapping(value="/**/core/xmRecordVisit") |
||||
|
@Api(tags={"重要页面访问记录操作接口"}) |
||||
|
public class XmRecordVisitController { |
||||
|
|
||||
|
static Logger logger =LoggerFactory.getLogger(XmRecordVisitController.class); |
||||
|
|
||||
|
@Autowired |
||||
|
private XmRecordVisitService xmRecordVisitService; |
||||
|
|
||||
|
List<XmRecordVisit> datas=new ArrayList<>(); |
||||
|
|
||||
|
|
||||
|
Map<String,Object> fieldsMap = toMap(new XmRecordVisit()); |
||||
|
|
||||
|
|
||||
|
@ApiOperation( value = "查询重要页面访问记录信息列表",notes=" ") |
||||
|
@ApiEntityParams( XmRecordVisit.class ) |
||||
|
@ApiImplicitParams({ |
||||
|
@ApiImplicitParam(name="pageSize",value="每页大小,默认20条",required=false), |
||||
|
@ApiImplicitParam(name="pageNum",value="当前页码,从1开始",required=false), |
||||
|
@ApiImplicitParam(name="total",value="总记录数,服务器端收到0时,会自动计算总记录数,如果上传>0的不自动计算",required=false), |
||||
|
@ApiImplicitParam(name="count",value="是否计算总记录条数,如果count=true,则计算计算总条数,如果count=false 则不计算",required=false), |
||||
|
@ApiImplicitParam(name="orderBy",value="排序列 如性别、学生编号排序 orderBy = sex desc,student desc",required=false), |
||||
|
}) |
||||
|
@ApiResponses({ |
||||
|
@ApiResponse(code = 200,response=XmRecordVisit.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'错误码'},total:总记录数,data:[数据对象1,数据对象2,...]}") |
||||
|
}) |
||||
|
@RequestMapping(value="/list",method=RequestMethod.GET) |
||||
|
public Result listXmRecordVisit(@ApiIgnore @RequestParam Map<String,Object> params){ |
||||
|
|
||||
|
|
||||
|
RequestUtils.transformArray(params, "ids"); |
||||
|
IPage page=QueryTools.initPage(params); |
||||
|
QueryWrapper<XmBranchStateHis> qw = QueryTools.initQueryWrapper(XmBranchStateHis.class , params); |
||||
|
List<Map<String,Object>> datas = xmRecordVisitService.selectListMapByWhere(page,qw,params); |
||||
|
return Result.ok("query-ok","查询成功").setData(datas).setTotal(page.getTotal()); //列出XmRecordVisit列表 |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
@ApiOperation( value = "新增一条重要页面访问记录信息",notes=" ") |
||||
|
@ApiResponses({ |
||||
|
@ApiResponse(code = 200,response=XmRecordVisit.class,message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") |
||||
|
}) |
||||
|
@RequestMapping(value="/add",method=RequestMethod.POST) |
||||
|
public Result addXmRecordVisit(@RequestBody XmRecordVisit xmRecordVisit) { |
||||
|
|
||||
|
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){ |
||||
|
List<XmRecordVisit> newDatas=new ArrayList<>(); |
||||
|
newDatas.addAll(this.datas); |
||||
|
this.datas.clear(); |
||||
|
xmRecordVisitService.batchAddAndCalc(newDatas); |
||||
|
|
||||
|
} |
||||
|
// |
||||
|
return Result.ok(); |
||||
|
|
||||
|
} |
||||
|
|
||||
|
@Scheduled(cron = "0 0 */3 * * ?") |
||||
|
public void batchAddAndCalc(){ |
||||
|
if(this.datas.size()>0){ |
||||
|
List<XmRecordVisit> newDatas=new ArrayList<>(); |
||||
|
newDatas.addAll(this.datas); |
||||
|
this.datas.clear(); |
||||
|
xmRecordVisitService.batchAddAndCalc(newDatas); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
/** |
||||
|
@ApiOperation( value = "删除一条重要页面访问记录信息",notes=" ") |
||||
|
@ApiResponses({ |
||||
|
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}}") |
||||
|
}) |
||||
|
@RequestMapping(value="/del",method=RequestMethod.POST) |
||||
|
public Result delXmRecordVisit(@RequestBody XmRecordVisit xmRecordVisit){ |
||||
|
|
||||
|
if(!StringUtils.hasText(xmRecordVisit.getId())) { |
||||
|
return Result.error("pk-not-exists","请上送主键参数id"); |
||||
|
} |
||||
|
XmRecordVisit xmRecordVisitDb = xmRecordVisitService.selectOneObject(xmRecordVisit); |
||||
|
if( xmRecordVisitDb == null ){ |
||||
|
return Result.error("data-not-exists","数据不存在,无法删除"); |
||||
|
} |
||||
|
xmRecordVisitService.deleteByPk(xmRecordVisit); |
||||
|
return Result.ok(); |
||||
|
|
||||
|
} |
||||
|
*/ |
||||
|
|
||||
|
/** |
||||
|
@ApiOperation( value = "根据主键修改一条重要页面访问记录信息",notes=" ") |
||||
|
@ApiResponses({ |
||||
|
@ApiResponse(code = 200,response=XmRecordVisit.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") |
||||
|
}) |
||||
|
@RequestMapping(value="/edit",method=RequestMethod.POST) |
||||
|
public Result editXmRecordVisit(@RequestBody XmRecordVisit xmRecordVisit) { |
||||
|
|
||||
|
if(!StringUtils.hasText(xmRecordVisit.getId())) { |
||||
|
return Result.error("pk-not-exists","请上送主键参数id"); |
||||
|
} |
||||
|
XmRecordVisit xmRecordVisitDb = xmRecordVisitService.selectOneObject(xmRecordVisit); |
||||
|
if( xmRecordVisitDb == null ){ |
||||
|
return Result.error("data-not-exists","数据不存在,无法修改"); |
||||
|
} |
||||
|
xmRecordVisitService.updateSomeFieldByPk(xmRecordVisit); |
||||
|
|
||||
|
} |
||||
|
*/ |
||||
|
|
||||
|
/** |
||||
|
@ApiOperation( value = "批量修改某些字段",notes="") |
||||
|
@ApiEntityParams( value = XmRecordVisit.class, props={ }, remark = "重要页面访问记录", paramType = "body" ) |
||||
|
@ApiResponses({ |
||||
|
@ApiResponse(code = 200,response=XmRecordVisit.class, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'},data:数据对象}") |
||||
|
}) |
||||
|
@RequestMapping(value="/editSomeFields",method=RequestMethod.POST) |
||||
|
public Result editSomeFields( @ApiIgnore @RequestBody Map<String,Object> xmRecordVisitMap) { |
||||
|
|
||||
|
List<String> ids= (List<String>) xmRecordVisitMap.get("ids"); |
||||
|
if(ids==null || ids.size()==0){ |
||||
|
return Result.error("ids-0","ids不能为空"); |
||||
|
} |
||||
|
|
||||
|
Set<String> fields=new HashSet<>(); |
||||
|
fields.add("id"); |
||||
|
for (String fieldName : xmRecordVisitMap.keySet()) { |
||||
|
if(fields.contains(fieldName)){ |
||||
|
return Result.error(fieldName+"-no-edit",fieldName+"不允许修改"); |
||||
|
} |
||||
|
} |
||||
|
Set<String> fieldKey=xmRecordVisitMap.keySet().stream().filter(i-> fieldsMap.containsKey(i)).collect(Collectors.toSet()); |
||||
|
fieldKey=fieldKey.stream().filter(i->!StringUtils.isEmpty(xmRecordVisitMap.get(i) )).collect(Collectors.toSet()); |
||||
|
|
||||
|
if(fieldKey.size()<=0) { |
||||
|
return Result.error("fieldKey-0","没有需要更新的字段"); |
||||
|
} |
||||
|
XmRecordVisit xmRecordVisit = fromMap(xmRecordVisitMap,XmRecordVisit.class); |
||||
|
List<XmRecordVisit> xmRecordVisitsDb=xmRecordVisitService.selectListByIds(ids); |
||||
|
if(xmRecordVisitsDb==null ||xmRecordVisitsDb.size()==0){ |
||||
|
return Result.error("data-0","记录已不存在"); |
||||
|
} |
||||
|
List<XmRecordVisit> can=new ArrayList<>(); |
||||
|
List<XmRecordVisit> no=new ArrayList<>(); |
||||
|
User user = LoginUtils.getCurrentUserInfo(); |
||||
|
for (XmRecordVisit xmRecordVisitDb : xmRecordVisitsDb) { |
||||
|
Tips tips2 = new Tips("检查通过"); |
||||
|
if(!tips2.isOk()){ |
||||
|
no.add(xmRecordVisitDb); |
||||
|
}else{ |
||||
|
can.add(xmRecordVisitDb); |
||||
|
} |
||||
|
} |
||||
|
if(can.size()>0){ |
||||
|
xmRecordVisitMap.put("ids",can.stream().map(i->i.getId()).collect(Collectors.toList())); |
||||
|
xmRecordVisitService.editSomeFields(xmRecordVisitMap); |
||||
|
} |
||||
|
List<String> msgs=new ArrayList<>(); |
||||
|
if(can.size()>0){ |
||||
|
msgs.add(String.format("成功更新以下%s条数据",can.size())); |
||||
|
} |
||||
|
if(no.size()>0){ |
||||
|
msgs.add(String.format("以下%s个数据无权限更新",no.size())); |
||||
|
} |
||||
|
if(can.size()>0){ |
||||
|
return Result.ok(msgs.stream().collect(Collectors.joining())); |
||||
|
}else { |
||||
|
return Result.error(msgs.stream().collect(Collectors.joining())); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
*/ |
||||
|
|
||||
|
/** |
||||
|
@ApiOperation( value = "根据主键列表批量删除重要页面访问记录信息",notes=" ") |
||||
|
@ApiResponses({ |
||||
|
@ApiResponse(code = 200, message = "{tips:{isOk:true/false,msg:'成功/失败原因',tipscode:'失败时错误码'}") |
||||
|
}) |
||||
|
@RequestMapping(value="/batchDel",method=RequestMethod.POST) |
||||
|
public Result batchDelXmRecordVisit(@RequestBody List<XmRecordVisit> xmRecordVisits) { |
||||
|
|
||||
|
|
||||
|
|
||||
|
if(xmRecordVisits.size()<=0){ |
||||
|
return Result.error("data-0","请上送待删除数据列表"); |
||||
|
} |
||||
|
List<XmRecordVisit> datasDb=xmRecordVisitService.selectListByIds(xmRecordVisits.stream().map(i-> i.getId() ).collect(Collectors.toList())); |
||||
|
|
||||
|
List<XmRecordVisit> can=new ArrayList<>(); |
||||
|
List<XmRecordVisit> no=new ArrayList<>(); |
||||
|
for (XmRecordVisit data : datasDb) { |
||||
|
if(true){ |
||||
|
can.add(data); |
||||
|
}else{ |
||||
|
no.add(data); |
||||
|
} |
||||
|
} |
||||
|
List<String> msgs=new ArrayList<>(); |
||||
|
if(can.size()>0){ |
||||
|
xmRecordVisitService.batchDelete(can); |
||||
|
msgs.add(String.format("成功删除%s条数据.",can.size())); |
||||
|
} |
||||
|
|
||||
|
if(no.size()>0){ |
||||
|
msgs.add(String.format("以下%s条数据不能删除.【%s】",no.size(),no.stream().map(i-> i.getId() ).collect(Collectors.joining(",")))); |
||||
|
} |
||||
|
if(can.size()>0){ |
||||
|
return Result.ok(msgs.stream().collect(Collectors.joining())); |
||||
|
}else { |
||||
|
return Result.error(msgs.stream().collect(Collectors.joining())); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
*/ |
||||
|
} |
||||
@ -0,0 +1,55 @@ |
|||||
|
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 org.springframework.stereotype.Service; |
||||
|
|
||||
|
import java.util.*; |
||||
|
|
||||
|
/** |
||||
|
* 父类已经支持增删改查操作,因此,即使本类什么也不写,也已经可以满足一般的增删改查操作了.<br> |
||||
|
* 组织 com 顶级模块 xm 大模块 core 小模块 <br> |
||||
|
* 实体 XmRecordVisit 表 xm_record_visit 当前主键(包括多主键): id; |
||||
|
***/ |
||||
|
@Service("xm.core.xmRecordVisitService") |
||||
|
public class XmRecordVisitService extends BaseService<XmRecordVisitMapper,XmRecordVisit> { |
||||
|
static Logger logger =LoggerFactory.getLogger(XmRecordVisitService.class); |
||||
|
|
||||
|
public void batchAddAndCalc(List<XmRecordVisit> datas) { |
||||
|
Map<String, Integer> timesMap=new HashMap<>(); |
||||
|
Map<String,Set<String> > usersMap=new HashMap<>(); |
||||
|
for (XmRecordVisit data : datas) { |
||||
|
String key=data.getBizId(); |
||||
|
Set<String> 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<Map<String,Object>> datasToUpdate=new ArrayList<>(); |
||||
|
for (String key : timesMap.keySet()) { |
||||
|
Map<String,Object> 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); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
@ -0,0 +1,213 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
||||
|
<mapper namespace="com.xm.core.entity.XmRecordVisit"> |
||||
|
|
||||
|
|
||||
|
<!--开始 自定sql函数区域 请在此区域添加自定义函数,其它区域尽量不要动,因为代码随时重新生成 --> |
||||
|
|
||||
|
<sql id="whereForMap"> |
||||
|
<if test=" ids != null"> and (res.id) in |
||||
|
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")" > |
||||
|
( #{item}) |
||||
|
</foreach> |
||||
|
</if> |
||||
|
<if test="key != null and key !='' "> </if> |
||||
|
</sql> |
||||
|
|
||||
|
<update id="updateTaskBrowseTimesAndBrowseUsers" parameterType="List"> |
||||
|
<foreach collection="list" item="item" index="index" separator=";" > |
||||
|
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} |
||||
|
</foreach> |
||||
|
</update> |
||||
|
<!--结束 自定义sql函数区域--> |
||||
|
|
||||
|
|
||||
|
|
||||
|
<!-- 通过条件查询获取数据列表 返回list<map> --> |
||||
|
<select id="selectListMapByWhere" parameterType="HashMap" resultType="HashMap"> |
||||
|
select * from xm_record_visit res |
||||
|
<where> |
||||
|
<include refid="whereForMap"/> |
||||
|
<include refid="where"/> |
||||
|
</where> |
||||
|
</select> |
||||
|
|
||||
|
<!-- 通过条件查询获取数据列表 不分页 返回 list<Object> --> |
||||
|
<select id="selectListByWhere" parameterType="com.xm.core.entity.XmRecordVisit" resultType="com.xm.core.entity.XmRecordVisit"> |
||||
|
select * from xm_record_visit res |
||||
|
<where> |
||||
|
<include refid="where"/> |
||||
|
</where> |
||||
|
</select> |
||||
|
|
||||
|
<!-- 通过主键查询获取数据对象 返回object --> |
||||
|
<select id="selectOneObject" parameterType="com.xm.core.entity.XmRecordVisit" resultType="com.xm.core.entity.XmRecordVisit"> |
||||
|
select * from xm_record_visit res |
||||
|
where |
||||
|
res.id = #{id} |
||||
|
</select> |
||||
|
<select id="selectListByIds" parameterType="List" resultType="com.xm.core.entity.XmRecordVisit"> |
||||
|
select * from xm_record_visit res |
||||
|
where (res.id) in |
||||
|
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" > |
||||
|
( #{item}) |
||||
|
</foreach> |
||||
|
</select> |
||||
|
<!-- 通过主键查询获取数据对象 返回map--> |
||||
|
<select id="selectOneMap" parameterType="HashMap" resultType="HashMap"> |
||||
|
select * from xm_record_visit res |
||||
|
where |
||||
|
res.id = #{id} |
||||
|
</select> |
||||
|
<!-- 获取数据条目 返回long --> |
||||
|
<select id="countByWhere" parameterType="com.xm.core.entity.XmRecordVisit" resultType="long"> |
||||
|
select count(*) from xm_record_visit res |
||||
|
<where> |
||||
|
<include refid="where"/> |
||||
|
</where> |
||||
|
</select> |
||||
|
<!-- 新增一条记录 主键id,--> |
||||
|
<insert id="insert" parameterType="com.xm.core.entity.XmRecordVisit" useGeneratedKeys="false" keyProperty="id"> |
||||
|
insert into xm_record_visit( |
||||
|
<include refid="columns"/> |
||||
|
) values ( |
||||
|
#{id},#{operUserid},#{operUsername},#{operTime},#{objType},#{action},#{remarks},#{gloNo},#{branchId},#{ip},#{bizId},#{pbizId},#{bizName} |
||||
|
) |
||||
|
</insert> |
||||
|
|
||||
|
<!-- 按条件删除若干条记录--> |
||||
|
<delete id="deleteByWhere" parameterType="com.xm.core.entity.XmRecordVisit"> |
||||
|
delete from xm_record_visit res |
||||
|
<where> |
||||
|
<include refid="where"/> |
||||
|
</where> |
||||
|
</delete> |
||||
|
|
||||
|
<!-- 按主键删除一条记录--> |
||||
|
<delete id="deleteByPk" parameterType="com.xm.core.entity.XmRecordVisit"> |
||||
|
delete from xm_record_visit |
||||
|
where id = #{id} |
||||
|
</delete> |
||||
|
|
||||
|
<!-- 根据条件修改若干条记录 --> |
||||
|
<update id="updateSomeFieldByPk" parameterType="com.xm.core.entity.XmRecordVisit"> |
||||
|
update xm_record_visit |
||||
|
<set> |
||||
|
<include refid="someFieldSet"/> |
||||
|
</set> |
||||
|
where id = #{id} |
||||
|
</update> |
||||
|
|
||||
|
<!-- 根据主键修改一条记录 --> |
||||
|
<update id="updateByPk" parameterType="com.xm.core.entity.XmRecordVisit"> |
||||
|
update xm_record_visit |
||||
|
<set> |
||||
|
<include refid="set"/> |
||||
|
</set> |
||||
|
where id = #{id} |
||||
|
</update> |
||||
|
|
||||
|
<!-- 批量新增 批量插入 借用insert 循环插入实现 |
||||
|
<insert id="batchInsert" parameterType="List"> |
||||
|
</insert> |
||||
|
--> |
||||
|
|
||||
|
<!-- 批量更新 --> |
||||
|
<update id="batchUpdate" parameterType="List"> |
||||
|
<foreach collection="list" item="item" index="index" separator=";" > |
||||
|
update xm_record_visit |
||||
|
set |
||||
|
<include refid="batchSet"/> |
||||
|
where id = #{item.id} |
||||
|
</foreach> |
||||
|
</update> |
||||
|
|
||||
|
<!-- 批量修改某几个字段 --> |
||||
|
<delete id="editSomeFields" parameterType="HashMap"> |
||||
|
update xm_record_visit |
||||
|
<set> |
||||
|
<include refid="someFieldSet"/> |
||||
|
</set> |
||||
|
where (id) in |
||||
|
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")" > |
||||
|
( #{item}) |
||||
|
</foreach> |
||||
|
</delete> |
||||
|
<!-- 批量删除 --> |
||||
|
<delete id="batchDelete" parameterType="List"> |
||||
|
delete from xm_record_visit |
||||
|
where |
||||
|
(id) in |
||||
|
<foreach collection="list" item="item" index="index" open="(" separator="," close=")" > |
||||
|
( #{item.id} ) |
||||
|
</foreach> |
||||
|
</delete> |
||||
|
|
||||
|
|
||||
|
<!--sql片段 列--> |
||||
|
<sql id="columns"> |
||||
|
id,oper_userid,oper_username,oper_time,obj_type,action,remarks,glo_no,branch_id,ip,biz_id,pbiz_id,biz_name |
||||
|
</sql> |
||||
|
|
||||
|
<!--sql片段 动态条件 YYYY-MM-DD HH24:MI:SS--> |
||||
|
<sql id="where"> |
||||
|
<if test="id != null and id != ''"> and res.id = #{id} </if> |
||||
|
<if test="operUserid != null and operUserid != ''"> and res.oper_userid = #{operUserid} </if> |
||||
|
<if test="operUsername != null and operUsername != ''"> and res.oper_username = #{operUsername} </if> |
||||
|
<if test="operTime != null"> and date_format(res.oper_time,'%Y-%m-%d') = date_format(#{operTime},'%Y-%m-%d') </if> |
||||
|
<if test="objType != null and objType != ''"> and res.obj_type = #{objType} </if> |
||||
|
<if test="action != null and action != ''"> and res.action = #{action} </if> |
||||
|
<if test="remarks != null and remarks != ''"> and res.remarks = #{remarks} </if> |
||||
|
<if test="gloNo != null and gloNo != ''"> and res.glo_no = #{gloNo} </if> |
||||
|
<if test="branchId != null and branchId != ''"> and res.branch_id = #{branchId} </if> |
||||
|
<if test="ip != null and ip != ''"> and res.ip = #{ip} </if> |
||||
|
<if test="bizId != null and bizId != ''"> and res.biz_id = #{bizId} </if> |
||||
|
<if test="pbizId != null and pbizId != ''"> and res.pbiz_id = #{pbizId} </if> |
||||
|
<if test="bizName != null and bizName != ''"> and res.biz_name = #{bizName} </if> |
||||
|
</sql> |
||||
|
<!--sql片段 更新字段 --> |
||||
|
<sql id="set"> |
||||
|
oper_userid = #{operUserid}, |
||||
|
oper_username = #{operUsername}, |
||||
|
oper_time = #{operTime}, |
||||
|
obj_type = #{objType}, |
||||
|
action = #{action}, |
||||
|
remarks = #{remarks}, |
||||
|
glo_no = #{gloNo}, |
||||
|
branch_id = #{branchId}, |
||||
|
ip = #{ip}, |
||||
|
biz_id = #{bizId}, |
||||
|
pbiz_id = #{pbizId}, |
||||
|
biz_name = #{bizName} |
||||
|
</sql> |
||||
|
<sql id="someFieldSet"> |
||||
|
<if test="operUserid != null and operUserid != ''"> oper_userid = #{operUserid}, </if> |
||||
|
<if test="operUsername != null and operUsername != ''"> oper_username = #{operUsername}, </if> |
||||
|
<if test="operTime != null"> oper_time = #{operTime}, </if> |
||||
|
<if test="objType != null and objType != ''"> obj_type = #{objType}, </if> |
||||
|
<if test="action != null and action != ''"> action = #{action}, </if> |
||||
|
<if test="remarks != null and remarks != ''"> remarks = #{remarks}, </if> |
||||
|
<if test="gloNo != null and gloNo != ''"> glo_no = #{gloNo}, </if> |
||||
|
<if test="branchId != null and branchId != ''"> branch_id = #{branchId}, </if> |
||||
|
<if test="ip != null and ip != ''"> ip = #{ip}, </if> |
||||
|
<if test="bizId != null and bizId != ''"> biz_id = #{bizId}, </if> |
||||
|
<if test="pbizId != null and pbizId != ''"> pbiz_id = #{pbizId}, </if> |
||||
|
<if test="bizName != null and bizName != ''"> biz_name = #{bizName}, </if> |
||||
|
</sql> |
||||
|
<!--sql片段 批量更新 --> |
||||
|
<sql id="batchSet"> |
||||
|
oper_userid = #{item.operUserid}, |
||||
|
oper_username = #{item.operUsername}, |
||||
|
oper_time = #{item.operTime}, |
||||
|
obj_type = #{item.objType}, |
||||
|
action = #{item.action}, |
||||
|
remarks = #{item.remarks}, |
||||
|
glo_no = #{item.gloNo}, |
||||
|
branch_id = #{item.branchId}, |
||||
|
ip = #{item.ip}, |
||||
|
biz_id = #{item.bizId}, |
||||
|
pbiz_id = #{item.pbizId}, |
||||
|
biz_name = #{item.bizName} |
||||
|
</sql> |
||||
|
</mapper> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue