111
k94314517
2023-10-10 f3416b5d1593b5fce9ca59eea2b19b4e1bc63259
111
已添加6个文件
已删除1个文件
已修改13个文件
776 ■■■■■ 文件已修改
server/services/src/main/java/com/doumee/core/constants/Constants.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/MultifileMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/model/BikeRepair.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/model/Multifile.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/web/request/RepairRequest.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/BikeRepairService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/GoodsorderService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/MemberRidesService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/MultifileService.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/TransactionsService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/BaseParamServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/MultifileServiceImpl.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/TransactionsServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/BusinessApi.java 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/GoodsOrderApi.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/HomeApi.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -95,6 +95,18 @@
        public static final String RENT_DEPOSIT = "RENT_DEPOSIT";
        //温馨提示
        public static final String TIPS = "TIPS";
        //小程序停止服务提示
        public static final String STOP_SERVE_TIPS = "STOP_SERVE_TIPS";
        //小程序是否停止服务 0否 1是
        public static final String IS_STOP_SERVE = "IS_STOP_SERVE";
        //小程序停止开始时间
        public static final String STOP_SERVE_STARTTIME = "STOP_SERVE_STARTTIME";
        //小程序停止结束时间
        public static final String STOP_SERVE_ENDTIME = "STOP_SERVE_ENDTIME";
        //小程序每日服务开始时间
        public static final String BUSINESS_STARTTIME = "BUSINESS_STARTTIME";
        //小程序每日服务结束时间
        public static final String BUSINESS_ENDTIME = "BUSINESS_ENDTIME";
        public static final String FILES_DIR = "FILES_DIR";
server/services/src/main/java/com/doumee/dao/business/MultifileMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.doumee.dao.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.Multifile;
import java.util.List;
/**
 * @author æ±Ÿè¹„蹄
 * @date 2023/05/12 13:58
 */
public interface MultifileMapper extends BaseMapper<Multifile> {
}
server/services/src/main/java/com/doumee/dao/business/model/BikeRepair.java
@@ -104,4 +104,8 @@
    @ExcelColumn(name="现场描述")
    private String content;
    @ApiModelProperty(value = "用户编码(关联member表)")
    @ExcelColumn(name="用户编码(关联member表)")
    private String memberId;
}
server/services/src/main/java/com/doumee/dao/business/model/Multifile.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
package com.doumee.dao.business.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * é™„件信息表
 * @author æ±Ÿè¹„蹄
 * @date 2023/05/12 13:58
 */
