server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
@@ -143,7 +143,7 @@ @PostMapping("/backGoodsorder") @RequiresPermissions("business:goodsorder:query") public ApiResponse backGoodsorder(@RequestBody GoodsorderBackDTO goodsorderBackDTO){ goodsorderService.backGoodsorder(goodsorderBackDTO.getOrderId(),goodsorderBackDTO.getMoney(),goodsorderBackDTO.getReason()); goodsorderService.backGoodsorder(goodsorderBackDTO); return ApiResponse.success(null); } server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -39,6 +39,7 @@ public static final String PRIVATE_KEY = "PRIVATE_KEY"; public static final String PROJECT_FILE = "PROJECT_FILE"; public static final String PROJECTS = "PROJECTS"; public static final String DISCOUNT = "DISCOUNT"; public static final String FORCE_BACK_LOCK = "FORCE_BACK_LOCK"; public static final String FORCE_BACK_SITE = "FORCE_BACK_SITE"; //车è¾ç±»åæ°æ® @@ -50,6 +51,13 @@ public static String REPAIR = "REPAIR"; public static final String NOTICE_SITE_LINK_LIMIT="NOTICE_SITE_LINK_LIMIT"; public static boolean equalsInteger(Integer a, Integer b) { if (formatIntegerNum(a) == formatIntegerNum(b)) { return true; } return false; } public interface MqttTopic{ String topic_index = "device/lock/"; server/services/src/main/java/com/doumee/dao/business/join/DiscountJoinMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.dao.business.join; import com.doumee.dao.business.model.Bikes; import com.doumee.dao.business.model.Discount; import com.github.yulichang.base.mapper.MPJJoinMapper; import org.springframework.stereotype.Repository; /** * @author T14 */ @Repository public interface DiscountJoinMapper extends MPJJoinMapper<Discount> { } server/services/src/main/java/com/doumee/dao/business/join/DiscountMemberJoinMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.doumee.dao.business.join; import com.doumee.dao.business.model.Discount; import com.doumee.dao.business.model.DiscountMember; import com.github.yulichang.base.mapper.MPJJoinMapper; import org.springframework.stereotype.Repository; /** * @author T14 */ @Repository public interface DiscountMemberJoinMapper extends MPJJoinMapper<DiscountMember> { } server/services/src/main/java/com/doumee/dao/business/model/Discount.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; @@ -147,4 +148,15 @@ @ExcelColumn(name="æ¯å¦æ¯æçµå¨è½¦ 0䏿¯æ 1æ¯æ") private Integer iselecbike; @TableField(exist = false) @ApiModelProperty(value = "已宿°é", example = "1") private Integer saleNum; @TableField(exist = false) @ApiModelProperty(value = "éç¨é¡¹ç®ï¼1=èªè¡è½¦ï¼2=çµå¨è½¦ (æ¥è¯¢ä½¿ç¨)", example = "1") private Integer bikeOrElec; @TableField(exist = false) @ApiModelProperty(value = "å¾çå ¨è·¯å¾", example = "1") private String fullImgUrl; } server/services/src/main/java/com/doumee/dao/business/model/DiscountMember.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; @@ -22,141 +23,125 @@ public class DiscountMember { @ApiModelProperty(value = "ç¼ç ") @ExcelColumn(name="ç¼ç ") private String id; @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date createDate; @ApiModelProperty(value = "å建人") @ExcelColumn(name="å建人") private String creator; @ApiModelProperty(value = "ç¼è¾æ¶é´") @ExcelColumn(name="ç¼è¾æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date editDate; @ApiModelProperty(value = "ç¼è¾äºº") @ExcelColumn(name="ç¼è¾äºº") private String editor; @ApiModelProperty(value = "æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤", example = "1") @ExcelColumn(name="æ¯å¦å·²å é¤ 0æªå é¤ 1å·²å é¤") private Integer isdeleted; @ApiModelProperty(value = "夿³¨") @ExcelColumn(name="夿³¨") private String info; @ApiModelProperty(value = "票å·") @ExcelColumn(name="票å·") @ExcelColumn(name="å¥é¤ç¥¨å·",index = 0,width = 16) private String code; @ApiModelProperty(value = "åç§°") @ExcelColumn(name="åç§°") @ExcelColumn(name="å¥é¤åç§°",index = 2,width = 10) private String name; @ApiModelProperty(value = "ç±»å 0æéå¡ 1次å¡", example = "1") @ExcelColumn(name="ç±»å 0æéå¡ 1次å¡") @ExcelColumn(name="å¥é¤ç±»å",index = 1,valueMapping = "0=æéå¡ï¼1=次å¡ï¼",width = 10) private Integer type; @ApiModelProperty(value = "æ¯æ¥éªè¡éå¶ç±»å 0ä¸éå¶ 1éå¶", example = "1") @ExcelColumn(name="æ¯æ¥éªè¡éå¶ç±»å 0ä¸éå¶ 1éå¶") private Integer limitType; @ApiModelProperty(value = "æ¯æ¥éªè¡éå¶æ¶é´ï¼åéï¼", example = "1") @ExcelColumn(name="æ¯æ¥éªè¡éå¶æ¶é´ï¼åéï¼") private Integer limitTime; @ApiModelProperty(value = "éå®ä»·ï¼å ï¼", example = "1") @ExcelColumn(name="éå®ä»·ï¼å ï¼") private BigDecimal price; @ApiModelProperty(value = "å线价ï¼å ï¼", example = "1") @ExcelColumn(name="å线价ï¼å ï¼") private BigDecimal linePrice; @ApiModelProperty(value = "é宿¸ é 0å°ç¨åº", example = "1") @ExcelColumn(name="é宿¸ é 0å°ç¨åº") private Integer channel; @ApiModelProperty(value = "å¥é¤å¾ç") @ExcelColumn(name="å¥é¤å¾ç") private String imgurl; @ApiModelProperty(value = "ç®ä»") @ExcelColumn(name="ç®ä»") private String descs; @ApiModelProperty(value = "æè¿°") @ExcelColumn(name="æè¿°") private String content; @ApiModelProperty(value = "éå®å¼å§æ¥æ") @ExcelColumn(name="éå®å¼å§æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date startDate; @ApiModelProperty(value = "éå®ç»ææ¥æ") @ExcelColumn(name="éå®ç»ææ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date endDate; @ApiModelProperty(value = "ä½¿ç¨æ¶é´ç±»å 0åºå®æ¶é´æ®µ 1è´ä¹°åçæ 2æå®æ¥æçæ", example = "1") @ExcelColumn(name="ä½¿ç¨æ¶é´ç±»å 0åºå®æ¶é´æ®µ 1è´ä¹°åçæ 2æå®æ¥æçæ") private Integer useType; @ApiModelProperty(value = "使ç¨å¼å§æ¥æ") @ExcelColumn(name="使ç¨å¼å§æ¥æ") @ExcelColumn(name="æææå¼å§",index = 5,width = 16,dateFormat = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date useStartDate; @ApiModelProperty(value = "使ç¨ç»ææ¥æ") @ExcelColumn(name="使ç¨ç»ææ¥æ") @ExcelColumn(name="æææç»æ",index = 6,width = 16,dateFormat = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date useEndDate; @ApiModelProperty(value = "ä½¿ç¨ææå¤©æ°", example = "1") @ExcelColumn(name="ä½¿ç¨ææå¤©æ°") private Integer useDays; @ApiModelProperty(value = "è忥æ¯å¦å¯ä»¥ 0å¦ 1æ¯", example = "1") @ExcelColumn(name="è忥æ¯å¦å¯ä»¥ 0å¦ 1æ¯") private Integer useHoliday; @ApiModelProperty(value = "工使¥æ¯å¦å¯ä»¥ 0å¦ 1æ¯", example = "1") @ExcelColumn(name="工使¥æ¯å¦å¯ä»¥ 0å¦ 1æ¯") private Integer useWorkday; @ApiModelProperty(value = "ééæ»éé¢", example = "1") @ExcelColumn(name="ééæ»éé¢") private Integer saleLimit; @ApiModelProperty(value = "é鿝天éé¢", example = "1") @ExcelColumn(name="é鿝天éé¢") private Integer saleDayLimit; @ApiModelProperty(value = "ç¶æ 0æ£å¸¸ 1ä½åº 2è¿ææç¨å®", example = "1") @ExcelColumn(name="ç¶æ 0æ£å¸¸ 1ä½åº 2è¿ææç¨å®") @ExcelColumn(name="å¥é¤ç¶æ",index = 7,width = 10,valueMapping = "0=æ£å¸¸ï¼1=ä½åºï¼2=è¿ææç¨å®") private Integer status; @ApiModelProperty(value = "ç¨æ·ç¼ç ï¼å ³èmember)") @ExcelColumn(name="ç¨æ·ç¼ç ï¼å ³èmember)") private String memberId; @ApiModelProperty(value = "å ³è订åç¼ç (å ³ègoodsorderï¼") @ExcelColumn(name="å ³è订åç¼ç (å ³ègoodsorderï¼") private String goodsorderId; @ApiModelProperty(value = "æ¯å¦æ¯æèªè¡è½¦è®¢å 0䏿¯æ 1æ¯æ", example = "1") @ExcelColumn(name="æ¯å¦æ¯æèªè¡è½¦è®¢å 0䏿¯æ 1æ¯æ") private Integer isbike; @ApiModelProperty(value = "æ¯å¦æ¯æçµå¨è½¦ 0䏿¯æ 1æ¯æ", example = "1") @ExcelColumn(name="æ¯å¦æ¯æçµå¨è½¦ 0䏿¯æ 1æ¯æ") private Integer iselecbike; @ApiModelProperty(value = "ç¨æ·opneid") @ExcelColumn(name="ç¨æ·ä¿¡æ¯",index = 3,width = 20) @TableField(exist = false) private String openid; @ApiModelProperty(value = "ä½¿ç¨æ¬¡æ°") @ExcelColumn(name="ä½¿ç¨æ¬¡æ°",index = 4,width = 20) @TableField(exist = false) private Integer useTimes; } server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -135,4 +135,10 @@ @ApiModelProperty(value = "æ¯å¦ç»ç® 0 æªç»ç® 1å·²ç»ç®") @TableField(exist = false) private Integer closeStatus; @ApiModelProperty(value = "å¥é¤åç§°", example = "2023-10-01 15:12:01") @TableField(exist = false) private String discountName; } server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderBackDTO.java
@@ -21,4 +21,9 @@ @ApiModelProperty(value = "鿬¾éé¢") private String reason; @ApiModelProperty(value = "å¥é¤å¡é款类å 0éè´§éæ¬¾ 1ä» éæ¬¾") private Integer backType; } server/services/src/main/java/com/doumee/service/business/DiscountService.java
@@ -94,4 +94,6 @@ * @return long */ long count(Discount discount); void updStatus(Discount discount); } server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -8,6 +8,7 @@ import com.doumee.dao.business.model.Goodsorder; import com.doumee.dao.business.vo.GoodsorderExportVO; import com.doumee.dao.business.vo.GoodsorderTotalDataVO; import com.doumee.dao.business.web.request.GoodsorderBackDTO; import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO; import com.doumee.dao.business.web.response.HomeResponse; import com.doumee.dao.business.web.response.GoodsorderDetailDTO; @@ -153,7 +154,7 @@ * 鿬¾ * @param orderId */ void backGoodsorder(String orderId, BigDecimal money ,String reason); void backGoodsorder(GoodsorderBackDTO goodsorderBackDTO); /** * è·åå¯éæ¬¾ä¿¡æ¯ server/services/src/main/java/com/doumee/service/business/impl/DiscountMemberServiceImpl.java
@@ -4,17 +4,24 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.DiscountMemberMapper; import com.doumee.dao.business.join.DiscountMemberJoinMapper; import com.doumee.dao.business.model.Discount; import com.doumee.dao.business.model.DiscountMember; import com.doumee.dao.business.model.Member; import com.doumee.service.business.DiscountMemberService; 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.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.Objects; /** * ç¨æ·éªè¡å¥é¤å¡å ³è表Serviceå®ç° @@ -26,6 +33,9 @@ @Autowired private DiscountMemberMapper discountMemberMapper; @Autowired private DiscountMemberJoinMapper discountMemberJoinMapper; @Override public String create(DiscountMember discountMember) { @@ -87,121 +97,17 @@ @Override public PageData<DiscountMember> findPage(PageWrap<DiscountMember> pageWrap) { IPage<DiscountMember> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<DiscountMember> queryWrapper = new QueryWrapper<>(); MPJLambdaWrapper<DiscountMember> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(DiscountMember::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(DiscountMember::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.lambda().le(DiscountMember::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(DiscountMember::getCreator, pageWrap.getModel().getCreator()); } if (pageWrap.getModel().getEditDate() != null) { queryWrapper.lambda().ge(DiscountMember::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.lambda().le(DiscountMember::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); } if (pageWrap.getModel().getEditor() != null) { queryWrapper.lambda().eq(DiscountMember::getEditor, pageWrap.getModel().getEditor()); } if (pageWrap.getModel().getIsdeleted() != null) { queryWrapper.lambda().eq(DiscountMember::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getInfo() != null) { queryWrapper.lambda().eq(DiscountMember::getInfo, pageWrap.getModel().getInfo()); } if (pageWrap.getModel().getCode() != null) { queryWrapper.lambda().eq(DiscountMember::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(DiscountMember::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getType() != null) { queryWrapper.lambda().eq(DiscountMember::getType, pageWrap.getModel().getType()); } if (pageWrap.getModel().getLimitType() != null) { queryWrapper.lambda().eq(DiscountMember::getLimitType, pageWrap.getModel().getLimitType()); } if (pageWrap.getModel().getLimitTime() != null) { queryWrapper.lambda().eq(DiscountMember::getLimitTime, pageWrap.getModel().getLimitTime()); } if (pageWrap.getModel().getPrice() != null) { queryWrapper.lambda().eq(DiscountMember::getPrice, pageWrap.getModel().getPrice()); } if (pageWrap.getModel().getLinePrice() != null) { queryWrapper.lambda().eq(DiscountMember::getLinePrice, pageWrap.getModel().getLinePrice()); } if (pageWrap.getModel().getChannel() != null) { queryWrapper.lambda().eq(DiscountMember::getChannel, pageWrap.getModel().getChannel()); } if (pageWrap.getModel().getImgurl() != null) { queryWrapper.lambda().eq(DiscountMember::getImgurl, pageWrap.getModel().getImgurl()); } if (pageWrap.getModel().getDescs() != null) { queryWrapper.lambda().eq(DiscountMember::getDescs, pageWrap.getModel().getDescs()); } if (pageWrap.getModel().getContent() != null) { queryWrapper.lambda().eq(DiscountMember::getContent, pageWrap.getModel().getContent()); } if (pageWrap.getModel().getStartDate() != null) { queryWrapper.lambda().ge(DiscountMember::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())); queryWrapper.lambda().le(DiscountMember::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate())); } if (pageWrap.getModel().getEndDate() != null) { queryWrapper.lambda().ge(DiscountMember::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())); queryWrapper.lambda().le(DiscountMember::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate())); } if (pageWrap.getModel().getUseType() != null) { queryWrapper.lambda().eq(DiscountMember::getUseType, pageWrap.getModel().getUseType()); } if (pageWrap.getModel().getUseStartDate() != null) { queryWrapper.lambda().ge(DiscountMember::getUseStartDate, Utils.Date.getStart(pageWrap.getModel().getUseStartDate())); queryWrapper.lambda().le(DiscountMember::getUseStartDate, Utils.Date.getEnd(pageWrap.getModel().getUseStartDate())); } if (pageWrap.getModel().getUseEndDate() != null) { queryWrapper.lambda().ge(DiscountMember::getUseEndDate, Utils.Date.getStart(pageWrap.getModel().getUseEndDate())); queryWrapper.lambda().le(DiscountMember::getUseEndDate, Utils.Date.getEnd(pageWrap.getModel().getUseEndDate())); } if (pageWrap.getModel().getUseDays() != null) { queryWrapper.lambda().eq(DiscountMember::getUseDays, pageWrap.getModel().getUseDays()); } if (pageWrap.getModel().getUseHoliday() != null) { queryWrapper.lambda().eq(DiscountMember::getUseHoliday, pageWrap.getModel().getUseHoliday()); } if (pageWrap.getModel().getUseWorkday() != null) { queryWrapper.lambda().eq(DiscountMember::getUseWorkday, pageWrap.getModel().getUseWorkday()); } if (pageWrap.getModel().getSaleLimit() != null) { queryWrapper.lambda().eq(DiscountMember::getSaleLimit, pageWrap.getModel().getSaleLimit()); } if (pageWrap.getModel().getSaleDayLimit() != null) { queryWrapper.lambda().eq(DiscountMember::getSaleDayLimit, pageWrap.getModel().getSaleDayLimit()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.lambda().eq(DiscountMember::getStatus, pageWrap.getModel().getStatus()); } if (pageWrap.getModel().getMemberId() != null) { queryWrapper.lambda().eq(DiscountMember::getMemberId, pageWrap.getModel().getMemberId()); } if (pageWrap.getModel().getGoodsorderId() != null) { queryWrapper.lambda().eq(DiscountMember::getGoodsorderId, pageWrap.getModel().getGoodsorderId()); } if (pageWrap.getModel().getIsbike() != null) { queryWrapper.lambda().eq(DiscountMember::getIsbike, pageWrap.getModel().getIsbike()); } if (pageWrap.getModel().getIselecbike() != null) { queryWrapper.lambda().eq(DiscountMember::getIselecbike, pageWrap.getModel().getIselecbike()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(discountMemberMapper.selectPage(page, queryWrapper)); DiscountMember model = pageWrap.getModel(); queryWrapper.selectAll(DiscountMember.class) .leftJoin(Member.class,Member::getId,DiscountMember::getMemberId) .like(StringUtils.isNotBlank(model.getCode()),DiscountMember::getCode,model.getCode()) .like(StringUtils.isNotBlank(model.getName()),DiscountMember::getName,model.getName()) .like(StringUtils.isNotBlank(model.getOpenid()),Member::getOpenid,model.getOpenid()) .eq(Objects.nonNull(model.getStatus()),DiscountMember::getStatus,model.getStatus()) .orderByDesc(DiscountMember::getId); return PageData.from(discountMemberJoinMapper.selectJoinPage(page, DiscountMember.class,queryWrapper)); } @Override server/services/src/main/java/com/doumee/service/business/impl/DiscountServiceImpl.java
@@ -1,20 +1,37 @@ package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Utils; import com.doumee.dao.business.DiscountMapper; import com.doumee.dao.business.join.BikeRepairJoinMapper; import com.doumee.dao.business.join.DiscountJoinMapper; import com.doumee.dao.business.model.BaseParam; import com.doumee.dao.business.model.BikeRepair; import com.doumee.dao.business.model.Discount; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.web.request.BikeRepairDTO; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.DiscountService; 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.apache.shiro.SecurityUtils; 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å®ç° @@ -27,16 +44,90 @@ @Autowired private DiscountMapper discountMapper; @Autowired private DiscountJoinMapper discountJoinMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Override public String create(Discount discount) { LoginUserInfo userInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); this.vaildReq(discount); discount.setStatus(Constants.ZERO); discount.setIsdeleted(Constants.ZERO); discount.setCreateDate(new Date()); discount.setCreator(userInfo.getId()); discountMapper.insert(discount); return discount.getId(); } public void vaildReq(Discount discount) { if(Objects.isNull(discount) || StringUtils.isBlank(discount.getName()) || Objects.isNull(discount.getType()) || Objects.isNull(discount.getLimitType()) || (discount.getLimitTime()==Constants.ONE && Objects.isNull(discount.getLimitTime())) || Objects.isNull(discount.getPrice()) || Objects.isNull(discount.getChannel()) || Objects.isNull(discount.getStartDate()) || Objects.isNull(discount.getEndDate()) || Objects.isNull(discount.getUseType()) || (discount.getUseType()==Constants.ZERO && ( Objects.isNull(discount.getUseStartDate()) || Objects.isNull(discount.getUseEndDate()) )) || (discount.getUseType()==Constants.ONE && Objects.isNull(discount.getUseDays())) || (discount.getUseType()==Constants.TWO && ( Objects.isNull(discount.getUseStartDate()) || Objects.isNull(discount.getUseDays()) )) || (Objects.isNull(discount.getUseHoliday()) || Objects.isNull(discount.getUseWorkday()) ) || (Objects.isNull(discount.getIsbike()) || Objects.isNull(discount.getIselecbike()) ) ){ throw new BusinessException(ResponseStatus.SERVER_ERROR); } if(discount.getStartDate().getTime()>discount.getEndDate().getTime()){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"é宿¶æ®µä¿¡æ¯é误"); } //åºå®æ¥æçæ if(discount.getUseType()==Constants.ZERO && ( discount.getUseStartDate().getTime()>discount.getUseEndDate().getTime() || discount.getUseStartDate().getTime() < discount.getStartDate().getTime() || discount.getUseEndDate().getTime() > discount.getEndDate().getTime() ) ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä½¿ç¨æ¶æ®µä¿¡æ¯é误"); } //æå®æ¥æçæ if(discount.getUseType()==Constants.TWO && ( discount.getUseStartDate().getTime()<discount.getStartDate().getTime() || discount.getUseStartDate().getTime() > discount.getEndDate().getTime() ) ){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"ä½¿ç¨æ¶æ®µä¿¡æ¯é误"); } } @Override public void deleteById(String id) { discountMapper.deleteById(id); Discount discount = discountMapper.selectById(id); if(Objects.isNull(discount)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } if(Constants.equalsInteger(discount.getStatus(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éç¦ç¨æ°æ®,æ æ³è¿è¡å é¤"); } discountMapper.update(null,new UpdateWrapper<Discount>().lambda().set(Discount::getIsdeleted,Constants.ONE).eq(Discount::getId,discount.getId())); } @Override public void updStatus(Discount discount) { if(Objects.isNull(discount) || StringUtils.isBlank(discount.getId()) || Objects.isNull(discount.getStatus())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } discountMapper.update(null,new UpdateWrapper<Discount>().lambda().set(Discount::getStatus,discount.getStatus()).eq(Discount::getId,discount.getId())); } @Override public void delete(Discount discount) { @@ -69,7 +160,20 @@ @Override public Discount findById(String id) { return discountMapper.selectById(id); Discount discount = discountJoinMapper.selectOne(new MPJLambdaWrapper<Discount>() .select(" (select count(1) from goodsorder g where g.obj_type = 0 and g.obj_id = t.id and g.pay_status = 1 ) ",Discount::getSaleNum) .leftJoin(SystemUser.class,SystemUser::getId,Discount::getCreator) .eq(Discount::getId,id) ); if(Objects.isNull(discount)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } if(StringUtils.isNotBlank(discount.getImgurl())){ String path =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FILE_DIR).getCode()+ systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.DISCOUNT).getCode(); discount.setFullImgUrl(path + discount.getImgurl()); } return discount; } @Override @@ -87,112 +191,20 @@ @Override public PageData<Discount> findPage(PageWrap<Discount> pageWrap) { IPage<Discount> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<Discount> queryWrapper = new QueryWrapper<>(); MPJLambdaWrapper<Discount> queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(Discount::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(Discount::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.lambda().le(Discount::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(Discount::getCreator, pageWrap.getModel().getCreator()); } if (pageWrap.getModel().getEditDate() != null) { queryWrapper.lambda().ge(Discount::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.lambda().le(Discount::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); } if (pageWrap.getModel().getEditor() != null) { queryWrapper.lambda().eq(Discount::getEditor, pageWrap.getModel().getEditor()); } if (pageWrap.getModel().getIsdeleted() != null) { queryWrapper.lambda().eq(Discount::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getInfo() != null) { queryWrapper.lambda().eq(Discount::getInfo, pageWrap.getModel().getInfo()); } if (pageWrap.getModel().getName() != null) { queryWrapper.lambda().eq(Discount::getName, pageWrap.getModel().getName()); } if (pageWrap.getModel().getType() != null) { queryWrapper.lambda().eq(Discount::getType, pageWrap.getModel().getType()); } if (pageWrap.getModel().getLimitType() != null) { queryWrapper.lambda().eq(Discount::getLimitType, pageWrap.getModel().getLimitType()); } if (pageWrap.getModel().getLimitTime() != null) { queryWrapper.lambda().eq(Discount::getLimitTime, pageWrap.getModel().getLimitTime()); } if (pageWrap.getModel().getPrice() != null) { queryWrapper.lambda().eq(Discount::getPrice, pageWrap.getModel().getPrice()); } if (pageWrap.getModel().getLinePrice() != null) { queryWrapper.lambda().eq(Discount::getLinePrice, pageWrap.getModel().getLinePrice()); } if (pageWrap.getModel().getChannel() != null) { queryWrapper.lambda().eq(Discount::getChannel, pageWrap.getModel().getChannel()); } if (pageWrap.getModel().getImgurl() != null) { queryWrapper.lambda().eq(Discount::getImgurl, pageWrap.getModel().getImgurl()); } if (pageWrap.getModel().getDescs() != null) { queryWrapper.lambda().eq(Discount::getDescs, pageWrap.getModel().getDescs()); } if (pageWrap.getModel().getContent() != null) { queryWrapper.lambda().eq(Discount::getContent, pageWrap.getModel().getContent()); } if (pageWrap.getModel().getStartDate() != null) { queryWrapper.lambda().ge(Discount::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())); queryWrapper.lambda().le(Discount::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate())); } if (pageWrap.getModel().getEndDate() != null) { queryWrapper.lambda().ge(Discount::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())); queryWrapper.lambda().le(Discount::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate())); } if (pageWrap.getModel().getUseType() != null) { queryWrapper.lambda().eq(Discount::getUseType, pageWrap.getModel().getUseType()); } if (pageWrap.getModel().getUseStartDate() != null) { queryWrapper.lambda().ge(Discount::getUseStartDate, Utils.Date.getStart(pageWrap.getModel().getUseStartDate())); queryWrapper.lambda().le(Discount::getUseStartDate, Utils.Date.getEnd(pageWrap.getModel().getUseStartDate())); } if (pageWrap.getModel().getUseEndDate() != null) { queryWrapper.lambda().ge(Discount::getUseEndDate, Utils.Date.getStart(pageWrap.getModel().getUseEndDate())); queryWrapper.lambda().le(Discount::getUseEndDate, Utils.Date.getEnd(pageWrap.getModel().getUseEndDate())); } if (pageWrap.getModel().getUseDays() != null) { queryWrapper.lambda().eq(Discount::getUseDays, pageWrap.getModel().getUseDays()); } if (pageWrap.getModel().getUseHoliday() != null) { queryWrapper.lambda().eq(Discount::getUseHoliday, pageWrap.getModel().getUseHoliday()); } if (pageWrap.getModel().getUseWorkday() != null) { queryWrapper.lambda().eq(Discount::getUseWorkday, pageWrap.getModel().getUseWorkday()); } if (pageWrap.getModel().getSaleLimit() != null) { queryWrapper.lambda().eq(Discount::getSaleLimit, pageWrap.getModel().getSaleLimit()); } if (pageWrap.getModel().getSaleDayLimit() != null) { queryWrapper.lambda().eq(Discount::getSaleDayLimit, pageWrap.getModel().getSaleDayLimit()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.lambda().eq(Discount::getStatus, pageWrap.getModel().getStatus()); } if (pageWrap.getModel().getIsbike() != null) { queryWrapper.lambda().eq(Discount::getIsbike, pageWrap.getModel().getIsbike()); } if (pageWrap.getModel().getIselecbike() != null) { queryWrapper.lambda().eq(Discount::getIselecbike, pageWrap.getModel().getIselecbike()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } } return PageData.from(discountMapper.selectPage(page, queryWrapper)); Discount modele = pageWrap.getModel(); queryWrapper.selectAll(Discount.class) .select(" (select count(1) from goodsorder g where g.obj_type = 0 and g.obj_id = t.id and g.pay_status = 1 ) ",Discount::getSaleNum) .leftJoin(SystemUser.class,SystemUser::getId,Discount::getCreator) .like(StringUtils.isNotEmpty(pageWrap.getModel().getName()),Discount::getName,pageWrap.getModel().getName()) .eq(Objects.nonNull(modele.getStatus()),Discount::getStatus, modele.getStatus()) .eq(Objects.nonNull(modele.getBikeOrElec()) && Constants.equalsInteger(modele.getBikeOrElec(),Constants.ONE),Discount::getIsbike, Constants.ONE) .eq(Objects.nonNull(modele.getBikeOrElec()) && Constants.equalsInteger(modele.getBikeOrElec(),Constants.TWO),Discount::getIselecbike, Constants.ONE) .eq(Discount::getIsdeleted, Constants.ZERO) .eq( pageWrap.getModel().getStatus() !=null,BikeRepair::getStatus,pageWrap.getModel().getStatus()); queryWrapper.orderByDesc(Discount::getCreateDate); return PageData.from(discountJoinMapper.selectJoinPage(page, Discount.class,queryWrapper)); } @Override server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -30,10 +30,7 @@ import com.doumee.dao.business.model.MemberRides; import com.doumee.dao.business.vo.GoodsorderExportVO; import com.doumee.dao.business.vo.GoodsorderTotalDataVO; import com.doumee.dao.business.web.request.BikeRepairDTO; import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO; import com.doumee.dao.business.web.request.MemberRidesQuery; import com.doumee.dao.business.web.request.RefundDTO; import com.doumee.dao.business.web.request.*; import com.doumee.dao.business.web.response.*; import com.doumee.dao.business.join.MemberRidesJoinMapper; import com.doumee.dao.business.model.*; @@ -78,6 +75,12 @@ @Autowired private GoodsorderMapper goodsorderMapper; @Autowired private DiscountMemberMapper discountMemberMapper; @Autowired private DiscountLogMapper discountLogMapper; @Autowired GoodsorderJoinMapper goodsorderJoinMapper; @@ -241,6 +244,8 @@ } return PageData.from(goodsorderExportVOIPage); } @Override public List<GoodsorderExportVO> findExportAccountDetailPage(Goodsorder model){ model.setPayStatus(Constants.ONE); //åªæ¥è¯¢æ¯ä»æåç @@ -288,7 +293,9 @@ MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Goodsorder.class); queryWrapper.selectAs(Member::getOpenid, Goodsorder::getOpenid); queryWrapper.selectAs(DiscountMember::getName, Goodsorder::getDiscountName); queryWrapper.leftJoin(Member.class, Member::getId ,Goodsorder::getMemberId); queryWrapper.leftJoin(DiscountMember.class, DiscountMember::getId ,Goodsorder::getObjId); 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"); //æ¶é´æ®µçé @@ -317,6 +324,7 @@ IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Goodsorder> queryWrapper = initQueryParamByModel(pageWrap.getModel()); queryWrapper.orderByDesc(Goodsorder::getPayDate); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Goodsorder::getType,pageWrap.getModel().getType()); queryWrapper.select("(select sum(er.discount_price) from member_rides er where er.ordre_id=t.id and er.isdeleted=0) as discountMoney," + "(select er.status from member_rides er where er.ordre_id=t.id order by er.create_date desc limit 1) as memberRidesStatus"); if(Objects.nonNull(pageWrap.getModel().getCloseStatus()) && pageWrap.getModel().getCloseStatus().equals(Constants.ZERO)){ @@ -325,6 +333,7 @@ if(Objects.nonNull(pageWrap.getModel().getCloseStatus()) && pageWrap.getModel().getCloseStatus().equals(Constants.ONE)){ queryWrapper.eq(Goodsorder::getStatus,Constants.GOODSORDER_STATUS.CLOSE.getKey()); } queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getDiscountName()),Goodsorder::getDiscountName,pageWrap.getModel().getDiscountName()); IPage<Goodsorder> goodsorderIPage = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper); if (!CollectionUtils.isEmpty(goodsorderIPage.getRecords())){ goodsorderIPage.getRecords().forEach(s->{ @@ -336,6 +345,9 @@ } return PageData.from(goodsorderIPage); } @Override @@ -811,9 +823,16 @@ } @Override public void backGoodsorder(String orderId, BigDecimal money,String reason) { public void backGoodsorder(GoodsorderBackDTO goodsorderBackDTO) { LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Goodsorder goodsorder = goodsorderMapper.selectById(orderId); if(Objects.isNull(goodsorderBackDTO) || StringUtils.isBlank(goodsorderBackDTO.getOrderId()) || StringUtils.isBlank(goodsorderBackDTO.getReason()) || Objects.isNull(goodsorderBackDTO.getBackType()) || Objects.isNull(goodsorderBackDTO.getMoney())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } Goodsorder goodsorder = goodsorderMapper.selectById(goodsorderBackDTO.getOrderId()); if(goodsorder == null){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "对ä¸èµ·ï¼è®¢åä¿¡æ¯ä¸åå¨ï¼è¯·å·æ°é¡µé¢éè¯ï¼"); } @@ -822,7 +841,7 @@ } QueryWrapper<Refund> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Refund::getObjId,orderId) .eq(Refund::getObjId,goodsorderBackDTO.getOrderId()) .eq(Refund::getStatus,Constants.TWO) .eq(Refund::getIsdeleted,Constants.ZERO) ; wrapper.select("sum(money) as money").last(" limit 1"); @@ -830,18 +849,42 @@ BigDecimal refundMoney = total == null?new BigDecimal(0):Constants.formatDecimalNum(total.getMoney()); //å¯éå©ä½ åä½å BigDecimal canBalance =Constants.translateMoney(Constants.formatDecimalNum(goodsorder.getMoney()).subtract(refundMoney)); if(canBalance.compareTo(money) >= Constants.ZERO){ if(canBalance.compareTo(goodsorderBackDTO.getMoney()) >= Constants.ZERO){ RefundDTO refundDTO = new RefundDTO(); refundDTO.setOrderId(orderId); refundDTO.setOrderId(goodsorderBackDTO.getOrderId()); refundDTO.setCanBalance(canBalance.multiply(new BigDecimal(100))); refundDTO.setRefundAmount(money.multiply(new BigDecimal(100))); refundDTO.setRefundAmount(goodsorderBackDTO.getMoney().multiply(new BigDecimal(100))); refundDTO.setTotalAmount(goodsorder.getMoney()); refundDTO.setMemberId(goodsorder.getMemberId()); refundDTO.setCreator(principal.getId()); refundDTO.setReason(reason); refundDTO.setReason(goodsorderBackDTO.getReason()); refundDTO.setType(Constants.REFUND_TYPE.BACK.getKey()); //éè´§éæ¬¾ æ¥çå¥é¤è®¢åç¶æ æ´æ°è®¢åä¿¡æ¯ if(Constants.equalsInteger(goodsorderBackDTO.getBackType(),Constants.ZERO)&&Constants.equalsInteger(goodsorder.getType(),Constants.ONE)){ DiscountMember discountMember = discountMemberMapper.selectById(goodsorder.getObjId()); if(Objects.isNull(discountMember)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æªæ¥è¯¢å°å¥é¤å¡ä¿¡æ¯"); } if(Constants.equalsInteger(discountMember.getStatus(),Constants.ZERO)){ discountMemberMapper.update(null,new UpdateWrapper<DiscountMember>().lambda() .set(DiscountMember::getStatus,Constants.ONE) .eq(DiscountMember::getId,discountMember.getId()) ); //æä½æ¥å¿ DiscountLog discountLog = new DiscountLog(); discountLog.setIsdeleted(Constants.ZERO); discountLog.setCreator(principal.getId()); discountLog.setCreateDate(new Date()); discountLog.setDiscountMemberId(discountMember.getId()); discountLog.setType(Constants.ONE); discountLog.setEditInfo("éè´§éå¡"); discountLog.setGoodsorderId(goodsorderBackDTO.getOrderId()); discountLogMapper.insert(discountLog); } } //åèµ·éæ¬¾ç³è¯· wxMiniUtilService.wxRefund(refundDTO); }else { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼é款éé¢ä¸å è®¸è¶ è¿"+canBalance+"å "); } server/web/src/main/java/com/doumee/jtt808/web/controller/ExceptionController.java
@@ -29,11 +29,11 @@ private static final Pattern compile = Pattern.compile("'\\w*'"); @ExceptionHandler(Exception.class) public APIResult<?> onException(Exception e) { log.error("ç³»ç»å¼å¸¸", e); return new APIResult<>(e); } // @ExceptionHandler(Exception.class) // public APIResult<?> onException(Exception e) { // log.error("ç³»ç»å¼å¸¸", e); // return new APIResult<>(e); // } @ExceptionHandler(APIException.class) public APIResult<?> onAPIException(APIException e) {