MrShi
5 天以前 4fabfe4dbd2eb28d07a4350597d314958cc1c281
server/services/src/main/java/com/doumee/service/business/impl/ActionLogServiceImpl.java
@@ -1,15 +1,27 @@
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;
@@ -26,6 +38,11 @@
    @Autowired
    private ActionLogMapper actionLogMapper;
    @Autowired
    private ActionLogJoinMapper actionLogJoinMapper;
    @Override
    public String create(ActionLog actionLog) {
@@ -75,7 +92,7 @@
    @Override
    public ActionLog findOne(ActionLog actionLog) {
        QueryWrapper<ActionLog> wrapper = new QueryWrapper<>(actionLog);
        return actionLogMapper.selectOne(wrapper);
        return actionLogMapper.selectOne(wrapper.last(" limit 1"));
    }
    @Override
@@ -83,82 +100,83 @@
        QueryWrapper<ActionLog> wrapper = new QueryWrapper<>(actionLog);
        return actionLogMapper.selectList(wrapper);
    }
    @Override
    public PageData<ActionLog> findPage(PageWrap<ActionLog> pageWrap) {
        IPage<ActionLog> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<ActionLog> queryWrapper = new QueryWrapper<>();
        IPage<MemberRides> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<ActionLog> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(ActionLog::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(ActionLog::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(ActionLog::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(ActionLog::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(ActionLog::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(ActionLog::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(ActionLog::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(ActionLog::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getInfo() != null) {
            queryWrapper.lambda().eq(ActionLog::getInfo, pageWrap.getModel().getInfo());
        }
        if (pageWrap.getModel().getTitle() != null) {
            queryWrapper.lambda().eq(ActionLog::getTitle, pageWrap.getModel().getTitle());
        }
        if (pageWrap.getModel().getContent() != null) {
            queryWrapper.lambda().eq(ActionLog::getContent, pageWrap.getModel().getContent());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(ActionLog::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getObjId() != null) {
            queryWrapper.lambda().eq(ActionLog::getObjId, pageWrap.getModel().getObjId());
        }
        if (pageWrap.getModel().getObjType() != null) {
            queryWrapper.lambda().eq(ActionLog::getObjType, pageWrap.getModel().getObjType());
        }
        if (pageWrap.getModel().getUserId() != null) {
            queryWrapper.lambda().eq(ActionLog::getUserId, pageWrap.getModel().getUserId());
        }
        if (pageWrap.getModel().getUserType() != null) {
            queryWrapper.lambda().eq(ActionLog::getUserType, pageWrap.getModel().getUserType());
        }
        if (pageWrap.getModel().getBeforeContent() != null) {
            queryWrapper.lambda().eq(ActionLog::getBeforeContent, pageWrap.getModel().getBeforeContent());
        }
        if (pageWrap.getModel().getAfterContent() != null) {
            queryWrapper.lambda().eq(ActionLog::getAfterContent, pageWrap.getModel().getAfterContent());
        }
        if (pageWrap.getModel().getParam() != null) {
            queryWrapper.lambda().eq(ActionLog::getParam, pageWrap.getModel().getParam());
        }
        if (pageWrap.getModel().getParam2() != null) {
            queryWrapper.lambda().eq(ActionLog::getParam2, pageWrap.getModel().getParam2());
        }
        if (pageWrap.getModel().getParam3() != null) {
            queryWrapper.lambda().eq(ActionLog::getParam3, pageWrap.getModel().getParam3());
        }
        if (pageWrap.getModel().getResult() != null) {
            queryWrapper.lambda().eq(ActionLog::getResult, pageWrap.getModel().getResult());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
        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(actionLogMapper.selectPage(page, queryWrapper));
        return PageData.from(result);
    }
    @Override