@Data
@ApiModel("附件信息表")
@TableName("multifile")
public class Multifile {
    @ApiModelProperty(value = "主键")
    @ExcelColumn(name="主键")
    private Integer id;
    @ApiModelProperty(value = "创建人编码")
    @ExcelColumn(name="创建人编码")
    private Integer creator;
    @ApiModelProperty(value = "创建时间")
    @ExcelColumn(name="创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;
    @ApiModelProperty(value = "更新人编码")
    @ExcelColumn(name="更新人编码")
    private Integer editor;
    @ApiModelProperty(value = "更新时间")
    @ExcelColumn(name="更新时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date editDate;
    @ApiModelProperty(value = "是否删除0否 1是")
    @ExcelColumn(name="是否删除0否 1是")
    private Integer isdeleted;
    @ApiModelProperty(value = "文件名")
    @ExcelColumn(name="文件名")
    private String name;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String info;
    @ApiModelProperty(value = "关联对象编码")
    @ExcelColumn(name="关联对象编码")
    private String objId;
    @ApiModelProperty(value = "类型0图片 1视频 2其他")
    @ExcelColumn(name="类型0图片 1视频 2其他")
    private Integer type;
    @ApiModelProperty(value = "关联对象类型 0车辆保修")
    @ExcelColumn(name="关联对象类型 0车辆保修")
    private Integer objType;
    @ApiModelProperty(value = "文件地址")
    @ExcelColumn(name="文件地址")
    private String fileurl;
    @ApiModelProperty(value = "排序码")
    @ExcelColumn(name="排序码")
    private Integer sortnum;
}
server/services/src/main/java/com/doumee/dao/business/web/request/RepairRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
package com.doumee.dao.business.web.request;
import com.doumee.core.annotation.excel.ExcelColumn;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/10/9 11:04
 */
@Data
@ApiModel("报修业务请求类")
public class RepairRequest {
    @ApiModelProperty(value = "车辆编码")
    private String binkeId;
    @ApiModelProperty(value = "经度", example = "1")
    private BigDecimal longitude;
    @ApiModelProperty(value = "纬度", example = "1")
    private BigDecimal latitude;
    @ApiModelProperty(value = "详细地址")
    private String addr;
    @ApiModelProperty(value = "车辆问题原因编码(关联base_param)")
    private String paramId;
    @ApiModelProperty(value = "车辆问题")
    private String param;
    @ApiModelProperty(value = "备注")
    @ExcelColumn(name="备注")
    private String info;
    @ApiModelProperty(value = "联系人")
    private String linkname;
    @ApiModelProperty(value = "联系电话")
    private String linkphone;
    @ApiModelProperty(value = "现场描述")
    private String content;
    @ApiModelProperty(value = "用户编码(关联member表)",hidden = true)
    private String memberId;
    @ApiModelProperty(value = "现场情况")
    private List<String> fileUrlList;
}
server/services/src/main/java/com/doumee/dao/business/web/response/HomeResponse.java
@@ -1,9 +1,11 @@
package com.doumee.dao.business.web.response;
import com.doumee.dao.business.model.Ad;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
@@ -44,7 +46,23 @@
    @ApiModelProperty(value = "骑行状态:-1=未骑行;0=请求开锁中 ;1=骑行中; 2=已还车;  3=开锁失败;")
    private Integer rideStatus;
    @ApiModelProperty(value = "小程序是否停止服务 0否 1是")
    private Integer isStopServe;
    @ApiModelProperty(value = "小程序停止服务提示")
    private String stopServeTips;
    @ApiModelProperty(value = "小程序营业开始时间点")
    private String businessStartTime;
    @ApiModelProperty(value = "小程序营业结束时间点")
    private String businessEndTime;
    @ApiModelProperty(value = "骑行情况")
    private MemberRidesResponse memberRidesResponse;
    @ApiModelProperty(value = "广告信息")
    private List<Ad> adList;
}
server/services/src/main/java/com/doumee/service/business/BikeRepairService.java
@@ -3,6 +3,8 @@
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.BikeRepair;
import com.doumee.dao.business.web.request.RepairRequest;
import java.util.List;
/**
@@ -94,4 +96,6 @@
     * @return long
     */
    long count(BikeRepair bikeRepair);
    void saveRepair(RepairRequest repairRequest);
}
server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -143,6 +143,11 @@
    void closerGoodsorder(String id);
    /**
     * éª‘行记录详情
     * @param id
     * @return
     */
    RidesDetailResponse getRidesDetailResponse(String id);
    GoodsorderTotalDataVO getTotalData(Goodsorder pageWrap);
server/services/src/main/java/com/doumee/service/business/MemberRidesService.java
@@ -107,4 +107,12 @@
     * @return PageData<MemberRides>
     */
    PageData<BikeLogDTO> findBikeLog(PageWrap<MemberRidesQuery> pageWrap);
    /**
     * æŸ¥è¯¢ç”¨æˆ·éª‘行中的车辆
     * @param memberId
     * @return
     */
    String getOnlineBike(String memberId);
}
server/services/src/main/java/com/doumee/service/business/MultifileService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.doumee.service.business;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Multifile;
import java.util.List;
/**
 * é™„件信息表Service定义
 * @author æ±Ÿè¹„蹄
 * @date 2023/05/12 13:58
 */
