server/platform/src/main/java/com/doumee/api/business/PricingDetailController.java
@@ -11,6 +11,7 @@ import com.doumee.service.business.PricingDetailService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -65,7 +66,12 @@ @PostMapping("/updateById") @RequiresPermissions("business:pricingdetail:update") public ApiResponse updateById(@RequestBody PricingDetail pricingDetail) { pricingDetailService.updateById(pricingDetail); if (StringUtils.isEmpty(pricingDetail.getId())){ pricingDetailService.create(pricingDetail); }else { pricingDetailService.updateById(pricingDetail); } return ApiResponse.success(null); } server/platform/src/main/java/com/doumee/api/business/PricingParamController.java
@@ -63,7 +63,7 @@ @PostMapping("/updateById") @RequiresPermissions("business:pricingparam:update") public ApiResponse updateById(@RequestBody PricingParam pricingParam) { pricingParamService.updateById(pricingParam); pricingParamService.update(pricingParam); return ApiResponse.success(null); } server/platform/src/main/java/com/doumee/api/common/PublicController.java
@@ -188,6 +188,8 @@ @ApiOperation(value = "上传", notes = "上传", httpMethod = "POST", position = 6) @ApiImplicitParams({ @ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class), @ApiImplicitParam(name = "file", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class), }) @PostMapping(value = "/uploadLocal", headers = "content-type=multipart/form-data") public void uploadLocal(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception { server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -33,6 +33,7 @@ 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 static final String AD = "AD"; public interface MqttTopic{ String topic_index = "device/lock/"; server/services/src/main/java/com/doumee/dao/business/model/Ad.java
@@ -1,5 +1,6 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -70,8 +71,14 @@ @ExcelColumn(name="内容") private String content; @ApiModelProperty(value = "列表图") @ApiModelProperty(value = "列表图 ") @ExcelColumn(name="列表图") private String imgurl; @ApiModelProperty(value = "列表图 ") @ExcelColumn(name="列表图") @TableField(exist = false) private String imgfullurl; } server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -107,7 +107,7 @@ @ApiModelProperty(value = "用户openid" ) @TableField(exist = false) private String memberOpenid; private String openid; @ApiModelProperty(value = "查询开始日期(包含)", example = "2023-10-01 15:12:01") @TableField(exist = false) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") server/services/src/main/java/com/doumee/dao/business/web/response/PayOrderDTO.java
@@ -25,7 +25,7 @@ @ApiModelProperty(value = "支付方式 0微信 1支付宝") private Integer payWay; @ApiModelProperty(value = "退款类型 0结算退款 1强制结算退款 2结算后退款") @ApiModelProperty(value = "退款类型 0结算退款 1强制结算退款 2结算后退款 [99: 虚拟type 支付押金]") private Integer refundType; @ApiModelProperty(value = "交易金额") server/services/src/main/java/com/doumee/service/business/impl/AdServiceImpl.java
@@ -1,5 +1,7 @@ package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.Constants; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; @@ -26,6 +28,9 @@ @Autowired private AdMapper adMapper; @Autowired SystemDictDataBiz systemDictDataBiz; @Override public String create(Ad ad) { @@ -54,7 +59,17 @@ @Override public void updateById(Ad ad) { adMapper.updateById(ad); UpdateWrapper<Ad> wrapper = new UpdateWrapper<>(); wrapper.lambda() .eq(Ad::getId,ad.getId()) .set(Ad::getEditor,ad.getEditor()) .set(Ad::getEditDate,ad.getEditDate()) .set(Ad::getName,ad.getName()) .set(Ad::getImgurl,ad.getImgurl()) .set(Ad::getSortnum,ad.getSortnum()) .set(Ad::getContent,ad.getContent()) .set(Ad::getStatus,ad.getStatus()); adMapper.update(null,wrapper); } @Override @@ -83,7 +98,7 @@ QueryWrapper<Ad> wrapper = new QueryWrapper<>(ad); return adMapper.selectList(wrapper); } @Override public PageData<Ad> findPage(PageWrap<Ad> pageWrap) { IPage<Ad> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); @@ -130,14 +145,17 @@ if (pageWrap.getModel().getImgurl() != null) { queryWrapper.lambda().eq(Ad::getImgurl, pageWrap.getModel().getImgurl()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } queryWrapper.lambda().orderByAsc(Ad::getSortnum); String path =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode()+ systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.AD).getCode(); IPage<Ad> adIPage = adMapper.selectPage(page, queryWrapper); if (!CollectionUtils.isEmpty(adIPage.getRecords())){ adIPage.getRecords().forEach(s->{ s.setImgfullurl(path+s.getImgurl()); }); } return PageData.from(adMapper.selectPage(page, queryWrapper)); return PageData.from(adIPage); } @Override server/services/src/main/java/com/doumee/service/business/impl/BaseParamServiceImpl.java
@@ -97,7 +97,7 @@ wrapper.lambda() .eq(BaseParam::getType,baseParam.getType()) .eq(BaseParam::getIsdeleted,Constants.ZERO) .eq(BaseParam::getType,baseParam.getName()); .eq(BaseParam::getName,baseParam.getName()); BaseParam baseParam1 = baseParamMapper.selectOne(wrapper.last(" limit 1")); if (Objects.nonNull(baseParam1) && !baseParam1.getId().equals(baseParam.getId())){ server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -198,19 +198,23 @@ MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(model); queryWrapper.selectAll(Goodsorder.class); queryWrapper.selectAs(Member::getOpenid, Goodsorder::getMemberOpenid); queryWrapper.selectAs(Member::getOpenid, Goodsorder::getOpenid); queryWrapper.leftJoin(Member.class, Member::getId ,Goodsorder::getMemberId); queryWrapper.select("(select max(r.done_date) from refund r where r.obj_id=t.id and r.status=2 ) as refund_date"); queryWrapper.select("(select sum(r.money) from refund r where r.obj_id=t.id and r.status=2) as refund_money"); //时间段筛选 queryWrapper.ge(model.getStartDate()!=null, Goodsorder::getPayDate, model.getStartDate()); queryWrapper.le(model.getEndDate()!=null, Goodsorder::getPayDate, model.getEndDate()); if (Objects.nonNull(model.getStartDate())){ queryWrapper.ge(Goodsorder::getPayDate, Utils.Date.getStart(model.getStartDate())); } if (Objects.nonNull(model.getEndDate())){ queryWrapper.le( Goodsorder::getPayDate, Utils.Date.getEnd(model.getEndDate())); } queryWrapper.eq(model.getPayStatus() !=null,Goodsorder::getPayStatus,model.getPayStatus()); queryWrapper.like(model.getCode() !=null,Goodsorder::getCode,model.getCode()); queryWrapper.like(model.getId() !=null,Goodsorder::getId,model.getId()); queryWrapper.eq(model.getStatus() !=null,Goodsorder::getStatus,model.getStatus()); queryWrapper.like(model.getOnlineOrderid() !=null,Goodsorder::getOnlineOrderid,model.getOnlineOrderid()); queryWrapper.like(model.getMemberOpenid() !=null,Member::getOpenid,model.getMemberOpenid()); queryWrapper.like(model.getOpenid() !=null,Member::getOpenid,model.getOpenid()); queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO); queryWrapper.orderByDesc(Goodsorder::getPayDate); return queryWrapper; @@ -310,6 +314,7 @@ payOrderDTO.setPayWay(goodsorder.getPayWay()); payOrderDTO.setMoney(Constants.translateMoney(goodsorder.getMoney())); payOrderDTO.setPayDate(goodsorder.getPayDate()); payOrderDTO.setRefundType(99); payOrderDTO.setOnlineorderId(goodsorder.getOnlineOrderid()); payOrderDTOList.add(0,payOrderDTO); if (!CollectionUtils.isEmpty(refunds)){ server/services/src/main/java/com/doumee/service/business/impl/PricingDetailServiceImpl.java
@@ -7,10 +7,12 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.BaseParamMapper; import com.doumee.dao.business.PricingDetailMapper; import com.doumee.dao.business.join.PricingDetailJoinMapper; import com.doumee.dao.business.model.BaseParam; import com.doumee.dao.business.model.PricingDetail; import com.doumee.service.business.BaseParamService; import com.doumee.service.business.PricingDetailService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -18,15 +20,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import sun.text.resources.et.CollationData_et; 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实现 @@ -41,6 +45,10 @@ @Autowired PricingDetailJoinMapper pricingDetailJoinMapper; @Autowired BaseParamMapper baseParamMapper; @Override public String create(PricingDetail pricingDetail) { @@ -65,7 +73,7 @@ insert.setHolidayUnitPrice(Constants.formatDecimalNum(pricingDetail.getHolidayUnitPrice()).multiply(new BigDecimal(100))); insert.setInfo(pricingDetail.getInfo()); insert.setTitle(pricingDetail.getTitle()); pricingDetailMapper.insert(pricingDetail); pricingDetailMapper.insert(insert); return pricingDetail.getId(); } @@ -100,10 +108,11 @@ wrapper.lambda() .eq(PricingDetail::getIsdeleted,Constants.ZERO) .eq(PricingDetail::getBikeTypeId,pricingDetail.getBikeTypeId()) .eq(PricingDetail::getPricePramId,pricingDetail.getPricePramId()); Integer exitCount = pricingDetailMapper.selectCount(wrapper); .eq(PricingDetail::getPricePramId,pricingDetail.getPricePramId()) .last("limit 1"); PricingDetail exitCount = pricingDetailMapper.selectOne(wrapper); if (exitCount > Constants.ZERO){ if (Objects.nonNull(exitCount) && !Objects.equals(exitCount.getId(),pricingDetail.getId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"该车型已配置"); } @@ -180,20 +189,47 @@ @Override public List<PricingDetail> findList(PricingDetail pricingDetail) { MPJLambdaWrapper<PricingDetail> wrapper = new MPJLambdaWrapper<>(); wrapper.leftJoin(BaseParam.class,BaseParam::getId,PricingDetail::getBikeTypeId) .eq(BaseParam::getType,Constants.THREE); wrapper.eq(PricingDetail::getPricePramId,pricingDetail.getPricePramId()) .eq(PricingDetail::getIsdeleted,Constants.ZERO); wrapper.rightJoin(BaseParam.class,BaseParam::getId,PricingDetail::getBikeTypeId); wrapper.selectAll(PricingDetail.class) .selectAs(BaseParam::getId,PricingDetail::getBikeTypeId) .selectAs(BaseParam::getName,PricingDetail::getBikeTypeName); List<PricingDetail> result = pricingDetailJoinMapper.selectJoinList(PricingDetail.class,wrapper); if(result!=null){ for(PricingDetail model :result){ model.setBasePrice(Constants.translateMoney(model.getBasePrice())); model.setHolidayBasePrice(Constants.translateMoney(model.getHolidayBasePrice())); model.setUnitPrice(Constants.translateMoney(model.getUnitPrice())); model.setHolidayUnitPrice(Constants.translateMoney(model.getHolidayUnitPrice())); } Map<String, PricingDetail> stringPricingDetailMap = Optional.ofNullable(result) .map(s -> s.stream().collect(Collectors.toMap(p -> p.getBikeTypeId(), p -> p))) .orElse(new HashMap<>()); QueryWrapper<BaseParam> baseParamQuery = new QueryWrapper(); baseParamQuery.lambda() .eq(BaseParam::getIsdeleted,Constants.ZERO) .eq(BaseParam::getType,Constants.THREE) .orderByAsc(BaseParam::getSortnum); List<BaseParam> list = baseParamMapper.selectList(baseParamQuery); if (CollectionUtils.isEmpty(list)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"内置数据确实"); } return result; List<PricingDetail> collect = list.stream().map(s -> { PricingDetail put = stringPricingDetailMap.getOrDefault(s.getId(), new PricingDetail()); put.setBikeTypeId(s.getId()); put.setPricePramId(pricingDetail.getPricePramId()); put.setBikeTypeName(s.getName()); put.setBasePrice(Objects.nonNull(put.getBasePrice()) ? Constants.translateMoney(put.getBasePrice()) : null); put.setHolidayBasePrice(Objects.nonNull(put.getHolidayBasePrice()) ? Constants.translateMoney(put.getHolidayBasePrice()):null); put.setUnitPrice(Objects.nonNull(put.getUnitPrice()) ? Constants.translateMoney(put.getUnitPrice()):null); put.setHolidayUnitPrice(Objects.nonNull(put.getHolidayUnitPrice()) ? Constants.translateMoney(put.getHolidayUnitPrice()):null); return put; }).collect(Collectors.toList()); // if(result!=null){ // for(PricingDetail model :result){ // model.setBasePrice(Constants.translateMoney(model.getBasePrice())); // model.setHolidayBasePrice(Constants.translateMoney(model.getHolidayBasePrice())); // model.setUnitPrice(Constants.translateMoney(model.getUnitPrice())); // model.setHolidayUnitPrice(Constants.translateMoney(model.getHolidayUnitPrice())); // } // } return collect; } @Override server/services/src/main/java/com/doumee/service/business/impl/PricingParamServiceImpl.java
@@ -79,6 +79,7 @@ .eq(PricingParam::getId,pricingParam.getId()) .set(PricingParam::getEditor,principal.getId()) .set(PricingParam::getName,pricingParam.getName()) .set(PricingParam::getStatus,pricingParam.getStatus()) .set(PricingParam::getStartDate,pricingParam.getStartDate()) .set(PricingParam::getEndDate,pricingParam.getEndDate()) .set(PricingParam::getSortnum,pricingParam.getSortnum()); @@ -164,6 +165,7 @@ queryWrapper.lambda().eq(PricingParam::getInfo, pageWrap.getModel().getInfo()); } queryWrapper.lambda().orderByAsc(PricingParam::getSortnum); queryWrapper.lambda().orderByAsc(PricingParam::getStatus); return PageData.from(pricingParamMapper.selectPage(page, queryWrapper)); }