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