package com.doumee.service.business.impl; import cn.binarywang.wx.miniapp.api.WxMaService; import com.alibaba.fastjson.JSONObject; import com.doumee.core.constants.Constants; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.ActionLogMapper; import com.doumee.dao.business.join.ActionLogJoinMapper; import com.doumee.dao.business.model.ActionLog; import com.doumee.dao.business.model.BaseParam; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.MemberRides; import com.doumee.dao.business.web.response.BikeLogDTO; import com.doumee.dao.business.web.response.MemberRidesDTO; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.ActionLogService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; /** * 系统行为操作记录表Service实现 * @author 江蹄蹄 * @date 2023/09/27 18:06 */ @Service public class ActionLogServiceImpl implements ActionLogService { @Autowired private ActionLogMapper actionLogMapper; @Autowired private ActionLogJoinMapper actionLogJoinMapper; @Override public String create(ActionLog actionLog) { actionLogMapper.insert(actionLog); return actionLog.getId(); } @Override public void deleteById(String id) { actionLogMapper.deleteById(id); } @Override public void delete(ActionLog actionLog) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(actionLog); actionLogMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } actionLogMapper.deleteBatchIds(ids); } @Override public void updateById(ActionLog actionLog) { actionLogMapper.updateById(actionLog); } @Override public void updateByIdInBatch(List actionLogs) { if (CollectionUtils.isEmpty(actionLogs)) { return; } for (ActionLog actionLog: actionLogs) { this.updateById(actionLog); } } @Override public ActionLog findById(String id) { return actionLogMapper.selectById(id); } @Override public ActionLog findOne(ActionLog actionLog) { QueryWrapper wrapper = new QueryWrapper<>(actionLog); return actionLogMapper.selectOne(wrapper.last(" limit 1")); } @Override public List findList(ActionLog actionLog) { QueryWrapper wrapper = new QueryWrapper<>(actionLog); return actionLogMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.orderByDesc(ActionLog::getCreateDate); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,ActionLog::getUserId); queryWrapper.eq(ActionLog::getIsdeleted, Constants.ZERO); queryWrapper.ge(pageWrap.getModel().getStartDate()!=null, ActionLog::getCreateDate,pageWrap.getModel().getStartDate()); queryWrapper.le(pageWrap.getModel().getEndDate()!=null, ActionLog::getCreateDate,pageWrap.getModel().getEndDate()); queryWrapper.eq(pageWrap.getModel().getCreator()!=null, ActionLog::getCreator,pageWrap.getModel().getCreator()); queryWrapper.in(pageWrap.getModel().getTypeList()!=null && pageWrap.getModel().getTypeList().size()>0, ActionLog::getType,pageWrap.getModel().getTypeList()); queryWrapper.selectAll(ActionLog.class) .selectAs(SystemUser::getNickname,ActionLog::getCreator); IPage result = actionLogJoinMapper.selectJoinPage(page, ActionLog.class, queryWrapper); return PageData.from(result); } @Override public PageData findRidePae(PageWrap pageWrap){ IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.orderByDesc(ActionLog::getCreateDate); queryWrapper.leftJoin(SystemUser.class,SystemUser::getId,ActionLog::getUserId); queryWrapper.leftJoin(MemberRides.class,MemberRides::getMemberId,ActionLog::getObjId); queryWrapper.leftJoin(Member.class,Member::getId,MemberRides::getMemberId); queryWrapper.eq(ActionLog::getIsdeleted, Constants.ZERO); queryWrapper.ge(pageWrap.getModel().getStartDate()!=null, ActionLog::getCreateDate,pageWrap.getModel().getStartDate()); queryWrapper.le(pageWrap.getModel().getEndDate()!=null, ActionLog::getCreateDate,pageWrap.getModel().getEndDate()); queryWrapper.eq(pageWrap.getModel().getCreator()!=null, ActionLog::getCreator,pageWrap.getModel().getCreator()); queryWrapper.in(pageWrap.getModel().getTypeList()!=null && pageWrap.getModel().getTypeList().size()>0, ActionLog::getType,pageWrap.getModel().getTypeList()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getBikeCode()),ActionLog::getBeforeContent,"%"+pageWrap.getModel().getBikeCode()+"%"); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getBikeCode()),ActionLog::getBeforeContent,"%"+pageWrap.getModel().getOpenid()+"%"); queryWrapper.eq(ActionLog::getObjType,Constants.ActionLogObjType.memberrides); queryWrapper .selectAll(ActionLog.class) .selectAs(SystemUser::getRealname,ActionLog::getCreatorName) .selectAs(Member::getOpenid,ActionLog::getOpenid) .selectAs(MemberRides::getBikeCode,ActionLog::getBikeCode) .selectAs(MemberRides::getRentSiteId,ActionLog::getRentSiteId) .selectAs(MemberRides::getRentDate,ActionLog::getRentDate); IPage result = actionLogJoinMapper.selectJoinPage(page, ActionLog.class, queryWrapper); if(result !=null && result.getRecords()!=null){ for (int i = 0; i < result.getRecords().size(); i++) { ActionLog log = result.getRecords().get(i); if(Constants.formatIntegerNum(log.getObjType())== Constants.ActionLogObjType.memberrides){ //如果是骑行记录关联对象,则使用beforeContent MemberRides memberRides = new MemberRides(); try { //强制转换骑行记录对象 memberRides = JSONObject.parseObject(log.getBeforeContent(), MemberRides.class); }catch (Exception e){ } log.setRidesObj(memberRides); } } } return PageData.from(result); } @Override public long count(ActionLog actionLog) { QueryWrapper wrapper = new QueryWrapper<>(actionLog); return actionLogMapper.selectCount(wrapper); } }