ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/GoodsTotalChangeDto.java
New file @@ -0,0 +1,33 @@ package com.ruoyi.system.api.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @ClassName GoodsTotalChangeDto * @Description TODO * @Author jqs * @Date 2023/7/23 18:02 * @Version 1.0 */ @Data public class GoodsTotalChangeDto { @ApiModelProperty(value = "商品id") private String goodsId; @ApiModelProperty(value = "1下单2退款") private Integer changeType; @ApiModelProperty(value = "数量变化") private Integer changeNum; @ApiModelProperty(value = "金额变化") private BigDecimal money; @ApiModelProperty(value = "人数变化") private Integer personNum; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteActivityService.java
@@ -85,7 +85,7 @@ * @param activityId * @return R */ @PostMapping("/startActivity") @PostMapping("/activity/startActivity") public R startActivity(@RequestBody String activityId); /** @@ -95,6 +95,6 @@ * @param activityId * @return R */ @PostMapping("/endActivity") @PostMapping("/activity/endActivity") public R endActivity(@RequestBody String activityId); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/ActivityController.java
@@ -102,6 +102,7 @@ */ @PostMapping("/startActivity") public R startActivity(@RequestBody String activityId){ activityService.startActivity(activityId); return R.ok(); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/concole/GoodsController.java
@@ -3,8 +3,10 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.goods.service.goods.GoodsFileService; import com.ruoyi.goods.service.goods.GoodsService; import com.ruoyi.goods.service.goods.GoodsTotalService; import com.ruoyi.goods.service.goods.ShopGoodsService; 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; @@ -36,6 +38,9 @@ @Resource private ShopGoodsService shopGoodsService; @Resource private GoodsTotalService goodsTotalService; @PostMapping("/getGoods") public R<Goods> getGoods(@RequestBody String goodsId) @@ -113,4 +118,11 @@ List<MerGoodsPriceListVo> goodsPriceListVoList = goodsService.listGoodsPriceByGoodsId(goodsIds); return R.ok(goodsPriceListVoList); } @PostMapping("/changeGoodsTotal") public R changeGoodsTotal(@RequestBody List<GoodsTotalChangeDto> goodsTotalChangeDtoList) { goodsTotalService.changeGoodsTotal(goodsTotalChangeDtoList); return R.ok(); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppGoodsController.java
@@ -82,7 +82,7 @@ if(userId != null){ Member member = memberService.getMember(userId).getData(); appShoppingCartAddDto.setUserId(userId); if(appShoppingCartAddDto.getShopId()==null&&member!=null&&member.getRelationShopId()!=null){ if(member!=null&&member.getBindingFlag()==1&&member.getRelationShopId()!=null){ appShoppingCartAddDto.setShopId(member.getRelationShopId()); } } @@ -97,7 +97,7 @@ if(userId!=null){ Member member = memberService.getMember(userId).getData(); appShoppingCartChangeDto.setUserId(userId); if(member!=null&&member.getRelationShopId()!=null){ if(member!=null&&member.getBindingFlag()==1&&member.getRelationShopId()!=null){ appShoppingCartChangeDto.setShopId(member.getRelationShopId()); } } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsTotalService.java
@@ -2,6 +2,9 @@ import com.ruoyi.goods.domain.pojo.goods.GoodsTotal; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.api.domain.dto.GoodsTotalChangeDto; import java.util.List; /** * <p> @@ -13,4 +16,12 @@ */ public interface GoodsTotalService extends IService<GoodsTotal> { /** * @description 更新商品统计 * @author jqs * @date 2023/7/23 18:25 * @param goodsTotalChangeDtoList * @return void */ void changeGoodsTotal(List<GoodsTotalChangeDto> goodsTotalChangeDtoList); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -192,6 +192,18 @@ startDelayTask.setEndTime(activityStartTime); startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); remoteConfigService.addDelayTask(startDelayTask); }else{ if(startDelayTask.getEndTime().compareTo(activityStartTime)!=0){ remoteConfigService.deleteDelayTask(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); redisService.deleteObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); redisService.setCacheObject(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId, activityStartTime, startTimeDifference, TimeUnit.MILLISECONDS); startDelayTask = new DelayTask(); startDelayTask.setDelFlag(0); startDelayTask.setCreateTime(new Date()); startDelayTask.setEndTime(activityStartTime); startDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_START_TASK.getCode() + "-" + activityId); remoteConfigService.addDelayTask(startDelayTask); } } // 查询延时任务 DelayTask endDelayTask = remoteConfigService.getDelayTask(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId).getData(); @@ -204,6 +216,18 @@ endDelayTask.setEndTime(activityEndTime); endDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId); remoteConfigService.addDelayTask(endDelayTask); }else{ if(endDelayTask.getEndTime().compareTo(activityEndTime)!=0){ remoteConfigService.deleteDelayTask(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId); redisService.deleteObject(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId); redisService.setCacheObject(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId, activityEndTime, startTimeDifference, TimeUnit.MILLISECONDS); endDelayTask = new DelayTask(); endDelayTask.setDelFlag(0); endDelayTask.setCreateTime(new Date()); endDelayTask.setEndTime(activityStartTime); endDelayTask.setRedisKey(DelayTaskEnum.ACTIVITY_END_TASK.getCode() + "-" + activityId); remoteConfigService.addDelayTask(endDelayTask); } } } } @@ -466,6 +490,7 @@ */ @Override public void startActivity(String activityId){ log.debug(activityId+"活动开始"); Activity activity = this.getById(activityId); if(activity!=null&&activity.getActivityStatus()==0){ activity.setActivityStatus(1); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -181,6 +181,8 @@ appGoodsInfoVo.setSalesPrice(shopGoods.getSalesPrice()); appGoodsInfoVo.setServiceNum(shopGoods.getServiceNum()); } GoodsTotal goodsTotal = goodsTotalService.getById(goods.getGoodsId()); appGoodsInfoVo.setSalesNum(goodsTotal.getBuyNumCount()); //活动商品判断 if(appGoodsInfoGetDto.getActivityFlag()==1){ ActivityGoods activityGoods = activityGoodsService.getByGoodsId(appGoodsInfoGetDto.getActivityId(),goods.getGoodsId()); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsTotalServiceImpl.java
@@ -5,7 +5,11 @@ import com.ruoyi.goods.domain.pojo.goods.GoodsTotal; import com.ruoyi.goods.mapper.goods.GoodsTotalMapper; import com.ruoyi.goods.service.goods.GoodsTotalService; import com.ruoyi.system.api.domain.dto.GoodsTotalChangeDto; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * <p> @@ -18,4 +22,49 @@ @Service public class GoodsTotalServiceImpl extends ServiceImpl<GoodsTotalMapper, GoodsTotal> implements GoodsTotalService { /** * @description 更新商品统计 * @author jqs * @date 2023/7/23 18:25 * @param goodsTotalChangeDtoList * @return void */ @Override public void changeGoodsTotal(List<GoodsTotalChangeDto> goodsTotalChangeDtoList){ if (goodsTotalChangeDtoList != null && !goodsTotalChangeDtoList.isEmpty()) { // 创建一个空的GoodsTotal对象 GoodsTotal goodsTotal; // 创建一个空的GoodsTotal列表 List<GoodsTotal> goodsTotalList = new ArrayList<>(); // 遍历goodsTotalChangeDtoList列表 for (GoodsTotalChangeDto goodsTotalChangeDto : goodsTotalChangeDtoList) { // 根据goodsId获取对应的GoodsTotal对象 goodsTotal = this.getById(goodsTotalChangeDto.getGoodsId()); // 如果GoodsTotal对象不为空 if (goodsTotal != null) { // 根据changeType判断操作类型 if (goodsTotalChangeDto.getChangeType() == 1) { // 更新GoodsTotal对象的相关属性 goodsTotal.setBuyCount(goodsTotal.getBuyCount() + 1); goodsTotal.setBuyNumCount(goodsTotal.getBuyNumCount() + goodsTotalChangeDto.getChangeNum()); goodsTotal.setBuyUserCount(goodsTotal.getBuyUserCount() + goodsTotalChangeDto.getPersonNum()); goodsTotal.setBuyMoneyTotal(goodsTotal.getBuyMoneyTotal().add(goodsTotalChangeDto.getMoney())); } else { // 更新GoodsTotal对象的相关属性 goodsTotal.setBuyCount(goodsTotal.getBuyCount() - 1); goodsTotal.setBuyNumCount(goodsTotal.getBuyNumCount() - goodsTotalChangeDto.getChangeNum()); goodsTotal.setBuyUserCount(goodsTotal.getBuyUserCount() - goodsTotalChangeDto.getPersonNum()); goodsTotal.setBuyMoneyTotal(goodsTotal.getBuyMoneyTotal().subtract(goodsTotalChangeDto.getMoney())); } // 将更新后的GoodsTotal对象添加到列表中 goodsTotalList.add(goodsTotal); } } // 如果goodsTotalList列表不为空,则保存或更新列表中的GoodsTotal对象 if (!goodsTotalList.isEmpty()) { this.saveOrUpdateBatch(goodsTotalList); } } } } ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -212,10 +212,10 @@ <if test="param.sort != null and param.sort != ''"> <choose> <when test="param.sort==2"> ORDER BY salesPrice DESC,tg.create_time DESC ORDER BY salesPrice ASC,tg.create_time DESC </when> <when test="param.sort==3"> ORDER BY salesPrice ASC,tg.create_time DESC ORDER BY salesPrice DESC,tg.create_time DESC </when> <when test="param.sort==4"> ORDER BY tgt.buy_num_count ASC,tg.create_time DESC @@ -223,7 +223,7 @@ <when test="param.sort==5"> ORDER BY tgt.buy_num_count DESC,tg.create_time DESC </when> <when test="param.sort==2"> <when test="param.sort==1"> ORDER BY tgt.buy_num_count,tg.create_time DESC </when> <otherwise> ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -366,7 +366,7 @@ userIdList = relUserIdList; } } if(relUserIdList!=null&&!relUserIdList.isEmpty()){ if(userIdList!=null&&!userIdList.isEmpty()){ List<MemberCoupon> memberCouponList = new ArrayList<>(); MemberCoupon memberCoupon; Integer sendTotal = 0; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -1049,7 +1049,15 @@ mgtMemberGetVo.setNickName(member.getNickName()); mgtMemberGetVo.setAvatar(member.getAvatar()); mgtMemberGetVo.setMobile(member.getMobile()); mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null); if(member.getGender()!=null){ if (member.getGender() == 0) { mgtMemberGetVo.setGender("男"); } else if (member.getGender() == 1) { mgtMemberGetVo.setGender("女"); } }else { mgtMemberGetVo.setGender("未知"); } mgtMemberGetVo.setBirthday(member.getBirthday()); mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict()); mgtMemberGetVo.setCreateTime(member.getCreateTime()); ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -193,6 +193,7 @@ <if test="param.createEndTime!=null and param.createEndTime!=''"> AND Date(tc.create_time) <= #{param.createEndTime} </if> ORDER BY tc.create_time </select> <select id="listMgtCouponSimpleVo" resultType="com.ruoyi.member.domain.vo.MgtCouponSimpleListVo"> @@ -239,7 +240,7 @@ ELSE '审核中' END auditStatus FROM t_coupon tc WHERE tc.del_flag = 0 WHERE tc.del_flag = 0 AND tc.coupon_from = 2 <if test="param.auditStatus!=null and param.auditStatus!=''"> AND tc.audit_status = #{param.auditStatus} </if> @@ -252,10 +253,11 @@ <if test="param.createEndTime!=null and param.createEndTime!=''"> AND Date(tc.create_time) <= #{param.createEndTime} </if> ORDER BY tc.create_time </select> <update id="updateCouponTotal"> UPDATE t_coupon_total set send_count = send_count + #{sendTotal}, send_user_count = send_user_count + sendPerson WHERE coupon_id = #{couponId} UPDATE t_coupon_total set send_count = send_count + #{sendTotal}, send_user_count = send_user_count + #{sendPerson} WHERE coupon_id = #{couponId} </update> <select id="pagePlatformMerCoupon" resultType="com.ruoyi.member.domain.vo.MerCouponPageVo"> @@ -336,7 +338,7 @@ tc.coupon_id FROM t_coupon tc LEFT JOIN t_member_coupon_record tmcr ON tc.coupon_id = tmcr.coupon_id AND tmcr.user_id = #{userId} WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND tc.send_type = 1 AND tmcr.limit_flag = 1 WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND tc.audit_status=2 AND tc.send_type = 1 AND tmcr.limit_flag = 1 </select> <select id="getAbleCouponPageVoList" resultType="com.ruoyi.member.domain.vo.AppGetAbleCouponPageVo"> ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -30,7 +30,7 @@ </resultMap> <sql id="selectMemberVo"> select user_id, del_flag, member_id, member_no, wx_openid, mini_openid, wx_unionid, relation_shop_id, nick_name, real_name, mobile, gender, referrer, customer_source, level, birthday, create_time, update_time, update_user_id, user_tags, avatar, binding_flag, goods_type from t_member select user_id, del_flag, member_id, member_no, wx_openid, mini_openid, wx_unionid, relation_shop_id, nick_name, real_name, mobile, gender, referrer, customer_source, level, birthday, create_time, update_time, update_user_id, user_tags, avatar, binding_flag, goods_type,relation_shop_name from t_member </sql> <select id="selectMemberList" parameterType="com.ruoyi.system.api.domain.poji.member.Member" resultMap="MemberResult"> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -2,12 +2,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.Order; import com.ruoyi.order.domain.vo.*; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.constant.SecurityConstant; import com.ruoyi.system.api.domain.dto.AppBaseGetDto; import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; import com.ruoyi.system.api.domain.poji.member.Member; @@ -39,6 +42,9 @@ @Resource private OrderService orderService; @Resource private RedisService redisService; @RequestMapping(value = "/buyGoods", method = RequestMethod.POST) @@ -166,9 +172,14 @@ Order order = orderService.getById(appBaseGetDto.getId()); appPlaceOrderVo.setOrderId(order.getOrderId()); appPlaceOrderVo.setOrderNo(order.getOrderNo()); appPlaceOrderVo.setPayMoney(order.getPayMoney()); appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); appPlaceOrderVo.setPayType(order.getPayType()); appPlaceOrderVo.setUnpaidMoney(order.getPayMoney()); orderService.payBack(order.getOrderId()); Integer delayTime = 30; if(redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)){ delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME); } appPlaceOrderVo.setPayDeadlineTime(DateUtils.addMinutes(order.getCreateTime(),delayTime)); return R.ok(appPlaceOrderVo); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
@@ -179,6 +179,7 @@ @TableField("change_receivable_money") private BigDecimal changeReceivableMoney; @Override protected Serializable pkVal() { return this.orderId; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppPlaceOrderVo.java
@@ -1,10 +1,12 @@ package com.ruoyi.order.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * @author jqs34 @@ -22,6 +24,9 @@ @ApiModelProperty(value = "订单编号") private String orderNo; @ApiModelProperty(value = "支付方式1.全款2.订金") private Integer payType; @ApiModelProperty(value = "支付金额") private BigDecimal payMoney; @@ -29,7 +34,8 @@ private BigDecimal unpaidMoney; @ApiModelProperty(value = "支付截止时间") private String payDeadlineTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date payDeadlineTime; @ApiModelProperty(value = "appId") private String appId; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderGetVo.java
@@ -1,6 +1,5 @@ package com.ruoyi.order.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -43,9 +42,14 @@ @ApiModelProperty(value="应收订金") private BigDecimal receivableDeposit; @ApiModelProperty(value="订单商品列表") private List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList; @ApiModelProperty(value = "支付方式1.全款2.订金") private Integer payType; @ApiModelProperty(value="订单支付金额") private BigDecimal payMoney; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppUserOrderPageVo.java
@@ -1,10 +1,11 @@ package com.ruoyi.order.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** @@ -53,4 +54,12 @@ @ApiModelProperty(value = "核销码") private String verifyCode; @ApiModelProperty(value = "订单创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @ApiModelProperty(value = "支付截止时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -590,4 +590,14 @@ * @return List<MgtMapIntTotalVo> */ List<MgtMapIntTotalVo> getStaffActivityMemberTotal(@Param("param")StaffTotalDto staffTotalDto); /** * @description 获取用户商品购买数量 * @author jqs * @date 2023/7/23 18:17 * @param userId * @param goodsId * @return Integer */ Integer countUserBuyGoodsNum(@Param("userId")Long userId, @Param("goodsId")String goodsId); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -19,7 +19,6 @@ import com.ruoyi.order.domain.pojo.order.OrderGoods; import com.ruoyi.order.domain.vo.*; import com.ruoyi.order.mapper.order.OrderMapper; import com.ruoyi.order.mapper.order.UserServiceRecordMapper; import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.order.service.order.OrderGoodsService; import com.ruoyi.order.service.order.OrderService; @@ -101,9 +100,6 @@ private RemoteActivityService remoteActivityService; @Resource private UserServiceRecordMapper userServiceRecordMapper; @Resource private RedisService redisService; @Autowired @@ -153,8 +149,7 @@ merBaseDto.setShopId(appSureOrderDto.getShopId()); // 获取用户优惠券列表 List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(merBaseDto).getData(); // 初始化商品优惠券列表 List<AppMemberCouponVo> appGoodsMemberCouponVoList; // 将优惠券列表转换为Map,以优惠券ID为键 Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); AppMemberCouponVo appMemberCouponVo; @@ -239,9 +234,6 @@ } } } if(appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()){ appSureOrderGoodsVo.setAppMemberCouponVoList(appMemberCouponVoList); } appSureOrderGoodsVo.setUseCoupon(useCoupon); appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); appSureOrderGoodsVo.setCouponDiscount(discountMoney); @@ -275,8 +267,23 @@ entity.setUseFlag(0); } } // 过滤商品优惠券列表 List<AppMemberCouponVo> appGoodsMemberCouponVoList; for(AppSureOrderGoodsVo sureOrderGoodsVo : appSureOrderGoodsVoList) { sureOrderGoodsVo.setAppMemberCouponVoList(appMemberCouponVoList); appGoodsMemberCouponVoList = new ArrayList<>(); for(AppMemberCouponVo entity : appMemberCouponVoList){ if(StringUtils.isBlank(entity.getRelGoodsIds())||entity.getRelGoodsIds().contains(sureOrderGoodsVo.getGoodsId())){ if(entity.getCouponType()!=1){ appGoodsMemberCouponVoList.add(entity); }else{ if(entity.getMoneyThreshold().compareTo(sureOrderGoodsVo.getGoodsTotalPrice())>0){ appGoodsMemberCouponVoList.add(entity); } } } } sureOrderGoodsVo.setAppMemberCouponVoList(appGoodsMemberCouponVoList); } } /*if (appMemberCouponVoList != null && !appMemberCouponVoList.isEmpty()) { @@ -634,19 +641,20 @@ order.setReceivableMoney(orderPayMoney); order.setReceivableDeposit(orderPayDeposit); order.setChangeReceivableMoney(orderPayMoney); order.setPayType(appPlaceOrderDto.getPayType()); // 根据支付类型计算支付金额 if (order.getPayType() == 1) { if (appPlaceOrderDto.getPayType() == 1) { order.setPayMoney(orderPayMoney); order.setOnlinePayMoney(orderPayMoney); appPlaceOrderVo.setPayMoney(orderPayMoney); appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); order.setPayType(1); order.setCloseFlag(1); } else if (order.getPayType() == 2) { } else if (appPlaceOrderDto.getPayType() == 2) { order.setPayMoney(orderPayDeposit); order.setOnlinePayMoney(orderPayDeposit); appPlaceOrderVo.setPayMoney(orderPayDeposit); appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); order.setPayType(2); order.setCloseFlag(0); } order.setOrderRemark(appPlaceOrderDto.getOrderRemark()); @@ -680,6 +688,7 @@ delayTask.setEndTime(DateUtils.addMinutes(new Date(),delayTime)); delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId); remoteConfigService.addDelayTask(delayTask); appPlaceOrderVo.setPayDeadlineTime(DateUtils.addMinutes(order.getCreateTime(),delayTime)); return appPlaceOrderVo; } @@ -860,19 +869,20 @@ order.setReceivableMoney(orderPayMoney); order.setReceivableDeposit(orderPayDeposit); order.setChangeReceivableMoney(orderPayMoney); order.setPayType(appPlaceActivityDto.getPayType()); // 根据支付类型设置订单支付金额,在线支付金额,订单支付金额,未支付金额,关闭标志 if (order.getPayType() == 1) { if (appPlaceActivityDto.getPayType() == 1) { order.setPayMoney(orderPayMoney); order.setOnlinePayMoney(orderPayMoney); appPlaceOrderVo.setPayMoney(orderPayMoney); appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); order.setPayType(1); order.setCloseFlag(1); } else if (order.getPayType() == 2) { } else if (appPlaceActivityDto.getPayType() == 2) { order.setPayMoney(orderPayDeposit); order.setOnlinePayMoney(orderPayDeposit); appPlaceOrderVo.setPayMoney(orderPayDeposit); appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); order.setPayType(2); order.setCloseFlag(0); } // 设置订单备注,商品数量,创建时间 @@ -914,6 +924,7 @@ delayTask.setEndTime(DateUtils.addMinutes(new Date(),delayTime)); delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + orderId); remoteConfigService.addDelayTask(delayTask); appPlaceOrderVo.setPayDeadlineTime(DateUtils.addMinutes(order.getCreateTime(),delayTime)); return appPlaceOrderVo; } @@ -941,6 +952,10 @@ Shop shopTemp = remoteShopService.getShop(shopIdLong).getData(); shopMap.put(shopIdLong, shopTemp); }); Integer delayTime = 30; if(redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)){ delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME); } for (AppUserOrderPageVo appUserOrderPageVo : appUserOrderPageVoList) { shop = shopMap.get(appUserOrderPageVo.getShopId()); appUserOrderPageVo.setShopName(shop.getShopName()); @@ -951,6 +966,7 @@ appUserOrderPageVo.setSameShop(0); } appUserOrderPageVo.setVerifyCode("1-" + appUserOrderPageVo.getOrderId()); appUserOrderPageVo.setEndTime(DateUtils.addMinutes(appUserOrderPageVo.getCreateTime(),delayTime)); } } return appUserOrderPageVoList; @@ -975,6 +991,7 @@ appUserOrderGetVo.setCouponDiscount(order.getCouponMoney()); appUserOrderGetVo.setReceivableDeposit(order.getReceivableDeposit()); appUserOrderGetVo.setReceivableMoney(order.getReceivableMoney()); appUserOrderGetVo.setPayType(order.getPayType()); appUserOrderGetVo.setPayMoney(order.getPayMoney()); appUserOrderGetVo.setOrderRemark(order.getOrderRemark()); appUserOrderGetVo.setShopId(order.getShopId()); @@ -1103,6 +1120,10 @@ if (order.getOrderStatus() != 2) { throw new ServiceException(AppErrorConstant.VERIFY_USED); } ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyOrderDto.getUserId()).getData(); if(!shopRelUserVo.getShopId().equals(order.getShopId())){ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } order.setOrderStatus(3); order.setUseTime(nowTime); order.setUseUserId(merVerifyOrderDto.getUserId()); @@ -1183,6 +1204,10 @@ @Override public MerVerifyCouponVo sureVerifyCoupon(MerVerifyCouponDto merVerifyCouponDto) { MerVerifyCouponGetVo verifyCouponGetVo = remoteCouponService.getVerifyCoupon(merVerifyCouponDto.getMemberCouponId()).getData(); ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyCouponDto.getUserId()).getData(); if(!shopRelUserVo.getShopId().equals(verifyCouponGetVo.getMemberCoupon().getShopId())){ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } // 创建MerVerifyCouponVo对象 MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象 @@ -1275,6 +1300,10 @@ MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrize(merVerifyPrizeDto.getPrizeId()).getData(); if(memberGiftRecord==null||memberGiftRecord.getVerifyStatus()!=1){ throw new ServiceException(AppErrorConstant.COUPON_USED); } ShopRelUserVo shopRelUserVo = remoteShopService.getShopByUserId(merVerifyPrizeDto.getUserId()).getData(); if(!shopRelUserVo.getShopId().equals(memberGiftRecord.getShopId())){ throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData(); merVerifyAwardVo.setUserName(member.getNickName()); @@ -1593,6 +1622,7 @@ order.setOnlinePayMoney(new BigDecimal("0.00")); order.setOfflinePayMoney(merNewOrderDto.getPayMoney()); order.setOffPayTime(nowTime); order.setPayType(1); order.setCloseFlag(1); this.save(order); //创建服务 @@ -3094,6 +3124,8 @@ Boolean haveGoods = false; // 获取订单中的所有商品 List<OrderGoods> orderGoodsList = orderGoodsService.listByOrderId(orderId); List<GoodsTotalChangeDto> goodsTotalChangeDtoList = new ArrayList<>(); GoodsTotalChangeDto goodsTotalChangeDto; // 遍历订单中的所有商品,根据商品类型累加收款金额,并标记商品存在状态 for (OrderGoods orderGoods : orderGoodsList) { switch (orderGoods.getGoodsType()) { @@ -3116,7 +3148,18 @@ default: break; } goodsTotalChangeDto = new GoodsTotalChangeDto(); goodsTotalChangeDto.setGoodsId(orderGoods.getGoodsId()); goodsTotalChangeDto.setChangeType(1); goodsTotalChangeDto.setChangeNum(orderGoods.getBuyNum()); goodsTotalChangeDto.setMoney(orderGoods.getGoodsReceivableMoney()); Integer bugGoodsNum = orderMapper.countUserBuyGoodsNum(order.getUserId(),orderGoods.getGoodsId()); if(bugGoodsNum==null||bugGoodsNum<1){ goodsTotalChangeDto.setPersonNum(1); } goodsTotalChangeDtoList.add(goodsTotalChangeDto); } //更新商品统计 // 更新商户统计信息 ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(order.getShopId()); ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -35,6 +35,7 @@ <result column="goodsNum" property="goodsNum"/> <result column="shopId" property="shopId" /> <result column="orderFrom" property="orderFrom" /> <result column="createTime" property="createTime" /> <collection property="appUserOrderGoodsPageVoList" ofType="com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo"> <result column="orderGoodsId" property="orderGoodsId"/> <result column="goodsId" property="goodsId"/> @@ -263,7 +264,8 @@ tog.goods_price goodsPrice, tog.goods_total_money goodsRealPrice, tog.cycle_num_flag cycleNumFlag, tog.service_num serviceNum tog.service_num serviceNum, toc.create_time createTime FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 @@ -1570,4 +1572,11 @@ </if> GROUP BY toc.create_time </select> <select id="countUserBuyGoodsNum" resultType="java.lang.Integer"> SELECT SUM(tog.buy_num) 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 > 1 AND toc.user_id = #{userId} AND tog.goods_id = #{goodsId} </select> </mapper> ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopAuthPageDto.java
@@ -37,4 +37,7 @@ " 7:FROZEN:已冻结\n" + " 8:CANCELED:已作废") private Integer auditStatus; @ApiModelProperty(value="商户状态") private Integer shopStatus; } ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -550,6 +550,9 @@ <if test="param.auditStatus!=null"> AND tsa.audit_status = #{param.auditStatus} </if> <if test="param.shopStatus!=null and param.shopStatus!=''"> AND ts.shop_status = #{param.shopStatus} </if> </select> <select id="shopTotal" resultType="com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo"> ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/miniapp/AppHomeController.java
@@ -41,7 +41,6 @@ @Resource private AdvertService advertService; @Resource private PopService popService; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtAdvertEditDto.java
@@ -26,6 +26,9 @@ @ApiModelProperty(value = "链接类型1.外部2.内部3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtPopEditDto.java
@@ -29,6 +29,9 @@ @ApiModelProperty(value = "跳转类型1.门店详情2.秒杀活动3领券中心4.商城列表5.关于洪瑞堂6.赚取积分7.建议有奖") private Integer jumpType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "跳转id") private String jumpId; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtQuickEntryEditDto.java
@@ -26,6 +26,9 @@ @ApiModelProperty(value = "链接类型1.外部2.内部3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Advert.java
@@ -54,6 +54,11 @@ @TableField("target_type") private Integer targetType; /** * 链接类型1.手动输入2.选择已有 */ @TableField("link_type") private Integer linkType; /** * 链接地址 */ @TableField("link_url") ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Pop.java
@@ -66,6 +66,11 @@ @TableField("link_url") private String linkUrl; /** * 链接类型1.手动输入2.选择已有 */ @TableField("link_type") private Integer linkType; /** * 跳转活动id */ @TableField("jump_id") ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/QuickEntry.java
@@ -56,6 +56,11 @@ @TableField("target_type") private Integer targetType; /** * 链接类型1.手动输入2.选择已有 */ @TableField("link_type") private Integer linkType; /** * 链接地址 */ @TableField("link_url") ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/AppAdvertVo.java
@@ -25,9 +25,15 @@ @ApiModelProperty(value = "对象类型1.外链2.内链3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; @ApiModelProperty(value = "跳转类型1.门店详情2.秒杀活动3领券中心4.商城列表5.关于洪瑞堂6.赚取积分7.建议有奖") private Integer jumpType; @ApiModelProperty(value = "跳转id") private String jumpId; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/AppPopVo.java
@@ -22,6 +22,9 @@ @ApiModelProperty(value = "对象类型1.外链2.内链3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/AppQuickEntryVo.java
@@ -25,9 +25,15 @@ @ApiModelProperty(value = "对象类型1.外链2.内链3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; @ApiModelProperty(value = "跳转类型1.门店详情2.秒杀活动3领券中心4.商城列表5.关于洪瑞堂6.赚取积分7.建议有奖") private Integer jumpType; @ApiModelProperty(value = "跳转id") private String jumpId; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtAllCustomConfigVo.java
@@ -75,6 +75,9 @@ @ApiModelProperty(value = "链接类型1.外部2.内部3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtPopGetVo.java
@@ -25,6 +25,9 @@ @ApiModelProperty(value = "链接类型1.外部2.内部3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtQuickEntryGetVo.java
@@ -25,6 +25,9 @@ @ApiModelProperty(value = "链接类型1.外部2.内部3.无") private Integer targetType; @ApiModelProperty(value = "链接类型1.手动输入2.选择已有") private Integer linkType; @ApiModelProperty(value = "链接地址") private String linkUrl; ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/PopServiceImpl.java
@@ -65,16 +65,6 @@ } // 将管理弹窗编辑DTO的属性复制到管理弹窗中 BeanUtils.copyProperties(mgtPopEditDto, pop); if(pop.getTargetType()==1){ pop.setJumpType(null); pop.setJumpId(null); }else if(pop.getTargetType()==2){ pop.setLinkUrl(null); }else if(pop.getTargetType()==3){ pop.setLinkUrl(null); pop.setJumpType(null); pop.setJumpId(null); } // 设置创建时间和创建者ID pop.setCreateTime(new Date()); pop.setCreateUserId(mgtPopEditDto.getPopId()); @@ -101,10 +91,17 @@ if(pop.getTargetType()==1){ pop.setJumpType(null); pop.setJumpId(null); pop.setLinkType(null); }else if(pop.getTargetType()==2){ pop.setLinkUrl(null); if(pop.getLinkType()==1){ pop.setJumpType(null); pop.setJumpId(null); }else{ pop.setLinkUrl(null); } }else if(pop.getTargetType()==3){ pop.setLinkUrl(null); pop.setLinkType(null); pop.setJumpType(null); pop.setJumpId(null); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/QuickEntryServiceImpl.java
@@ -65,16 +65,6 @@ } // 将管理快速入口编辑DTO的属性复制到管理快速入口中 BeanUtils.copyProperties(mgtQuickEntryEditDto, quickEntry); if(quickEntry.getTargetType()==1){ quickEntry.setJumpType(null); quickEntry.setJumpId(null); }else if(quickEntry.getTargetType()==2){ quickEntry.setLinkUrl(null); }else if(quickEntry.getTargetType()==3){ quickEntry.setLinkUrl(null); quickEntry.setJumpType(null); quickEntry.setJumpId(null); } // 设置创建时间和创建者ID quickEntry.setCreateTime(new Date()); quickEntry.setCreateUserId(mgtQuickEntryEditDto.getEntryId()); @@ -95,10 +85,17 @@ if(quickEntry.getTargetType()==1){ quickEntry.setJumpType(null); quickEntry.setJumpId(null); quickEntry.setLinkType(null); }else if(quickEntry.getTargetType()==2){ quickEntry.setLinkUrl(null); if(quickEntry.getLinkType()==1){ quickEntry.setJumpType(null); quickEntry.setJumpId(null); }else{ quickEntry.setLinkUrl(null); } }else if(quickEntry.getTargetType()==3){ quickEntry.setLinkUrl(null); quickEntry.setLinkType(null); quickEntry.setJumpType(null); quickEntry.setJumpId(null); } ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/AdvertMapper.xml
@@ -95,8 +95,10 @@ ad_id adId, ad_url adUrl, ad_content adContent, link_type linkType, target_type targetType, link_url linkUrl, jump_type jumpType, jump_id jumpId, logo_url logoUrl FROM t_advert WHERE del_flag = 0 ORDER BY create_time DESC LIMIT 1 ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/BannerMapper.xml
@@ -105,7 +105,7 @@ jump_type jumpType, jump_id jumpId FROM t_banner WHERE del_flag = 0 AND banner_position = 1 ORDER BY banner_sort DESC,create_time DESC ORDER BY banner_sort DESC,create_time DESC LIMIT 5 </select> <select id="pageMgtBannerVo" resultType="com.ruoyi.system.domain.vo.MgtBannerPageVo"> ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/PopMapper.xml
@@ -116,7 +116,8 @@ SELECT pop_id popId, pop_url popUrl, target_type targetType, link_type linkType, target_type targetType, link_url linkUrl, jump_type jumpType, jump_id jumpId ruoyi-modules/ruoyi-system/src/main/resources/mapper/config/QuickEntryMapper.xml
@@ -95,8 +95,10 @@ entry_id entryId, entry_url entryUrl, entry_name entryName, link_type linkType, target_type targetType, link_url linkUrl, jump_type jumpType, jump_id jumpId FROM t_quick_entry WHERE del_flag = 0 ORDER BY entry_sort,create_time DESC