public interface MultifileService {
    /**
     * åˆ›å»º
     *
     * @param multifile å®žä½“对象
     * @return Integer
     */
    Integer create(Multifile multifile);
    /**
     * ä¸»é”®åˆ é™¤
     *
     * @param id ä¸»é”®
     */
    void deleteById(Integer id);
    /**
     * åˆ é™¤
     *
     * @param multifile å®žä½“对象
     */
    void delete(Multifile multifile);
    /**
     * æ‰¹é‡ä¸»é”®åˆ é™¤
     *
     * @param ids ä¸»é”®é›†
     */
    void deleteByIdInBatch(List<Integer> ids);
    /**
     * ä¸»é”®æ›´æ–°
     *
     * @param multifile å®žä½“对象
     */
    void updateById(Multifile multifile);
    /**
     * æ‰¹é‡ä¸»é”®æ›´æ–°
     *
     * @param multifiles å®žä½“集
     */
    void updateByIdInBatch(List<Multifile> multifiles);
    /**
     * ä¸»é”®æŸ¥è¯¢
     *
     * @param id ä¸»é”®
     * @return Multifile
     */
    Multifile findById(Integer id);
    /**
     * æ¡ä»¶æŸ¥è¯¢å•条记录
     *
     * @param multifile å®žä½“对象
     * @return Multifile
     */
    Multifile findOne(Multifile multifile);
    /**
     * æ¡ä»¶æŸ¥è¯¢
     *
     * @param multifile å®žä½“对象
     * @return List<Multifile>
     */
    List<Multifile> findList(Multifile multifile);
    /**
     * åˆ†é¡µæŸ¥è¯¢
     *
     * @param pageWrap åˆ†é¡µå¯¹è±¡
     * @return PageData<Multifile>
     */
    PageData<Multifile> findPage(PageWrap<Multifile> pageWrap);
    /**
     * æ¡ä»¶ç»Ÿè®¡
     *
     * @param multifile å®žä½“对象
     * @return long
     */
    long count(Multifile multifile);
}
server/services/src/main/java/com/doumee/service/business/TransactionsService.java
@@ -94,4 +94,6 @@
     * @return long
     */
    long count(Transactions transactions);
    PageData<Transactions> findPageForMini(PageWrap pageWrap,String memberId);
}
server/services/src/main/java/com/doumee/service/business/impl/BaseParamServiceImpl.java
@@ -130,6 +130,7 @@
    @Override
    public List<BaseParam> findList(BaseParam baseParam) {
        QueryWrapper<BaseParam> wrapper = new QueryWrapper<>(baseParam);
        wrapper.orderByAsc("sortnum");
        return baseParamMapper.selectList(wrapper);
    }
server/services/src/main/java/com/doumee/service/business/impl/BikeRepairServiceImpl.java
@@ -1,20 +1,27 @@
package com.doumee.service.business.impl;
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.BikeRepairMapper;
import com.doumee.dao.business.MultifileMapper;
import com.doumee.dao.business.model.BikeRepair;
import com.doumee.dao.business.model.Multifile;
import com.doumee.dao.business.web.request.RepairRequest;
import com.doumee.service.business.BikeRepairService;
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 org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
 * è½¦è¾†é—®é¢˜ä¸ŠæŠ¥ä¿¡æ¯è¡¨Service实现
@@ -26,6 +33,9 @@
    @Autowired
    private BikeRepairMapper bikeRepairMapper;
    @Autowired
    private MultifileMapper multifileMapper;
    @Override
    public String create(BikeRepair bikeRepair) {
@@ -167,4 +177,32 @@
        QueryWrapper<BikeRepair> wrapper = new QueryWrapper<>(bikeRepair);
        return bikeRepairMapper.selectCount(wrapper);
    }
    @Override
    public void saveRepair(RepairRequest repairRequest){
        BikeRepair bikeRepair = new BikeRepair();
        BeanUtils.copyProperties(repairRequest,bikeRepair);
        bikeRepair.setCreateDate(new Date());
        bikeRepair.setIsdeleted(Constants.ZERO);
        bikeRepairMapper.insert(bikeRepair);
        //处理附件信息
        List<String> stringList = repairRequest.getFileUrlList();
        if(!Objects.isNull(stringList)&&stringList.size()>Constants.ZERO){
            for (int i = 0; i < stringList.size(); i++) {
                Multifile multifile = new Multifile();
                multifile.setCreateDate(new Date());
                multifile.setIsdeleted(Constants.ZERO);
                multifile.setSortnum(i+Constants.ONE);
                multifile.setObjId(bikeRepair.getId());
                multifile.setType(Constants.ZERO);
                multifile.setObjType(Constants.ZERO);
                multifile.setFileurl(stringList.get(i));
                multifileMapper.insert(multifile);
            }
        }
    }
}
server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -83,6 +83,12 @@
    private MemberRidesJoinMapper memberRidesJoinMapper;
    @Autowired
    private AdMapper adMapper;
    @Autowired
    private TransactionsMapper transactionsMapper;
    @Autowired
    PricingRuleService pricingRuleService;
    @Override
