jiangping
2023-10-13 6eafa7a583199dff1c42bb3cef8f1dc6b6d7f98a
Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/parkBike into dev
已修改7个文件
83 ■■■■ 文件已修改
server/platform/src/main/java/com/doumee/api/business/BaseParamController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/core/constants/Constants.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/model/BaseParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesDTO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/BaseParamServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/BaseParamController.java
@@ -1,14 +1,18 @@
package com.doumee.api.business;
import com.doumee.api.BaseController;
import com.doumee.core.annotation.LoginRequired;
import com.doumee.core.annotation.excel.ExcelExporter;
import com.doumee.core.annotation.pr.PreventRepeat;
import com.doumee.core.constants.Constants;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageWrap;
import com.doumee.core.model.PageData;
import com.doumee.dao.business.model.BaseParam;
import com.doumee.service.business.BaseParamService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
@@ -35,7 +39,7 @@
    @ApiOperation("新建")
    @PostMapping("/create")
    @RequiresPermissions("business:baseparam:create")
    public ApiResponse create(@RequestBody @Validated BaseParam baseParam) {
    public ApiResponse create(@RequestBody  BaseParam baseParam) {
        return ApiResponse.success(baseParamService.create(baseParam));
    }
@@ -88,4 +92,17 @@
    public ApiResponse findById(@PathVariable String id) {
        return ApiResponse.success(baseParamService.findById(id));
    }
    @ApiOperation("基础配置数据")
    @GetMapping("/baseParamList")
    @ApiImplicitParams({
            @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));
    }
}
server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -30,6 +30,8 @@
    public static final String FILE_DIR ="FILE_DIR" ;
    public static final String PRIVATE_KEY = "PRIVATE_KEY";
    public static final String PROJECT_FILE = "PROJECT_FILE";
    public static final String FORCE_BACK_LOCK = "FORCE_BACK_LOCK";
    public static final String FORCE_BACK_SITE = "FORCE_BACK_SITE";
    public static String REDIS_DEBUG_STR="test_";
    public  interface MqttTopic{
        //开锁(发布)
server/services/src/main/java/com/doumee/dao/business/model/BaseParam.java
@@ -62,7 +62,7 @@
    @ApiModelProperty(value = "类型 0车辆保修原因 1强制还车原因 2时长减免原因 3单车类型", example = "1")
    @ExcelColumn(name="类型 0车辆保修原因 1强制还车原因 2时长减免原因 3单车类型")
    @NotEmpty
    @NotEmpty(message = "类型参数为空")
    private Integer type;
    @ApiModelProperty(value = "状态 0启用 1禁用", example = "1")
server/services/src/main/java/com/doumee/dao/business/web/response/MemberRidesDTO.java
@@ -15,6 +15,9 @@
@ApiModel("骑行记录返回")
public class MemberRidesDTO {
    @ApiModelProperty(value = "编码")
    private String id;
    @ApiModelProperty(value = "用户OpenID")
    @ExcelColumn(name="用户",index = 1,width = 10,align = HorizontalAlignment.CENTER)
    private String openid;
@@ -50,4 +53,9 @@
    @ExcelColumn(name="还车时间",index = 9,width = 10,align = HorizontalAlignment.CENTER)
    private Date backDate;
    @ApiModelProperty(value = "租车站点编码")
    private String rentSiteId;
    @ApiModelProperty(value = "租车锁头编码")
    private String rentLockId;
}
server/services/src/main/java/com/doumee/service/business/impl/BaseParamServiceImpl.java
@@ -14,6 +14,7 @@
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.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -38,11 +39,16 @@
    public String create(BaseParam baseParam) {
        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if (Objects.isNull(baseParam.getType()) || StringUtils.isEmpty(baseParam.getName())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"参数错误");
        }
        QueryWrapper<BaseParam> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(BaseParam::getType,baseParam.getType())
                .eq(BaseParam::getIsdeleted,Constants.ZERO)
                .eq(BaseParam::getType,baseParam.getName());
                .eq(BaseParam::getName,baseParam.getName());
        Integer count = baseParamMapper.selectCount(wrapper);
        if (count > 0){
server/services/src/main/java/com/doumee/service/business/impl/MemberRidesServiceImpl.java
@@ -25,9 +25,12 @@
import com.doumee.dao.business.web.response.BikeLogDTO;
import com.doumee.dao.business.web.response.MemberRidesDTO;
import com.doumee.dao.business.web.response.MemberRidesDetailResponse;
import com.doumee.dao.system.SystemDictDataMapper;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.service.business.DeviceService;
import com.doumee.service.business.GoodsorderService;
import com.doumee.service.business.MemberRidesService;
import com.doumee.service.system.SystemDictDataService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -38,9 +41,8 @@
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 用户骑行记录表Service实现
@@ -78,6 +80,10 @@
    @Autowired
    private GoodsorderService goodsorderService;
    @Autowired
    private SystemDictDataMapper systemDictDataMapper;
    @Override
    public String create(MemberRides memberRides) {
@@ -168,7 +174,7 @@
        MPJLambdaWrapper<MemberRides> queryWrapper = new MPJLambdaWrapper<>();
        queryWrapper.leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId);
        queryWrapper.eq(MemberRides::getMemberId, id);
        queryWrapper.eq(MemberRides::getId, id);
        queryWrapper.selectAll(MemberRides.class);
        queryWrapper.selectAs(BaseParam::getName,MemberRidesDTO::getBikeType) ;
        queryWrapper.last("limit 1");
@@ -211,13 +217,17 @@
        queryWrapper.le(model.getRentDateEnd()!=null, MemberRides::getRentDate,model.getRentDateEnd());
        queryWrapper.eq(model.getCloseStatus()!=null,MemberRides::getCloseStatus, model.getCloseStatus());
        queryWrapper.eq(model.getGoodsorderId()!=null,MemberRides::getOrdreId, model.getGoodsorderId());
        queryWrapper.selectAs(Member::getOpenid,MemberRidesDTO::getOpenid)
        queryWrapper
                .selectAs(MemberRides::getId,MemberRidesDTO::getId)
                .selectAs(Member::getOpenid,MemberRidesDTO::getOpenid)
                .selectAs(MemberRides::getBikeCode,MemberRidesDTO::getBikeCode)
                .selectAs(MemberRides::getCloseStatus,MemberRidesDTO::getCloseStatus)
                .selectAs(MemberRides::getStatus,MemberRidesDTO::getStatus)
                .selectAs(BaseParam::getName,MemberRidesDTO::getBikeType)
                .selectAs(MemberRides::getDuration,MemberRidesDTO::getDuration)
                .selectAs(MemberRides::getRentDate,MemberRidesDTO::getRentDate)
                .selectAs(MemberRides::getRentLockId,MemberRidesDTO::getRentLockId)
                .selectAs(MemberRides::getRentSiteId,MemberRidesDTO::getRentSiteId)
                .selectAs(MemberRides::getBackDate,MemberRidesDTO::getBackDate);
        return queryWrapper;
    }
@@ -243,7 +253,7 @@
    @Override
    public  void updateDuration(MemberRides memberRides){
        LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
        if(StringUtils.isBlank(memberRides.getMemberId())
        if(StringUtils.isBlank(memberRides.getId())
                ||StringUtils.isBlank(memberRides.getBackReason())
                || memberRides.getDuration() == null){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
@@ -306,8 +316,7 @@
    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
    public   void forceBack(MemberRides memberRides){
        LoginUserInfo user =(LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(StringUtils.isBlank(memberRides.getMemberId())
                ||StringUtils.isBlank(memberRides.getBackReason())){
         if(StringUtils.isBlank(memberRides.getBackReason())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        MemberRides model = findJoinById(memberRides.getId());
@@ -317,6 +326,12 @@
        if(Constants.formatIntegerNum(model.getStatus()) != Constants.MEMBER_RIDES_STATUS.RIDES_RUNNING.getKey() ){
            throw  new BusinessException( ResponseStatus.NOT_ALLOWED.getCode(),"对不起,只能针对未还车辆进行强制还车操作!" );
        }
        QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>();
        wrapper.lambda()
                .eq(SystemDictData::getLabel, Arrays.asList(Constants.FORCE_BACK_SITE,Constants.FORCE_BACK_LOCK));
        List<SystemDictData> systemDictData = systemDictDataMapper.selectList(wrapper);
        Map<String, SystemDictData> collect = systemDictData.stream().collect(Collectors.toMap(s -> s.getLabel(), s -> s));
        MemberRides update = new MemberRides();
        update.setId(model.getId());
        update.setEditDate(new Date());
@@ -326,6 +341,9 @@
        update.setBackReason(memberRides.getBackReason());
        update.setBackUserid(user.getId());
        update.setBackType(Constants.ONE);
        update.setStatus(Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey());
        update.setBackSiteId(collect.get(Constants.FORCE_BACK_SITE).getCode());
        update.setBackLockId(collect.get(Constants.FORCE_BACK_LOCK).getCode());
        //计算骑行计费时长
        update.setDuration(DateUtil.betweenMin(model.getRentDate(), update.getBackDate()));
        memberRidesMapper.updateById(update);
server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
@@ -23,6 +23,7 @@
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@@ -56,15 +57,14 @@
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"阶梯定价参数不可为空");
        }
        if ((pricingDetail.getHolidayBasePrice() < 0) &&
                Objects.isNull(pricingDetail.getBasePrice())  ){
        if ( Objects.isNull(pricingDetail.getBasePrice()) && (pricingDetail.getHolidayBasePrice().compareTo(BigDecimal.ZERO)<Constants.ZERO)
                ){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"节假一口价价格不可为空");
        }
        if ((pricingDetail.getHolidayBasePrice() > 0) &&
                (Objects.isNull(pricingDetail.getHolidayBasePrice())
        if ((Objects.isNull(pricingDetail.getHolidayBasePrice())
                        || Objects.isNull(pricingDetail.getHolidayBasePrice())
                        || Objects.isNull(pricingDetail.getHolidayBasePrice()))){
                        || Objects.isNull(pricingDetail.getHolidayBasePrice()))&&(pricingDetail.getHolidayBasePrice().compareTo(BigDecimal.ZERO)>Constants.ZERO)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"节假阶梯定价参数不可为空");
        }
        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();