ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -84,6 +84,8 @@ String ACTIVITY_END = "活动已经结束"; String ACTIVITY_SE_ERROR = "开始时间不能大于结束时间"; String ACTIVITY_GOODS_NULL = "商品已被抢完"; String ACTIVITY_GOODS_BEYOND = "超出商品购买限制"; ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java
@@ -2,6 +2,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto; import com.ruoyi.system.api.domain.dto.GoodsTotalChangeDto; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.ruoyi.system.api.domain.poji.goods.GoodsFile; import com.ruoyi.system.api.domain.poji.goods.ShopGoods; @@ -68,6 +69,11 @@ public R<List<MerGoodsPriceListVo>> listGoodsPriceByGoodsId(String goodsIds) { return R.fail("获取商品列表失败:" + throwable.getMessage()); } @Override public R changeGoodsTotal(List<GoodsTotalChangeDto> goodsTotalChangeDtoList) { return R.fail("改变商品统计失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java
@@ -3,6 +3,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto; import com.ruoyi.system.api.domain.dto.GoodsTotalChangeDto; import com.ruoyi.system.api.domain.poji.goods.Goods; import com.ruoyi.system.api.domain.poji.goods.GoodsFile; import com.ruoyi.system.api.domain.poji.goods.ShopGoods; @@ -59,6 +60,10 @@ * @param goodsIds * @return R<List<MerGoodsPriceListVo>> */ @PostMapping("/listGoodsPriceByGoodsId") @PostMapping("/goods/listGoodsPriceByGoodsId") public R<List<MerGoodsPriceListVo>> listGoodsPriceByGoodsId(@RequestBody String goodsIds); @PostMapping("/goods/changeGoodsTotal") public R changeGoodsTotal(@RequestBody List<GoodsTotalChangeDto> goodsTotalChangeDtoList); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java
@@ -1,6 +1,8 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -50,6 +52,7 @@ private Integer serviceNum; @ApiModelProperty(value = "商品售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPrice; @ApiModelProperty(value = "商品详情") @@ -74,6 +77,7 @@ private Integer availableBuyNum; @ApiModelProperty(value = "商品活动价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal activityPrice; @ApiModelProperty(value = "售罄标记0否1是") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppShoppingCartVo.java
@@ -1,5 +1,7 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -40,6 +42,7 @@ private String goodsNurses; @ApiModelProperty(value = "商品售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPrice; @ApiModelProperty(value = "购买数量") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppSimpleActivityGoodsVo.java
@@ -1,5 +1,7 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -38,9 +40,11 @@ private String goodsNurses; @ApiModelProperty(value = "商品售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPrice; @ApiModelProperty(value = "商品活动价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal activityPrice; @ApiModelProperty(value = "活动销售数量") @@ -50,6 +54,7 @@ private Integer salesNumber; @ApiModelProperty(value = "已售比例") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPercent; @ApiModelProperty(value = "结束时间戳") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppSimpleGoodsVo.java
@@ -1,5 +1,7 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -37,9 +39,11 @@ private String goodsNurses; @ApiModelProperty(value = "商品售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPrice; @ApiModelProperty(value = "活动售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal activityPrice; @ApiModelProperty(value = "活动id") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerGoodsPageVo.java
@@ -1,6 +1,7 @@ package com.ruoyi.goods.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -38,9 +39,11 @@ private String goodsNurses; @ApiModelProperty(value = "商品建议售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal suggestSalesPrice;; @ApiModelProperty(value = "商品售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPrice;; @ApiModelProperty(value="周期次数标记0否1是") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGoodsListVo.java
@@ -1,5 +1,7 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -28,12 +30,15 @@ private String goodsType; @ApiModelProperty(value = "商品售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPrice;; @ApiModelProperty(value = "秒杀活动价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal activityPrice; @ApiModelProperty(value = "秒杀活动订金") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal activitySubscription; @ApiModelProperty(value = "秒杀活动库存") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsEditInfoVo.java
@@ -1,5 +1,7 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -49,12 +51,15 @@ private String goodsIntroduction; @ApiModelProperty(value = "建议售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal salesPrice; @ApiModelProperty(value = "最低售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal mininumPrice; @ApiModelProperty(value = "订金") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal subscription; @ApiModelProperty(value = "商品详情") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java
@@ -1,6 +1,8 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.ruoyi.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -48,10 +50,12 @@ @Excel(name = "商品建议售价", width = 30) @ApiModelProperty(value = "商品建议售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal suggestSalesPrice;; @Excel(name = "最低售价", width = 30) @ApiModelProperty(value = "最低售价") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal mininumPrice;; @Excel(name = "销量", width = 30) @@ -60,6 +64,7 @@ @Excel(name = "销售额", width = 30) @ApiModelProperty(value = "销售额") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal buyMoneyTotal; @Excel(name = "是否推荐", width = 30) ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsTotalVo.java
@@ -1,5 +1,7 @@ package com.ruoyi.goods.domain.vo; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -22,6 +24,7 @@ private Integer buyNumCount; @ApiModelProperty(value = "销售额") @JsonSerialize(using = ToStringSerializer.class) private BigDecimal buyMoneyTotal; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -101,6 +101,9 @@ Activity activity; // 获取当前时间 Date nowTime = new Date(); if(mgtActivityEditDto.getActivityStartTime().compareTo(mgtActivityEditDto.getActivityEndTime())>0){ throw new ServiceException(AppErrorConstant.ACTIVITY_SE_ERROR); } // 如果活动ID不为空,则表示修改活动信息 if (StringUtils.isNotBlank(mgtActivityEditDto.getActivityId())) { // 获取活动信息 @@ -587,9 +590,10 @@ try { lock.lock(30, TimeUnit.SECONDS); if(agStockChangeDto.getChangeType()==1){ //减少销量增加库存 activityMapper.addActivityGoodsStock(agStockChangeDto); }else{ //更新库存 //增加销量减少库存 activityMapper.subActivityGoodsStock(agStockChangeDto); } } finally { ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -36,10 +36,10 @@ AND FIND_IN_SET(#{param.shopId}, ta.applicable_shop) > 0 </if> <if test="param.activityStartTime!=null and param.activityStartTime != ''"> AND ta.activity_start_time >= #{param.activityStartTime} AND Date(ta.activity_start_time) >= #{param.activityStartTime} </if> <if test="param.activityEndTime!=null and param.activityEndTime != ''"> AND ta.activity_start_time <= #{param.activityEndTime} AND Date(ta.activity_start_time) <= #{param.activityEndTime} </if> <if test="param.activityStatus!=null"> AND ta.activity_status = #{param.activityStatus} ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -299,7 +299,7 @@ * @return R */ @PostMapping("/changeIntegral") public R signShare(@RequestBody IntegralChangeDto integralChangeDto) { public R changeIntegral(@RequestBody IntegralChangeDto integralChangeDto) { memberService.changeIntegral(integralChangeDto); return R.ok(); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
@@ -76,5 +76,5 @@ * @param * @return List<MerMemberCouponVo> */ List<MerMemberCouponVo> listMerShopGoodsMemberCoupon(MerGoodsCouponListDto merGoodsCouponListDto); List<MerMemberCouponVo> listMerShopGoodsMemberCoupon(@Param("param") MerGoodsCouponListDto merGoodsCouponListDto); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -223,7 +223,7 @@ if(StringUtils.isNotBlank(relGoodsIds)){ //获取指定商品列表 List<MerGoodsPriceListVo> goodsList = remoteGoodsService.listGoodsPriceByGoodsId(relGoodsIds).getData(); if(!goodsList.isEmpty()){ if(goodsList!=null&&!goodsList.isEmpty()){ merCouponGetVo.setRelGoodsList(goodsList); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -976,13 +976,14 @@ String memberUserIds = mgtMemberRelDelDto.getMemberUserIds(); String[] memberUserIdArr = memberUserIds.split(","); for (String str : memberUserIdArr) { Member member = this.getByUserId(Long.valueOf(str)); member.setBindingFlag(0); member.setRelationShopId(null); member.setRelationShopName(null); member.setUpdateTime(new Date()); member.setUpdateUserId(mgtMemberRelDelDto.getUserId()); memberMapper.update(member,null); LambdaUpdateWrapper<Member> updateWrapper = Wrappers.lambdaUpdate(); updateWrapper.eq(Member::getUserId, str) .set(Member::getBindingFlag, 0) .set(Member::getRelationShopId,null) .set(Member::getRelationShopName,null) .set(Member::getUpdateUserId,mgtMemberRelDelDto.getUserId()) .set(Member::getUpdateTime,new Date()); this.update(updateWrapper); } } } @@ -1516,7 +1517,7 @@ memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() - memberTotalChangeDto.getServiceCount()); memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount() + memberTotalChangeDto.getServiceCount()); } else { memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getServiceCount()); memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() + memberTotalChangeDto.getServiceCount()); memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount() + memberTotalChangeDto.getServiceCount()); } } ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
@@ -216,7 +216,7 @@ tuc.valid_start_time validStartTime, tuc.deadline_time deadlineTime FROM t_member_coupon tuc WHERE tuc.del_flag = 0 AND tuc.coupon_status = 1 AND tuc.user_id = #{param.userId} AND tuc.coupon_type IN (1,2,3) WHERE tuc.del_flag = 0 AND tuc.coupon_status = 1 AND tuc.user_id = #{param.memberUserId} AND tuc.coupon_type IN (1,2,3) AND (tuc.coupon_from = 1 OR (tuc.coupon_from = 2 AND tuc.shop_id = #{param.shopId})) <if test="param.goodsId!=null and param.goodsId!=''"> AND (tuc.use_scope = 1 OR (tuc.use_scope = 2 AND FIND_IN_SET(#{param.goodsId}, rel_goods_ids) > 0)) ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -213,7 +213,7 @@ <select id="pageMerCashMember" resultType="com.ruoyi.member.domain.vo.MerCashMemberPageVo"> SELECT tm.user_id userId, tm.nick_name nickName, tm.real_name nickName, tm.mobile mobile FROM t_member tm WHERE tm.relation_shop_id = #{param.shopId} @@ -327,7 +327,7 @@ <if test="sendType != null and sendType == 4"> AND tm.binding_flag = 0 </if> <if test="shopId != null and shopId != ''"> <if test="shopId != null and shopId != '' and sendType != null and sendType != 4"> AND tm.relation_shop_id = #{shopId} </if> </select> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -18,8 +18,6 @@ import javax.annotation.Resource; import java.util.List; import static org.reflections.Reflections.log; /** * @author jqs34 * @ClassName MerOrderController @@ -154,10 +152,20 @@ Page<MerMemberNoClearOrderVo> page = new Page<>(); page.setSize(merMemberNoClearOrderDto.getPageSize()); page.setCurrent(merMemberNoClearOrderDto.getPageNum()); log.info("merMemberNoClearOrderDto----"+merMemberNoClearOrderDto.toString()); List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderService.pageMerMemberOrder(page,merMemberNoClearOrderDto); return R.ok(page.setRecords(merMemberNoClearOrderVoList)); } @RequestMapping(value = "/pageMerMemberPayOrder", method = RequestMethod.POST) @ApiOperation(value = "获取商户端用户消费记录") public R<Page<MerOrderPageVo>> pageMerMemberPayOrder(@RequestBody MerMemberNoClearOrderDto merOrderPageDto) { Long userId = SecurityUtils.getUserId(); merOrderPageDto.setUserId(userId); Page<MerOrderPageVo> page = new Page<>(); page.setSize(merOrderPageDto.getPageSize()); page.setCurrent(merOrderPageDto.getPageNum()); List<MerOrderPageVo> merOrderPageVoList = orderService.pageMerMemberPayOrder(page,merOrderPageDto); return R.ok(page.setRecords(merOrderPageVoList)); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -161,10 +161,10 @@ @RequestMapping(value = "/getMgtShopAllOrderTotal", method = RequestMethod.POST) @ApiOperation(value = "获取商户订单统计") public R<MgtShopAllOrderTotal> getMgtShopAllOrderTotal(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) { public R<MgtShopAllOrderTotal> getMgtShopAllOrderTotal(@RequestBody MgtShopAllOrderPageDto mgtShopAllOrderPageDto) { Long userId = SecurityUtils.getUserId(); mgtShopOrderPageDto.setUserId(userId); MgtShopAllOrderTotal shopAllOrderTotal = orderService.getMgtShopAllOrderTotal(mgtShopOrderPageDto); mgtShopAllOrderPageDto.setUserId(userId); MgtShopAllOrderTotal shopAllOrderTotal = orderService.getMgtShopAllOrderTotal(mgtShopAllOrderPageDto); return R.ok(shopAllOrderTotal); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerCloseOrderDto.java
@@ -24,4 +24,7 @@ @ApiModelProperty(value = "支付备注") private String payRemark; @ApiModelProperty(value = "支付方式1微信2现金3支付宝") private Integer payType; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerNewOrderDto.java
@@ -35,7 +35,7 @@ @ApiModelProperty(value = "改变金额") private BigDecimal changeMoney; @ApiModelProperty(value = "支付方式") @ApiModelProperty(value = "支付方式1微信2现金3支付宝") private Integer payType; @ApiModelProperty(value = "订单备注") ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyOrderDto.java
@@ -24,4 +24,7 @@ @ApiModelProperty(value = "实付金额") private BigDecimal relPayMoney; @ApiModelProperty(value = "支付方式1微信2现金3支付宝") private Integer payType; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberOrderVo.java
New file @@ -0,0 +1,59 @@ package com.ruoyi.order.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * @ClassName MerMemberOrderVo * @Description TODO * @Author jqs * @Date 2023/8/5 16:08 * @Version 1.0 */ @Data public class MerMemberOrderVo { @ApiModelProperty(value = "订单id") private String orderId; @ApiModelProperty(value="订单编号") private String orderNo; @ApiModelProperty(value="订单状态") private Integer orderStatus; @ApiModelProperty(value = "商品总价") private BigDecimal orderGoodsMoney; @ApiModelProperty(value = "优惠券抵扣") private BigDecimal couponDiscount; @ApiModelProperty(value="应付金额") private BigDecimal receivableMoney; @ApiModelProperty(value="应收订金") private BigDecimal receivableDeposit; @ApiModelProperty(value="实收金额") private BigDecimal receiveMoney; @ApiModelProperty(value="已收金额") private BigDecimal payMoney; @ApiModelProperty(value="未收金额") private BigDecimal unPaidMoney; @ApiModelProperty(value="收款时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date receiveMoneyTime; @ApiModelProperty(value="收款金额") private BigDecimal thisReceiveMoney; @ApiModelProperty(value="收款方式") private String thisReceiveType; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderPageVo.java
@@ -76,6 +76,9 @@ @ApiModelProperty(value="订单来源") private String orderFromDesc; @ApiModelProperty(value="活动名字") private String activityName; @ApiModelProperty(value="订单商品列表") private List<MerOrderGoodsPageVo> merOrderGoodsVoList; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyOrderVo.java
@@ -69,6 +69,18 @@ @ApiModelProperty(value = "用户电话") private String userMobile; @ApiModelProperty(value="实收金额") private BigDecimal realReceiveMoney; @ApiModelProperty(value="已收金额") private BigDecimal receiveMoney; @ApiModelProperty(value="未收金额") private BigDecimal unReceiveMoney; @ApiModelProperty(value="支付方式1.全款2订金") private Integer payType; @ApiModelProperty(value="结清标记0否1是") private Integer closeFlag; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -615,8 +615,16 @@ * @description 获取商户订单统计 * @author jqs * @date 2023/8/4 10:25 * @param mgtShopOrderPageDto * @param mgtShopAllOrderPageDto * @return MgtShopAllOrderTotal */ MgtShopAllOrderTotal getMgtShopAllOrderTotal(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto); MgtShopAllOrderTotal getMgtShopAllOrderTotal(@Param("param")MgtShopAllOrderPageDto mgtShopAllOrderPageDto); /** * 分页获取消费记录 * @param merOrderPageDto * @return */ List<MerOrderPageVo> pageMerMemberPayOrder(Page page,@Param("param") MerMemberNoClearOrderDto merOrderPageDto); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1226,6 +1226,18 @@ merVerifyOrderVo.setPayTime(order.getPayTime()); merVerifyOrderVo.setUseTime(order.getUseTime()); merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList); merVerifyOrderVo.setPayType(order.getPayType()); merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); if(order.getPayType()==1){ merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); }else{ if(order.getOfflinePayMoney()!=null){ merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); }else{ merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); } } merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney())); // 根据订单用户ID获取用户信息 Member member = remoteMemberService.getMember(order.getUserId()).getData(); merVerifyOrderVo.setUserName(member.getRealName()); @@ -1357,6 +1369,18 @@ merVerifyOrderVo.setCreateTime(order.getCreateTime()); merVerifyOrderVo.setPayTime(order.getPayTime()); merVerifyOrderVo.setUseTime(order.getUseTime()); merVerifyOrderVo.setPayType(order.getPayType()); merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney()); if(order.getPayType()==1){ merVerifyOrderVo.setReceiveMoney(order.getPayMoney()); }else{ if(order.getOfflinePayMoney()!=null){ merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney()); }else{ merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO); } } merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney())); Member member = remoteMemberService.getMember(order.getUserId()).getData(); merVerifyOrderVo.setUserName(member.getRealName()); merVerifyOrderVo.setUserMobile(member.getMobile()); @@ -1373,7 +1397,7 @@ payRecord.setOrderId(order.getOrderId()); payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney()); payRecord.setPayTime(new Date()); payRecord.setPayType(2); payRecord.setPayType(merVerifyOrderDto.getPayType()); payRecordService.save(payRecord); return merVerifyOrderVo; @@ -1613,7 +1637,7 @@ payRecord.setOrderId(order.getOrderId()); payRecord.setPayMoney(merCloseOrderDto.getPayMoney()); payRecord.setPayTime(new Date()); payRecord.setPayType(2); payRecord.setPayType(merCloseOrderDto.getPayType()); payRecordService.save(payRecord); } @@ -1955,6 +1979,9 @@ if (orderFrom != null) { if (orderFrom == 1) { orderFromDesc = "商城订单"; } else if(orderFrom == 2){ orderFromDesc = "店铺砍价活动("+merOrderPageVo.getActivityName()+")"; } else { orderFromDesc = "线下创建"; } @@ -4038,12 +4065,64 @@ * @description 获取商户订单统计 * @author jqs * @date 2023/8/4 10:25 * @param mgtShopOrderPageDto * @param mgtShopAllOrderPageDto * @return MgtShopAllOrderTotal */ @Override public MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){ MgtShopAllOrderTotal shopAllOrderTotal = orderMapper.getMgtShopAllOrderTotal(mgtShopOrderPageDto); public MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopAllOrderPageDto mgtShopAllOrderPageDto){ MgtShopAllOrderTotal shopAllOrderTotal = orderMapper.getMgtShopAllOrderTotal(mgtShopAllOrderPageDto); return shopAllOrderTotal; } /** * 分页获取会员消费记录 * @param merOrderPageDto * @return */ @Override public List<MerOrderPageVo> pageMerMemberPayOrder(Page page,MerMemberNoClearOrderDto merOrderPageDto){ List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerMemberPayOrder(page, merOrderPageDto); if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) { Long userId; Member member; Integer orderFrom; String orderFromDesc; BigDecimal zeroBig = new BigDecimal("0.00"); StringJoiner userIdSj = new StringJoiner(","); for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { userId = merOrderPageVo.getUserId(); userIdSj.add(userId.toString()); orderFrom = merOrderPageVo.getOrderFrom(); if (orderFrom != null) { if (orderFrom == 1) { orderFromDesc = "商城订单"; } else { orderFromDesc = "线下创建"; } } else { orderFromDesc = "商城订单"; } merOrderPageVo.setOrderFromDesc(orderFromDesc); merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney())); if (merOrderPageVo.getUnPaidMoney() == null) { merOrderPageVo.setUnPaidMoney(zeroBig); } } MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto(); mgtBaseBathDto.setIds(userIdSj.toString()); List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData(); Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) { if(merOrderPageVo.getUserId()!=null&&userMap.get(merOrderPageVo.getUserId())!=null){ merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName()); merOrderPageVo.setNickName(userMap.get(merOrderPageVo.getUserId()).getNickName()); merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile()); }else{ log.debug("订单merOrderPageVo"+merOrderPageVo.getOrderId()+"缺少用户"); } } } return merOrderPageVoList; } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -494,8 +494,16 @@ * @description 获取商户订单统计 * @author jqs * @date 2023/8/4 10:25 * @param mgtShopOrderPageDto * @param mgtShopAllOrderPageDto * @return MgtShopAllOrderTotal */ MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto); MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopAllOrderPageDto mgtShopAllOrderPageDto); /** * 分页获取会员消费记录 * @param merOrderPageDto * @return */ List<MerOrderPageVo> pageMerMemberPayOrder(Page page,MerMemberNoClearOrderDto merOrderPageDto); } ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -323,7 +323,8 @@ tog.goods_type goodsType, tog.buy_num buyNum, toc.create_time createTime, toc.order_from orderFrom toc.order_from orderFrom, toc.activity_name activityName FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId} @@ -367,10 +368,16 @@ toc.order_status orderStatus, toc.order_money orderGoodsMoney, toc.coupon_money couponDiscount, toc.receivable_money receivableMoney, toc.receivable_money-toc.online_pay_money receivableMoney, toc.receivable_deposit receivableDeposit, toc.pay_money payMoney FROM t_order toc toc.change_receivable_money payMoney, IFNULL(toc.offline_pay_money,0) receiveMoney, IFNULL(toc.receivable_money-IFNULL(CASE toc.pay_type WHEN 1 THEN toc.online_pay_money WHEN 2 THEN IFNULL(toc.offline_pay_money,0) END,0),0) unpaidMoney, tpr.pay_time receiveMoneyTime, tpr.pay_money thisReceiveMoney, CASE tpr.pay_type WHEN 1 THEN "微信" WHEN 2 THEN "现金" WHEN 3 THEN "支付宝" END thisReceiveType FROM t_pay_record tpr INNER JOIN t_order toc ON tpr.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.user_id = #{userId} AND (toc.order_status = 2 OR toc.order_status = 3) ORDER BY toc.create_time DESC </select> @@ -444,7 +451,7 @@ AND Date(toc.create_time) <= #{param.endOrderDate} </if> <if test="param.keyword != null and param.keyword != ''"> AND toc.order_no LIKE CONCAT('%',#{param.keyword},'%') AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%')) </if> ORDER BY toc.create_time DESC </select> @@ -1699,4 +1706,29 @@ </if> ORDER BY toc.create_time DESC </select> <select id="pageMerMemberPayOrder" resultMap="merOrderResultMap"> SELECT toc.user_id userId, toc.order_id orderId, toc.order_no orderNo, toc.pay_type payType, toc.order_status orderStatus, toc.order_money orderGoodsMoney, toc.coupon_money couponDiscount, toc.receivable_money-toc.online_pay_money receivableMoney, toc.receivable_deposit receivableDeposit, toc.change_receivable_money payMoney, IFNULL(toc.offline_pay_money,0) receiveMoney, toc.order_remark orderRemark, tog.goods_name goodsName, tog.goods_type goodsType, tog.buy_num buyNum, toc.create_time createTime, toc.order_from orderFrom FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND (toc.order_status = 2 OR toc.order_status = 3) AND toc.shop_id = #{param.shopId} AND toc.user_id = #{param.memberUserId} ORDER BY toc.create_time DESC </select> </mapper> ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyTaskPageVo.java
@@ -28,5 +28,6 @@ @ApiModelProperty(value="紧急情况") private String emergencyState;; @ApiModelProperty(value = "跟进时间") private String followTime; } ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -429,14 +429,13 @@ </select> <select id="getNearbyShop" resultType="com.ruoyi.shop.domain.vo.AppNearShopVo"> SELECT ts.shop_id shopId, ACOS( COS(RADIANS(#{param.longitude})) * COS(RADIANS(ts.shop_latitude)) * COS(RADIANS(ts.shop_longitude) - RADIANS(#{param.latitude})) + SIN(RADIANS(#{param.longitude})) * SIN(RADIANS(ts.shop_latitude)) ) * 6378 as distance FROM t_shop ts WHERE ts.del_flag = 0 AND ts.shop_status = 1 SELECT ts.shop_id shopId, 6378.138 * 2 * ASIN(SQRT(POW(SIN(( #{param.latitude} * PI() / 180 - ts.shop_latitude * PI() / 180) / 2), 2) + COS(#{param.latitude} * PI() / 180) * COS(ts.shop_latitude * PI() / 180) * POW( SIN((#{param.longitude} * PI() / 180 - ts.shop_longitude * PI() / 180) / 2), 2 ))) AS distance FROM t_shop ts ORDER BY distance ASC LIMIT 1 </select> ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskMapper.xml
@@ -19,7 +19,8 @@ tat.task_date taskDate, tat.task_content taskContent, tmtr.follow_content dealContent, tat.emergency_state emergencyState tat.emergency_state emergencyState, tmtr.create_time followTime FROM t_agency_task tat LEFT JOIN t_agency_task_record tmtr ON tat.task_id = tmtr.task_id WHERE tat.del_flag = 0 AND tat.shop_id = #{param.shopId} AND tat.agency_id = #{param.agencyId} @@ -29,7 +30,7 @@ ORDER BY tat.task_date DESC </select> <select id="pageMerAgencyTask" resultType="com.ruoyi.shop.domain.vo.MerAgencySimpleTaskRecordPageVo"> <select id="pageMerAgencySimpleTaskRecord" resultType="com.ruoyi.shop.domain.vo.MerAgencySimpleTaskRecordPageVo"> SELECT tmtr.create_time createTime, CASE tmtr.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType, ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml
@@ -86,7 +86,7 @@ tmt.task_content taskContent, tmtr.follow_content dealContent, tmt.emergency_state emergencyState, CASE WHEN task_date = CURRENT_DATE() THEN 1 ELSE 0 END todayFlag CASE tmt.task_status WHEN 1 THEN 1 WHEN 3 THEN 1 ELSE 0 END todayFlag FROM t_member_task tmt LEFT JOIN t_member_task_record tmtr ON tmt.task_id = tmtr.task_id WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} AND tmt.user_id = #{param.memberUserId} ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml
@@ -8,7 +8,7 @@ tmtr.id followId, tmtr.task_id taskId, tmtr.create_time createTime, tmt.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType, CASE tmtr.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType, tmtr.custome_follow_type customeFollowType, tmtr.follow_content followContent, tmtr.call_time callTime,