@@ -192,6 +198,23 @@
        homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIPS).getCode());
        homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode());
        homeResponse.setPricingRules(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRICING_RULE).getCode());
        homeResponse.setStopServeTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_TIPS).getCode());
        homeResponse.setIsStopServe(Constants.ZERO);
        homeResponse.setAdList(adMapper.selectList(new QueryWrapper<Ad>()
                .eq("isdeleted",Constants.ZERO)
                .eq("status",Constants.ZERO)
                .orderByDesc("create_date")
        ));
        if(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.IS_STOP_SERVE).getCode().equals(Constants.ONE)){
            String stopServeStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_STARTTIME).getCode();
            String stopServeEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_ENDTIME).getCode();
            //查询当前时间是否在停止中
            long s = DateUtil.StringToDate(stopServeStartTime).getTime();
            long e = DateUtil.StringToDate(stopServeEndTime).getTime();
            if(e>System.currentTimeMillis()&&s<=System.currentTimeMillis()){
                homeResponse.setIsStopServe(Constants.ONE);
            }
        }
        //查询是否存在 å·²æ”¯ä»˜çš„ æŠ¼é‡‘è®¢å•
        Integer status = this.goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>()
                .eq("member_id",memberId)
@@ -223,8 +246,6 @@
        }
        return homeResponse;
    }
    @Autowired
    private TransactionsMapper transactionsMapper;
    @Override
@@ -397,7 +418,6 @@
    }
    @Override
    public RidesDetailResponse getRidesDetailResponse(String id) {
        QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(MemberRides::getOrdreId,id);
@@ -450,6 +470,25 @@
        if(goodsorderMapper.selectCount(new QueryWrapper<>(qry))>Constants.ZERO){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"已支付过定金,无法重复该操作");
        }
        //是否处于小程序停止服务时间内
        if(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.IS_STOP_SERVE).getCode().equals(Constants.ONE)){
            String stopServeStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_STARTTIME).getCode();
            String stopServeEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.STOP_SERVE_ENDTIME).getCode();
            //查询当前时间是否在停止中
            long s = DateUtil.StringToDate(stopServeStartTime).getTime();
            long e = DateUtil.StringToDate(stopServeEndTime).getTime();
            if(e>System.currentTimeMillis()&&s<=System.currentTimeMillis()){
                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前小程序停止服务,请注意查看公告");
            }
        }
        //是否处于营业时间
        String businessStartTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_STARTTIME).getCode();
        String businessEndTime = systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.BUSINESS_ENDTIME).getCode();
        String nowTime = DateUtil.getDate(new Date(),"HH:mm");
        if(Integer.valueOf(nowTime.replace(":",""))<= Integer.valueOf(businessStartTime.replace(":",""))
            ||Integer.valueOf(nowTime.replace(":","")) > Integer.valueOf(businessEndTime.replace(":",""))){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前时间暂未营业服务,请注意查看营业时间");
        }
        Goodsorder goodsorder = new Goodsorder();
        goodsorder.setId(Constants.getUUID());
        goodsorder.setCreateDate(new Date());
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -1,6 +1,9 @@
package com.doumee.service.business.impl;
import com.doumee.core.constants.Constants;
import com.doumee.core.constants.ResponseStatus;
import com.doumee.core.exception.BusinessException;
import com.doumee.core.constants.Constants;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.DateUtil;
@@ -14,6 +17,7 @@
import com.doumee.dao.business.web.response.BikeLogDTO;
import com.doumee.dao.business.web.response.MemberRidesDTO;
import com.doumee.dao.business.web.response.MemberRidesQuery;
import com.doumee.service.business.DeviceService;
import com.doumee.service.business.MemberRidesService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -42,6 +46,9 @@
    @Autowired
    private MemberRidesJoinMapper memberRidesJoinMapper;
    @Autowired
    private DeviceService deviceService;
    @Override
    public String create(MemberRides memberRides) {
@@ -191,4 +198,23 @@
        }
        return PageData.from(bikeLogDTOIPage);
    }
    @Override
    public String getOnlineBike(String memberId){
        MemberRides memberRides = memberRidesMapper.selectOne(new QueryWrapper<MemberRides>()
                .eq("isdeleted", Constants.ZERO)
                .eq("member_id",memberId)
                .eq("status",Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey())
                .last(" limit 1 ")
        );
        if(Objects.isNull(memberRides)){
            return null;
        }
        return memberRides.getBikeCode();
    }
}
server/services/src/main/java/com/doumee/service/business/impl/MultifileServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,148 @@
package com.doumee.service.business.impl;
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.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.MultifileMapper;
import com.doumee.dao.business.model.Multifile;
import com.doumee.service.business.MultifileService;
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/05/12 13:58
 */
