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.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);
|
}
|
}
|