| 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<ActionLog> deleteWrapper = new UpdateWrapper<>(actionLog); | 
|         actionLogMapper.delete(deleteWrapper); | 
|     } | 
|   | 
|     @Override | 
|     public void deleteByIdInBatch(List<String> ids) { | 
|         if (CollectionUtils.isEmpty(ids)) { | 
|             return; | 
|         } | 
|         actionLogMapper.deleteBatchIds(ids); | 
|     } | 
|   | 
|     @Override | 
|     public void updateById(ActionLog actionLog) { | 
|         actionLogMapper.updateById(actionLog); | 
|     } | 
|   | 
|     @Override | 
|     public void updateByIdInBatch(List<ActionLog> 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<ActionLog> wrapper = new QueryWrapper<>(actionLog); | 
|         return actionLogMapper.selectOne(wrapper.last(" limit 1")); | 
|     } | 
|   | 
|     @Override | 
|     public List<ActionLog> findList(ActionLog actionLog) { | 
|         QueryWrapper<ActionLog> wrapper = new QueryWrapper<>(actionLog); | 
|         return actionLogMapper.selectList(wrapper); | 
|     } | 
|   | 
|     @Override | 
|     public PageData<ActionLog> findPage(PageWrap<ActionLog> pageWrap) { | 
|   | 
|         IPage<MemberRides> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|   | 
|         MPJLambdaWrapper<ActionLog> 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.like(pageWrap.getModel().getTitle()!=null, ActionLog::getTitle,pageWrap.getModel().getTitle()); | 
|         queryWrapper.like(pageWrap.getModel().getParam()!=null, ActionLog::getParam,pageWrap.getModel().getParam()); | 
|         queryWrapper.like(pageWrap.getModel().getParam2()!=null, ActionLog::getParam2,pageWrap.getModel().getParam2()); | 
|         queryWrapper.like(pageWrap.getModel().getParam3()!=null, ActionLog::getParam3,pageWrap.getModel().getParam3()); | 
|         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<ActionLog> result = actionLogJoinMapper.selectJoinPage(page, ActionLog.class, queryWrapper); | 
|   | 
|   | 
|   | 
|         return PageData.from(result); | 
|     } | 
|     @Override | 
|     public     PageData<ActionLog>  findRidePae(PageWrap<ActionLog> pageWrap){ | 
|   | 
|         IPage<MemberRides> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|   | 
|         MPJLambdaWrapper<ActionLog> 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().getOpenid()),ActionLog::getBeforeContent, pageWrap.getModel().getOpenid() ); | 
|         queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCreatorName()),SystemUser::getRealname, pageWrap.getModel().getCreatorName()); | 
|         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<ActionLog> 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<ActionLog> wrapper = new QueryWrapper<>(actionLog); | 
|         return actionLogMapper.selectCount(wrapper); | 
|     } | 
| } |