@Service
public class MultifileServiceImpl implements MultifileService {
    @Autowired
    private MultifileMapper multifileMapper;
    @Override
    public Integer create(Multifile multifile) {
        multifileMapper.insert(multifile);
        return multifile.getId();
    }
    @Override
    public void deleteById(Integer id) {
        multifileMapper.deleteById(id);
    }
    @Override
    public void delete(Multifile multifile) {
        UpdateWrapper<Multifile> deleteWrapper = new UpdateWrapper<>(multifile);
        multifileMapper.delete(deleteWrapper);
    }
    @Override
    public void deleteByIdInBatch(List<Integer> ids) {
        if (CollectionUtils.isEmpty(ids)) {
            return;
        }
        multifileMapper.deleteBatchIds(ids);
    }
    @Override
    public void updateById(Multifile multifile) {
        multifileMapper.updateById(multifile);
    }
    @Override
    public void updateByIdInBatch(List<Multifile> multifiles) {
        if (CollectionUtils.isEmpty(multifiles)) {
            return;
        }
        for (Multifile multifile: multifiles) {
            this.updateById(multifile);
        }
    }
    @Override
    public Multifile findById(Integer id) {
        return multifileMapper.selectById(id);
    }
    @Override
    public Multifile findOne(Multifile multifile) {
        QueryWrapper<Multifile> wrapper = new QueryWrapper<>(multifile);
        return multifileMapper.selectOne(wrapper);
    }
    @Override
    public List<Multifile> findList(Multifile multifile) {
        QueryWrapper<Multifile> wrapper = new QueryWrapper<>(multifile);
        return multifileMapper.selectList(wrapper);
    }
    @Override
    public PageData<Multifile> findPage(PageWrap<Multifile> pageWrap) {
        IPage<Multifile> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<Multifile> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.lambda().eq(Multifile::getId, pageWrap.getModel().getId());
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.lambda().eq(Multifile::getCreator, pageWrap.getModel().getCreator());
        }
        if (pageWrap.getModel().getCreateDate() != null) {
            queryWrapper.lambda().ge(Multifile::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
            queryWrapper.lambda().le(Multifile::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
        }
        if (pageWrap.getModel().getEditor() != null) {
            queryWrapper.lambda().eq(Multifile::getEditor, pageWrap.getModel().getEditor());
        }
        if (pageWrap.getModel().getEditDate() != null) {
            queryWrapper.lambda().ge(Multifile::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
            queryWrapper.lambda().le(Multifile::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
        }
        if (pageWrap.getModel().getIsdeleted() != null) {
            queryWrapper.lambda().eq(Multifile::getIsdeleted, pageWrap.getModel().getIsdeleted());
        }
        if (pageWrap.getModel().getName() != null) {
            queryWrapper.lambda().eq(Multifile::getName, pageWrap.getModel().getName());
        }
        if (pageWrap.getModel().getInfo() != null) {
            queryWrapper.lambda().eq(Multifile::getInfo, pageWrap.getModel().getInfo());
        }
        if (pageWrap.getModel().getObjId() != null) {
            queryWrapper.lambda().eq(Multifile::getObjId, pageWrap.getModel().getObjId());
        }
        if (pageWrap.getModel().getType() != null) {
            queryWrapper.lambda().eq(Multifile::getType, pageWrap.getModel().getType());
        }
        if (pageWrap.getModel().getObjType() != null) {
            queryWrapper.lambda().eq(Multifile::getObjType, pageWrap.getModel().getObjType());
        }
        if (pageWrap.getModel().getFileurl() != null) {
            queryWrapper.lambda().eq(Multifile::getFileurl, pageWrap.getModel().getFileurl());
        }
        if (pageWrap.getModel().getSortnum() != null) {
            queryWrapper.lambda().eq(Multifile::getSortnum, pageWrap.getModel().getSortnum());
        }
        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        }
        return PageData.from(multifileMapper.selectPage(page, queryWrapper));
    }
    @Override
    public long count(Multifile multifile) {
        QueryWrapper<Multifile> wrapper = new QueryWrapper<>(multifile);
        return multifileMapper.selectCount(wrapper);
    }
}
server/services/src/main/java/com/doumee/service/business/impl/TransactionsServiceImpl.java
@@ -163,4 +163,21 @@
        QueryWrapper<Transactions> wrapper = new QueryWrapper<>(transactions);
        return transactionsMapper.selectCount(wrapper);
    }
    @Override
    public PageData<Transactions> findPageForMini(PageWrap pageWrap,String memberId) {
        IPage<Transactions> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        QueryWrapper<Transactions> queryWrapper = new QueryWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.lambda().eq(Transactions::getMemberId, memberId);
        queryWrapper.orderByDesc("create_date");
        return PageData.from(transactionsMapper.selectPage(page, queryWrapper));
    }
}
server/web/src/main/java/com/doumee/api/web/BusinessApi.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,149 @@
package com.doumee.api.web;
import com.doumee.core.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.constants.Constants;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.BaseParam;
import com.doumee.dao.business.model.MemberRides;
import com.doumee.dao.business.model.RentSite;
import com.doumee.dao.business.model.Transactions;
import com.doumee.dao.business.web.request.RepairRequest;
import com.doumee.dao.business.web.response.RidesDetailResponse;
import com.doumee.service.business.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/10/9 10:15
 */
@Api(tags = "3、业务接口")
@Trace(exclude = true)
@RestController
@RequestMapping("/web/business")
@Slf4j
public class BusinessApi extends ApiController{
    @Autowired
    private GoodsorderService goodsorderService;
    @Autowired
    private RentSiteService rentSiteService;
    @Autowired
    private TransactionsService transactionsService;
    @Autowired
    private BaseParamService baseParamService;
    @Autowired
    private BikeRepairService bikeRepairService;
    @Autowired
    private MemberRidesService memberRidesService;
    @LoginRequired
    @ApiOperation(value = "押金支付", notes = "小程序端")
    @GetMapping("/createGoodsOrderPay")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<Object> createGoodsOrderPay() {
        return  ApiResponse.success("操作成功",goodsorderService.createGoodsOrderPay(getMemberId()));
    }
    @LoginRequired
    @ApiOperation(value = "骑行明细", notes = "小程序端")
    @GetMapping("/ridesDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "goodsOrderId", value = "订单主键", required = true)
    })
    public ApiResponse<RidesDetailResponse> ridesDetail(@RequestParam String goodsOrderId) {
        return  ApiResponse.success("查询成功",goodsorderService.getRidesDetailResponse(goodsOrderId));
    }
    @LoginRequired
    @ApiOperation(value = "租车点列表", notes = "小程序端")
    @GetMapping("/rentSiteList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<List<RentSite>> rentSiteList() {
        RentSite rentSite = new RentSite();
        rentSite.setIsdeleted(Constants.ZERO);
        rentSite.setStatus(Constants.ZERO);
        return  ApiResponse.success("查询成功",rentSiteService.findList(rentSite));
    }
    @LoginRequired
    @ApiOperation("消费明细")
    @PostMapping("/transactionsPage")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<PageData<Transactions>> transactionsPage (@RequestBody PageWrap pageWrap) {
        return ApiResponse.success(transactionsService.findPageForMini(pageWrap,getMemberId()));
    }
    @LoginRequired
    @ApiOperation("基础配置数据")
    @GetMapping("/baseParamList")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "类型 0车辆报修原因 1强制还车原因 2时长减免原因 3单车类型", required = true)
    })
    public ApiResponse<List<BaseParam>> baseParamList (@RequestParam Integer type) {
        BaseParam baseParam = new BaseParam();
        baseParam.setIsdeleted(Constants.ZERO);
        baseParam.setStatus(Constants.ZERO);
        baseParam.setType(type);
        return ApiResponse.success(baseParamService.findList(baseParam));
    }
    @LoginRequired
    @ApiOperation(value = "查询骑行中车辆", notes = "小程序端")
    @GetMapping("/onlineBike")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse<String> onlineBike() {
        return  ApiResponse.success("查询成功",memberRidesService.getOnlineBike(getMemberId()));
    }
    @LoginRequired
    @ApiOperation("车辆问题上报")
    @PostMapping("/saveRepair")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse transactionsPage (@RequestBody RepairRequest repairRequest) {
        repairRequest.setMemberId(getMemberId());
        bikeRepairService.saveRepair(repairRequest);
        return ApiResponse.success("操作成功");
    }
}
server/web/src/main/java/com/doumee/api/web/GoodsOrderApi.java
ÎļþÒÑɾ³ý
server/web/src/main/java/com/doumee/api/web/HomeApi.java
@@ -47,18 +47,6 @@
    }
    @LoginRequired
    @ApiOperation(value = "骑行明细", notes = "骑行明细")
    @GetMapping("/rideDetail")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "goodsOrderId", value = "订单主键", required = true)
    })
    public ApiResponse<RidesDetailResponse> rideDetail(@RequestParam String goodsOrderId) {
        RidesDetailResponse ridesDetailResponse = new RidesDetailResponse();
        return  ApiResponse.success("查询成功",ridesDetailResponse);
    }