ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -79,4 +79,8 @@ String ACTIVITY_END = "活动已经结束"; String ACTIVITY_GOODS_NULL = "商品已售罄"; String BIRTHDAY_NULL = "未填写生日"; String BIRTHDAY_ERROR = "只有生日当月领取"; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/BirthdayGiftSendDto.java
New file @@ -0,0 +1,41 @@ package com.ruoyi.system.api.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName BirthdayGiftSendDto * @Description TODO * @Author jqs * @Date 2023/7/7 14:48 * @Version 1.0 */ @Data public class BirthdayGiftSendDto { @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "礼物类型1优惠券2商品3现金4实物") private Integer giftType; @ApiModelProperty(value = "礼物来源1平台2商户") private Integer giftFrom; @ApiModelProperty(value = "商户id") private Long shopId; @ApiModelProperty(value = "优惠券id") private String couponId; @ApiModelProperty(value = "优惠券数量") private Integer couponNumber; @ApiModelProperty(value = "商品id") private String goodsId; @ApiModelProperty(value = "商品数量") private Integer goodsNumber; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSelectGoodsPageVo.java
@@ -25,7 +25,10 @@ private String goodsNo; @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") private String goodsType; private Integer goodsType; @ApiModelProperty(value = "商品类型") private String goodsTypeName; @ApiModelProperty(value = "商品售价") private BigDecimal salesPrice; ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteCouponFallbackFactory.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo; import com.ruoyi.system.api.service.RemoteCouponService; @@ -39,6 +40,11 @@ return R.fail("获取核销优惠券失败:" + throwable.getMessage()); } @Override public R sendCouponGift(List<BirthdayGiftSendDto> giftSendDtoList) { return null; } }; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteOrderFallbackFactory.java
@@ -1,6 +1,7 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo; @@ -57,6 +58,11 @@ public R<BigDecimal> getMemberUnpaidOrder(MerBaseDto merBaseDto) { return R.fail("获取用户未结清金额失败:" + throwable.getMessage()); } @Override public R sendGoodsGift(List<BirthdayGiftSendDto> giftSendDtoList) { return null; } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java
@@ -97,6 +97,11 @@ public R<Integer> getUnReplaySuggestVo() { return null; } @Override public R<Integer> getShopMarketingStatus(Long shopId) { return null; } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteCouponService.java
@@ -2,6 +2,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo; import com.ruoyi.system.api.factory.RemoteCouponFallbackFactory; @@ -38,4 +39,14 @@ */ @PostMapping("/coupon/getVerifyCoupon") public R<MerVerifyCouponGetVo> getVerifyCoupon(@RequestBody String verifyCoupon); /** * @description 发送用户优惠券礼物 * @author jqs * @date 2023/7/7 19:53 * @param giftSendDtoList * @return R */ @PostMapping("/coupon/sendCouponGift") public R sendCouponGift(@RequestBody List<BirthdayGiftSendDto> giftSendDtoList); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteOrderService.java
@@ -2,6 +2,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; @@ -55,4 +56,14 @@ */ @PostMapping("/order/getMemberUnpaidOrder") public R<BigDecimal> getMemberUnpaidOrder(@RequestBody MerBaseDto merBaseDto); /** * @description 发送用户商品礼物 * @author jqs * @date 2023/7/7 19:53 * @param giftSendDtoList * @return R */ @PostMapping("/order/sendGoodsGift") public R sendGoodsGift(@RequestBody List<BirthdayGiftSendDto> giftSendDtoList); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
@@ -97,7 +97,7 @@ * @param shopTotalChangeDto * @return R */ @PostMapping("/changeShopTotal") @PostMapping("/shop/changeShopTotal") public R changeShopTotal(@RequestBody ShopTotalChangeDto shopTotalChangeDto); /** @@ -107,7 +107,7 @@ * @param userId * @return R<MemberTaskSimpleVo> */ @PostMapping("/member/getLastMemberTask") @PostMapping("/shop/getLastMemberTask") public R<MemberTaskSimpleVo> getLastMemberTask(@RequestBody Long userId); /** @@ -116,7 +116,7 @@ * @date 2023/7/3 17:26 * @return R<List<Long>> */ @PostMapping("/listShopIdByShopId") @PostMapping("/shop/listShopIdByShopId") public R<List<Long>> listShopIdByShopId(@RequestBody Long shopId); /** @@ -126,6 +126,16 @@ * @param * @return R<Integer> */ @PostMapping("/getUnReplaySuggestVo") @PostMapping("/shop/getUnReplaySuggestVo") public R<Integer> getUnReplaySuggestVo(); /** * @description 获取商户营销状态 * @author jqs * @date 2023/7/7 14:05 * @param shopId * @return R<Integer> */ @PostMapping("/shop/getShopMarketingStatus") public R<Integer> getShopMarketingStatus(@RequestBody Long shopId); } ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/controller/SysFileController.java
@@ -1,6 +1,10 @@ package com.ruoyi.file.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.file.FileUtils; import com.ruoyi.file.service.ISysFileService; import com.ruoyi.file.utils.OBSUploadUtils; import com.ruoyi.system.api.domain.poji.sys.SysFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -8,10 +12,9 @@ import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.file.FileUtils; import com.ruoyi.file.service.ISysFileService; import com.ruoyi.system.api.domain.poji.sys.SysFile; import java.util.ArrayList; import java.util.List; /** * 文件请求处理 @@ -67,4 +70,19 @@ } } @PostMapping("batchUploadOSS") public R<List<String>> batchUploadOSS(@RequestPart("file") MultipartFile[] files) { List<String> urls = new ArrayList<>(); for (MultipartFile file : files) { try { // 上传并返回访问地址 String url = OBSUploadUtils.uploadFile(file); urls.add(url); } catch (Exception e) { log.error("上传文件失败", e); return R.fail(e.getMessage()); } } return R.ok(urls); } } ruoyi-modules/ruoyi-file/src/main/java/com/ruoyi/file/utils/OBSUploadUtils.java
@@ -9,7 +9,6 @@ import com.ruoyi.common.core.utils.uuid.IdUtils; import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.Calendar; @@ -64,7 +63,7 @@ // 创建PutObject请求。 result = ossClient.putObject(putObjectRequest); // 如果上传成功,则返回200。 System.out.println(result.getResponse().getStatusCode()); System.out.println(fileName + "上传返回" + result.getResponse().getStatusCode()); return result.getResponse().getUri(); } catch (OSSException oe) { System.out.println("Caught an OSSException, which means your request made it to OSS, " ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java
@@ -85,4 +85,6 @@ List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsService.pageAppActivityGoods(page,appActivityGoodsPageDto); return R.ok(page.setRecords(appSimpleGoodsVoList)); } } ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsMapper.xml
@@ -417,6 +417,12 @@ goods_name goodsName, goods_no goodsNo, goods_type goodsType, CASE goods_type WHEN 1 THEN "周期" WHEN 2 THEN "服务" WHEN 3 THEN "体验" WHEN 4 THEN "单品" END goodsTypeName, sales_price salesPrice FROM t_goods ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/CouponController.java
@@ -2,7 +2,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.member.service.coupon.CouponService; import com.ruoyi.member.service.member.MemberCouponService; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo; import org.springframework.web.bind.annotation.PostMapping; @@ -24,6 +26,8 @@ @RequestMapping("/coupon") public class CouponController extends BaseController { @Resource private CouponService couponService; @Resource private MemberCouponService memberCouponService; @@ -69,4 +73,16 @@ return R.ok(verifyCouponGetVo); } /** * @description 发送用户优惠券礼物 * @author jqs * @date 2023/7/7 19:53 * @param giftSendDtoList * @return R */ @PostMapping("/sendCouponGift") public R sendCouponGift(@RequestBody List<BirthdayGiftSendDto> giftSendDtoList){ couponService.sendCouponGift(giftSendDtoList); return R.ok(); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
@@ -2,14 +2,20 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.member.domain.vo.AppBirthdayCardVo; import com.ruoyi.member.domain.vo.AppSuggestPageVo; import com.ruoyi.member.domain.vo.AppUserInfoVo; import com.ruoyi.member.service.birthday.BirthdayCardService; import com.ruoyi.member.service.member.MemberService; import com.ruoyi.member.service.member.MemberSuggestService; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.AppEditUserDto; import com.ruoyi.system.api.domain.dto.AppSuggestPageDto; import com.ruoyi.system.api.domain.dto.AppUserSuggestDto; import com.ruoyi.system.api.domain.poji.member.Member; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestBody; @@ -18,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.time.LocalDate; import java.util.List; /** @@ -38,7 +45,8 @@ @Resource private MemberSuggestService memberSuggestService; @Resource private BirthdayCardService birthdayCardService; @RequestMapping(value = "/getAppUserInfo", method = RequestMethod.POST) @@ -78,4 +86,55 @@ memberSuggestService.userSuggest(appUserSuggestDto); return R.ok(); } @RequestMapping(value = "/getUserBirthdayCard", method = RequestMethod.POST) @ApiOperation(value = "获取用户生日卡信息") public R<AppBirthdayCardVo> getUserBirthdayCard() { Long userId = SecurityUtils.getUserId(); Member member = memberService.getByUserId(userId); AppBirthdayCardVo appBirthdayCardVo = new AppBirthdayCardVo(); if(StringUtils.isNotBlank(member.getBirthday())){ appBirthdayCardVo.setHaveBirthdayFlag(1); String birthday = member.getBirthday(); LocalDate today = LocalDate.now(); int birthdayMonth = Integer.parseInt(birthday.split("-")[1]); int todayMonth = today.getMonthValue(); if (birthdayMonth == todayMonth) { appBirthdayCardVo = birthdayCardService.getUserBirthdayCard(userId,member.getRelationShopId()); appBirthdayCardVo.setHaveBirthdayFlag(1); appBirthdayCardVo.setInBirthdayFlag(1); } else { appBirthdayCardVo.setHaveBirthdayFlag(1); appBirthdayCardVo.setInBirthdayFlag(0); } }else{ appBirthdayCardVo.setHaveBirthdayFlag(0); } return R.ok(appBirthdayCardVo); } @RequestMapping(value = "/getBirthdayGift", method = RequestMethod.POST) @ApiOperation(value = "领取生日礼包") public R<AppBirthdayCardVo> getBirthdayGift() { Long userId = SecurityUtils.getUserId(); Member member = memberService.getByUserId(userId); AppBirthdayCardVo appBirthdayCardVo = new AppBirthdayCardVo(); if(StringUtils.isNotBlank(member.getBirthday())){ appBirthdayCardVo.setHaveBirthdayFlag(1); String birthday = member.getBirthday(); LocalDate today = LocalDate.now(); int birthdayMonth = Integer.parseInt(birthday.split("-")[1]); int todayMonth = today.getMonthValue(); if (birthdayMonth == todayMonth) { appBirthdayCardVo = birthdayCardService.getBirthdayGift(userId,member.getRelationShopId()); appBirthdayCardVo.setHaveBirthdayFlag(1); appBirthdayCardVo.setInBirthdayFlag(1); } else { throw new ServiceException(AppErrorConstant.BIRTHDAY_ERROR); } }else{ throw new ServiceException(AppErrorConstant.BIRTHDAY_NULL); } return R.ok(appBirthdayCardVo); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/member/MemberGiftRecord.java
New file @@ -0,0 +1,130 @@ package com.ruoyi.member.domain.pojo.member; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; /** * <p> * 生日卡 * </p> * * @author jqs * @since 2023-07-07 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_member_gift_record") public class MemberGiftRecord extends Model<MemberGiftRecord> { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 删除标记 */ @TableField("del_flag") private Integer delFlag; /** * 用户id */ @TableField("user_id") private Long userId; /** * 生日卡id */ @TableField("card_id") private Long cardId; /** * 礼品id */ @TableField("gift_id") private Long giftId; /** * 礼物来源1平台2商户 */ @TableField("gift_from") private Integer giftFrom; /** * 商户id */ @TableField("shop_id") private Long shopId; /** * 礼物类型1优惠券2商品3现金4实物 */ @TableField("gift_type") private Integer giftType; /** * 优惠券id */ @TableField("coupon_id") private String couponId; /** * 优惠券数量 */ @TableField("coupon_number") private Integer couponNumber; /** * 商品id */ @TableField("goods_id") private String goodsId; /** * 商品数量 */ @TableField("goods_number") private Integer goodsNumber; /** * 实物名称 */ @TableField("gift_name") private String giftName; /** * 实物数量 */ @TableField("gift_number") private Integer giftNumber; /** * 现金 */ private BigDecimal money; /** * 创建时间 */ @TableField("create_time") private Date createTime; /** * 优惠券名称 */ @TableField("coupon_name") private String couponName; /** * 商品名称 */ @TableField("goods_name") private String goodsName; /** * 领取年份 */ @TableField("gift_year") private String giftYear; @Override protected Serializable pkVal() { return this.id; } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppBirthdayCardVo.java
New file @@ -0,0 +1,30 @@ package com.ruoyi.member.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @ClassName AppBirthdayCardVo * @Description TODO * @Author jqs * @Date 2023/7/7 10:22 * @Version 1.0 */ @Data public class AppBirthdayCardVo { @ApiModelProperty(value = "是否有生日0否1是") private Integer haveBirthdayFlag; @ApiModelProperty(value = "是否生日当月0否1是") private Integer inBirthdayFlag; @ApiModelProperty(value = "是否已领取礼物0否1是") private Integer getGiftFlag; @ApiModelProperty(value = "礼物列表") private List<AppBirthdayGiftVo> birthdayGiftVoList; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppBirthdayGiftVo.java
New file @@ -0,0 +1,23 @@ package com.ruoyi.member.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName AppBirthdayGiftVo * @Description TODO * @Author jqs * @Date 2023/7/7 10:25 * @Version 1.0 */ @Data public class AppBirthdayGiftVo { @ApiModelProperty(value = "礼物名称") private String giftName; @ApiModelProperty(value = "礼物数量") private double giftNumber; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerBirthdayGetVo.java
@@ -13,6 +13,7 @@ @Data public class MerBirthdayGetVo { @ApiModelProperty(value = "生日卡状态1开启2关闭") private Integer cardStatus; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGetVo.java
@@ -37,7 +37,7 @@ private Date sendTime; @ApiModelProperty(value = "使用范围1.全场2.指定商品") private String useScope; private Integer useScope; @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起") private Integer validTimeType; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponGoodsListVo.java
@@ -25,7 +25,10 @@ private String goodsNo; @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") private String goodsType; private Integer goodsType; @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") private String goodsTypeName; @ApiModelProperty(value = "商品售价") private BigDecimal salesPrice; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java
@@ -24,7 +24,7 @@ private String couponName; @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品") private Integer couponType; private String couponType; @ApiModelProperty(value = "使用限制") private String useLimit; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberGiftRecordMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.member.mapper.member; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.member.domain.pojo.member.MemberGiftRecord; /** * <p> * 生日卡 Mapper 接口 * </p> * * @author jqs * @since 2023-07-07 */ public interface MemberGiftRecordMapper extends BaseMapper<MemberGiftRecord> { } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java
@@ -5,6 +5,7 @@ import com.ruoyi.member.domain.dto.MgtBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayGetDto; import com.ruoyi.member.domain.pojo.birthday.BirthdayCard; import com.ruoyi.member.domain.vo.AppBirthdayCardVo; import com.ruoyi.member.domain.vo.MerBirthdayEditInfoVo; import com.ruoyi.member.domain.vo.MerBirthdayGetVo; import com.ruoyi.member.domain.vo.MgtBirthdayGetVo; @@ -81,4 +82,25 @@ * @return void */ void toggleMerBirthdayCard(MerBirthdayEditDto merBirthdayEditDto); /** * @description 获取用户生日礼物 * @author jqs * @date 2023/7/7 10:55 * @param shopId * @return AppBirthdayCardVo */ AppBirthdayCardVo getUserBirthdayCard(Long userId,Long shopId); /** * @description 获取用户生日礼物 * @author jqs * @date 2023/7/7 10:55 * @param shopId * @return AppBirthdayCardVo */ AppBirthdayCardVo getBirthdayGift(Long userId, Long shopId); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -5,6 +5,7 @@ import com.ruoyi.member.domain.pojo.coupon.Coupon; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.member.domain.vo.*; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.MerBaseGetDto; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; @@ -151,4 +152,14 @@ * @return void */ void deleteMerCoupon(MerBaseGetDto merBaseGetDto); /** * @description 发送用户优惠券礼物 * @author jqs * @date 2023/7/7 19:54 * @param giftSendDtoList * @return void */ void sendCouponGift(List<BirthdayGiftSendDto> giftSendDtoList); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberGiftRecordServiceImpl.java
New file @@ -0,0 +1,44 @@ package com.ruoyi.member.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.member.domain.pojo.member.MemberGiftRecord; import com.ruoyi.member.mapper.member.MemberGiftRecordMapper; import com.ruoyi.member.service.member.MemberGiftRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; /** * <p> * 生日卡 服务实现类 * </p> * * @author jqs * @since 2023-07-07 */ @Service public class MemberGiftRecordServiceImpl extends ServiceImpl<MemberGiftRecordMapper, MemberGiftRecord> implements MemberGiftRecordService { /** * @description 通过用户和日期获取礼物记录 * @author jqs * @date 2023/7/7 17:26 * @param userId * @param giftYear * @return List<MemberGiftRecord> */ @Override public List<MemberGiftRecord> listByUserIdAndYear(Long userId, String giftYear){ LambdaQueryWrapper<MemberGiftRecord> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(MemberGiftRecord::getDelFlag,0); queryWrapper.eq(MemberGiftRecord::getUserId,userId); queryWrapper.eq(MemberGiftRecord::getGiftYear,giftYear); return this.list(queryWrapper); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
@@ -2,26 +2,30 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.member.domain.dto.MerBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayEditDto; import com.ruoyi.member.domain.dto.MgtBirthdayGetDto; import com.ruoyi.member.domain.dto.MgtBirthdayGiftDto; import com.ruoyi.member.domain.pojo.birthday.BirthdayCard; import com.ruoyi.member.domain.pojo.birthday.BirthdayGift; import com.ruoyi.member.domain.vo.MerBirthdayEditInfoVo; import com.ruoyi.member.domain.vo.MerBirthdayGetVo; import com.ruoyi.member.domain.vo.MgtBirthdayGetVo; import com.ruoyi.member.domain.vo.MgtBirthdayGiftVo; import com.ruoyi.member.domain.pojo.member.MemberGiftRecord; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.birthday.BirthdayCardMapper; import com.ruoyi.member.service.birthday.BirthdayCardService; import com.ruoyi.member.service.birthday.BirthdayGiftService; import com.ruoyi.member.service.member.MemberGiftRecordService; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.service.RemoteCouponService; import com.ruoyi.system.api.service.RemoteOrderService; import com.ruoyi.system.api.service.RemoteShopService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.StringJoiner; import java.math.BigDecimal; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; /** * <p> @@ -39,6 +43,18 @@ @Resource private BirthdayGiftService birthdayGiftService; @Resource private RemoteShopService remoteShopService; @Resource private MemberGiftRecordService memberGiftRecordService; @Resource private RemoteCouponService remoteCouponService; @Resource private RemoteOrderService remoteOrderService; /** * @description 平台编辑生日卡 @@ -394,4 +410,212 @@ birthdayCard.setCardStatus(merBirthdayEditDto.getCardStatus()); this.saveOrUpdate(birthdayCard); } /** * @description 获取用户生日礼物 * @author jqs * @date 2023/7/7 10:55 * @param shopId * @return AppBirthdayCardVo */ @Override public AppBirthdayCardVo getUserBirthdayCard(Long userId,Long shopId){ AppBirthdayCardVo appBirthdayCardVo = new AppBirthdayCardVo(); String currentYear = String.valueOf(LocalDate.now().getYear()); List<MemberGiftRecord> memberGiftRecordList = memberGiftRecordService.listByUserIdAndYear(userId,currentYear); if(memberGiftRecordList!=null&&!memberGiftRecordList.isEmpty()){ List<AppBirthdayGiftVo> birthdayGiftVoList = memberGiftRecordList.stream().map( memberGiftRecord -> { AppBirthdayGiftVo appBirthdayGiftVo = new AppBirthdayGiftVo(); switch (memberGiftRecord.getGiftType()) { case 1: // 礼物类型为1,即优惠券 appBirthdayGiftVo.setGiftName(memberGiftRecord.getCouponName()); appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getCouponNumber()); break; case 2: // 礼物类型为2,即商品 appBirthdayGiftVo.setGiftName(memberGiftRecord.getGoodsName()); appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getGoodsNumber()); break; case 3: // 礼物类型为3,即现金 appBirthdayGiftVo.setGiftName("现金"); appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); break; case 4: // 礼物类型为4,即礼品 appBirthdayGiftVo.setGiftName(memberGiftRecord.getCouponName()); appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getCouponNumber()); break; default: break; } return appBirthdayGiftVo; } ).collect(Collectors.toList()); appBirthdayCardVo.setGetGiftFlag(1); appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList); }else{ appBirthdayCardVo.setGetGiftFlag(0); } return appBirthdayCardVo; } /** * @description 获取用户生日礼物 * @author jqs * @date 2023/7/7 10:55 * @param shopId * @return AppBirthdayCardVo */ @Override public AppBirthdayCardVo getBirthdayGift(Long userId, Long shopId){ AppBirthdayCardVo appBirthdayCardVo = new AppBirthdayCardVo(); List<AppBirthdayGiftVo> birthdayGiftVoList = new ArrayList<>(); List<MemberGiftRecord> memberGiftRecordList = new ArrayList<>(); List<BirthdayGiftSendDto> sendGoodsList = new ArrayList<>(); List<BirthdayGiftSendDto> sendCouponList = new ArrayList<>(); AppBirthdayGiftVo appBirthdayGiftVo; MemberGiftRecord memberGiftRecord; BigDecimal winningProbability; BigDecimal randomProbability; BirthdayGiftSendDto birthdayGiftSendDto; String currentYear = String.valueOf(LocalDate.now().getYear()); // 获取平台生日卡信息 BirthdayCard plBirthdayCard = birthdayCardMapper.getPlatformBirthdayCard(shopId); // 如果生日卡存在 if (plBirthdayCard != null && plBirthdayCard.getCardStatus()==1) { // 获取生日卡对应的生日礼物列表 List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(plBirthdayCard.getCardId()); if(!birthdayGiftList.isEmpty()){ // 遍历生日礼物列表 for (BirthdayGift birthdayGift : birthdayGiftList) { winningProbability = birthdayGift.getWinningProbability(); randomProbability = new BigDecimal(new Random().nextInt(100)); if(winningProbability.compareTo(randomProbability)>0){ appBirthdayGiftVo = new AppBirthdayGiftVo(); memberGiftRecord = new MemberGiftRecord(); birthdayGiftSendDto = new BirthdayGiftSendDto(); BeanUtils.copyProperties(birthdayGift, memberGiftRecord); memberGiftRecord.setGiftFrom(1); memberGiftRecord.setGiftYear(currentYear); memberGiftRecord.setCreateTime(new Date()); memberGiftRecord.setUserId(userId); birthdayGiftSendDto.setUserId(userId); birthdayGiftSendDto.setGiftFrom(1); birthdayGiftSendDto.setGiftType(birthdayGift.getGiftType()); switch (birthdayGift.getGiftType()) { case 1: // 礼物类型为1,即优惠券 appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); birthdayGiftSendDto.setCouponId(birthdayGift.getCouponId()); birthdayGiftSendDto.setCouponNumber(birthdayGift.getCouponNumber()); sendGoodsList.add(birthdayGiftSendDto); break; case 2: // 礼物类型为2,即商品 appBirthdayGiftVo.setGiftName(birthdayGift.getGoodsName()); appBirthdayGiftVo.setGiftNumber(birthdayGift.getGoodsNumber()); birthdayGiftSendDto.setGoodsId(birthdayGift.getGoodsId()); birthdayGiftSendDto.setCouponNumber(birthdayGift.getGoodsNumber()); sendCouponList.add(birthdayGiftSendDto); break; case 3: // 礼物类型为3,即现金 appBirthdayGiftVo.setGiftName("现金"); appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); break; case 4: // 礼物类型为4,即礼品 appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); break; default: break; } birthdayGiftVoList.add(appBirthdayGiftVo); memberGiftRecordList.add(memberGiftRecord); } } } } //获取商户营销开关状态 Integer marketingStatus = remoteShopService.getShopMarketingStatus(shopId).getData(); if(marketingStatus>1){ //获取商户生日卡 LambdaQueryWrapper<BirthdayCard> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(BirthdayCard::getDelFlag,0); queryWrapper.eq(BirthdayCard::getShopId,shopId); BirthdayCard shopBirthdayCard = this.getOne(queryWrapper,false); // 如果生日卡存在 if (shopBirthdayCard != null && shopBirthdayCard.getCardStatus()==1) { // 获取生日卡对应的生日礼物列表 List<BirthdayGift> birthdayGiftList = birthdayGiftService.listByCardId(shopBirthdayCard.getCardId()); if(!birthdayGiftList.isEmpty()){ // 遍历生日礼物列表 for (BirthdayGift birthdayGift : birthdayGiftList) { winningProbability = birthdayGift.getWinningProbability(); randomProbability = new BigDecimal(new Random().nextInt(100)); if(winningProbability.compareTo(randomProbability)>0){ appBirthdayGiftVo = new AppBirthdayGiftVo(); memberGiftRecord = new MemberGiftRecord(); birthdayGiftSendDto = new BirthdayGiftSendDto(); BeanUtils.copyProperties(birthdayGift, memberGiftRecord); memberGiftRecord.setGiftFrom(2); memberGiftRecord.setShopId(shopId); memberGiftRecord.setGiftYear(currentYear); memberGiftRecord.setCreateTime(new Date()); memberGiftRecord.setUserId(userId); birthdayGiftSendDto.setUserId(userId); birthdayGiftSendDto.setGiftFrom(2); birthdayGiftSendDto.setShopId(shopId); birthdayGiftSendDto.setGiftType(birthdayGift.getGiftType()); switch (birthdayGift.getGiftType()) { case 1: // 礼物类型为1,即优惠券 appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); birthdayGiftSendDto.setCouponId(birthdayGift.getCouponId()); birthdayGiftSendDto.setCouponNumber(birthdayGift.getCouponNumber()); sendGoodsList.add(birthdayGiftSendDto); break; case 2: // 礼物类型为2,即商品 appBirthdayGiftVo.setGiftName(birthdayGift.getGoodsName()); appBirthdayGiftVo.setGiftNumber(birthdayGift.getGoodsNumber()); birthdayGiftSendDto.setGoodsId(birthdayGift.getGoodsId()); birthdayGiftSendDto.setCouponNumber(birthdayGift.getGoodsNumber()); sendCouponList.add(birthdayGiftSendDto); break; case 3: // 礼物类型为3,即现金 appBirthdayGiftVo.setGiftName("现金"); appBirthdayGiftVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue()); break; case 4: // 礼物类型为4,即礼品 appBirthdayGiftVo.setGiftName(birthdayGift.getCouponName()); appBirthdayGiftVo.setGiftNumber(birthdayGift.getCouponNumber()); break; default: break; } birthdayGiftVoList.add(appBirthdayGiftVo); memberGiftRecordList.add(memberGiftRecord); } } } } } //发放奖品 remoteOrderService.sendGoodsGift(sendGoodsList); remoteCouponService.sendCouponGift(sendCouponList); //保存用户礼物记录 memberGiftRecordService.saveBatch(memberGiftRecordList); appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList); return appBirthdayCardVo; } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -13,6 +13,7 @@ import com.ruoyi.member.domain.pojo.coupon.CouponRelGoods; import com.ruoyi.member.domain.pojo.coupon.CouponRelUser; import com.ruoyi.member.domain.pojo.coupon.CouponTotal; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.MerBaseGetDto; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.poji.member.MemberCoupon; @@ -88,7 +89,7 @@ List<MgtCouponPageVo> mgtCouponPageVoList = couponMapper.pageMgtCoupon(page, mgtCouponPageDto); //处理使用限制和有效期 if(mgtCouponPageVoList!=null&&!mgtCouponPageVoList.isEmpty()){ Integer couponType; String couponType; Integer validTimeType; Date validStartTime; Date validEndTime; @@ -101,20 +102,10 @@ for(MgtCouponPageVo mgtCouponPageVo : mgtCouponPageVoList){ //处理使用限制 couponType = mgtCouponPageVo.getCouponType(); switch (couponType){ case 1: moneyThreshold = mgtCouponPageVo.getMoneyThreshold(); discountMoney = mgtCouponPageVo.getDiscountMoney(); useLimit = "满" + moneyThreshold.toString() + "减" + discountMoney.toString() + "元"; break; case 2: break; case 3: break; case 4: break; default: break; if(couponType.equals("满减")){ moneyThreshold = mgtCouponPageVo.getMoneyThreshold(); discountMoney = mgtCouponPageVo.getDiscountMoney(); useLimit = "满" + moneyThreshold.toString() + "减" + discountMoney.toString() + "元"; } mgtCouponPageVo.setUseLimit(useLimit); //处理有效期 @@ -160,19 +151,20 @@ mgtCouponGoodsListVo.setGoodsId(goods.getGoodsId()); mgtCouponGoodsListVo.setGoodsName(goods.getGoodsName()); mgtCouponGoodsListVo.setGoodsNo(goods.getGoodsNo()); mgtCouponGoodsListVo.setGoodsType(goods.getGoodsType()); //商品类型1周期2服务3体验4单品 switch (goods.getGoodsType()){ case 1: mgtCouponGoodsListVo.setGoodsType("周期"); mgtCouponGoodsListVo.setGoodsTypeName("周期"); break; case 2: mgtCouponGoodsListVo.setGoodsType("服务"); mgtCouponGoodsListVo.setGoodsTypeName("服务"); break; case 3: mgtCouponGoodsListVo.setGoodsType("体验"); mgtCouponGoodsListVo.setGoodsTypeName("体验"); break; case 4: mgtCouponGoodsListVo.setGoodsType("单品"); mgtCouponGoodsListVo.setGoodsTypeName("单品"); break; default: break; @@ -544,19 +536,20 @@ mgtCouponGoodsListVo.setGoodsId(goods.getGoodsId()); mgtCouponGoodsListVo.setGoodsName(goods.getGoodsName()); mgtCouponGoodsListVo.setGoodsNo(goods.getGoodsNo()); mgtCouponGoodsListVo.setGoodsType(goods.getGoodsType()); //商品类型1周期2服务3体验4单品 switch (goods.getGoodsType()){ case 1: mgtCouponGoodsListVo.setGoodsType("周期"); mgtCouponGoodsListVo.setGoodsTypeName("周期"); break; case 2: mgtCouponGoodsListVo.setGoodsType("服务"); mgtCouponGoodsListVo.setGoodsTypeName("服务"); break; case 3: mgtCouponGoodsListVo.setGoodsType("体验"); mgtCouponGoodsListVo.setGoodsTypeName("体验"); break; case 4: mgtCouponGoodsListVo.setGoodsType("单品"); mgtCouponGoodsListVo.setGoodsTypeName("单品"); break; default: break; @@ -832,4 +825,57 @@ coupon.setUpdateTime(new Date()); this.saveOrUpdate(coupon); } /** * @description 发送用户优惠券礼物 * @author jqs * @date 2023/7/7 19:54 * @param giftSendDtoList * @return void */ @Override public void sendCouponGift(List<BirthdayGiftSendDto> giftSendDtoList){ Long userId = giftSendDtoList.get(0).getUserId(); Long shopId = giftSendDtoList.get(0).getShopId(); String couponId; Coupon coupon; List<MemberCoupon> memberCouponList = new ArrayList<>(); MemberCoupon memberCoupon; String memberCouponId; for(BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList){ couponId = birthdayGiftSendDto.getCouponId(); coupon = this.getById(couponId); memberCoupon = new MemberCoupon(); memberCouponId = IdUtils.simpleUUID(); memberCoupon.setId(memberCouponId); memberCoupon.setDelFlag(0); memberCoupon.setCouponId(couponId); memberCoupon.setUserId(userId); memberCoupon.setShopId(shopId); memberCoupon.setCouponType(coupon.getCouponType()); memberCoupon.setCouponStatus(coupon.getCouponStatus()); memberCoupon.setCouponName(coupon.getCouponName()); memberCoupon.setSendType(coupon.getSendType()); memberCoupon.setSendTimeType(coupon.getSendTimeType()); memberCoupon.setSendTime(coupon.getSendTime()); memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold()); memberCoupon.setDiscountMoney(coupon.getDiscountMoney()); memberCoupon.setDiscountPercent(coupon.getDiscountPercent()); memberCoupon.setUseScope(coupon.getUseScope()); memberCoupon.setValidTimeType(coupon.getValidTimeType()); memberCoupon.setValidStartTime(coupon.getValidStartTime()); memberCoupon.setValidEndTime(coupon.getValidEndTime()); memberCoupon.setValidDay(coupon.getValidDay()); memberCoupon.setReceiveTime(new Date()); //有效期处理1.时间段2.领取之日起 if(coupon.getValidTimeType()==1){ memberCoupon.setDeadlineTime(coupon.getValidEndTime()); }else if(coupon.getValidTimeType()==2){ memberCoupon.setDeadlineTime(DateUtils.addDays(new Date(),coupon.getValidDay())); } memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds()); memberCouponList.add(memberCoupon); } memberCouponService.saveBatch(memberCouponList); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
@@ -151,4 +151,5 @@ Integer total = this.count(queryWrapper); return total; } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
@@ -1,7 +1,7 @@ package com.ruoyi.member.service.member; import com.ruoyi.system.api.domain.poji.member.MemberCoupon; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.api.domain.poji.member.MemberCoupon; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo; @@ -48,8 +48,10 @@ * @author jqs * @date 2023/6/29 11:43 * @param userId * @param couponId * @param couponId * @return Integer */ Integer totalMemberCouponByUserAndCoupon(Long userId,String couponId); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberGiftRecordService.java
New file @@ -0,0 +1,28 @@ package com.ruoyi.member.service.member; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.member.domain.pojo.member.MemberGiftRecord; import java.util.List; /** * <p> * 生日卡 服务类 * </p> * * @author jqs * @since 2023-07-07 */ public interface MemberGiftRecordService extends IService<MemberGiftRecord> { /** * @description 通过用户和日期获取礼物记录 * @author jqs * @date 2023/7/7 17:26 * @param userId * @param giftYear * @return List<MemberGiftRecord> */ List<MemberGiftRecord> listByUserIdAndYear(Long userId,String giftYear); } ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -177,7 +177,7 @@ tc.create_time createTime FROM t_coupon tc LEFT JOIN t_coupon_total tct ON tc.coupon_id = tct.coupon_id WHERE tc.del_flag = 0 AND tc.coupon_status = 2 WHERE tc.del_flag = 0 AND tc.audit_status = 2 <if test="param.shopId==null"> AND tc.coupon_from = 1 </if> ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponRelUserMapper.xml
@@ -72,6 +72,6 @@ FROM t_coupon_rel_user tcru INNER JOIN t_member tm ON tm.user_id = tcru.user_id WHERE tm.del_flag = 0 AND tcru.coupon_id = #{couponId} WHERE tm.del_flag = 0 AND tcru.del_flag = 0 AND tcru.coupon_id = #{couponId} </select> </mapper> ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberGiftRecordMapper.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.member.mapper.member.MemberGiftRecordMapper"> </mapper> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -1,7 +1,9 @@ package com.ruoyi.order.controller.concole; import com.ruoyi.common.core.domain.R; import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MgtBasePlatformDto; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; @@ -30,6 +32,9 @@ @Resource private OrderService orderService; @Resource private ConsumerGoodsService consumerGoodsService; @PostMapping("/getAppOrderTotal") @@ -89,4 +94,16 @@ return R.ok(unpaidMoney); } /** * @description 发送用户商品礼物 * @author jqs * @date 2023/7/7 19:53 * @param giftSendDtoList * @return R */ @PostMapping("/sendGoodsGift") public R sendGoodsGift(@RequestBody List<BirthdayGiftSendDto> giftSendDtoList){ consumerGoodsService.sendGoodsGift(giftSendDtoList); return R.ok(); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/OrderGoods.java
@@ -62,6 +62,9 @@ */ @TableField("goods_price") private BigDecimal goodsPrice; @TableField("goods_deposit") private BigDecimal goodsDeposit; /** * 商品总价 */ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/ConsumerGoodsServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.ConsumerGoods; import com.ruoyi.order.domain.pojo.order.UserServiceRecord; @@ -16,15 +17,22 @@ import com.ruoyi.order.service.order.ConsumerGoodsService; import com.ruoyi.order.service.order.UserServiceRecordService; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import com.ruoyi.system.api.domain.dto.MemberTotalChangeDto; import com.ruoyi.system.api.domain.dto.ShopTotalChangeDto; 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; import com.ruoyi.system.api.service.RemoteGoodsService; import com.ruoyi.system.api.service.RemoteMemberService; import com.ruoyi.system.api.service.RemoteShopService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; import java.util.List; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; /** * <p> @@ -48,6 +56,9 @@ @Resource private RemoteShopService remoteShopService; @Resource private RemoteGoodsService remoteGoodsService; /** * 获取用户服务 @@ -147,7 +158,7 @@ } /** * 确认商品次数 * 消费服务商品 * @param merSureConsumerGoodsDto */ @Override @@ -286,4 +297,143 @@ public MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(Long userId, Long shopId){ return consumerGoodsMapper.getMemberConsumerGoodsTotalVo(userId, shopId); } /** * @description 发放用户商品礼物 * @author jqs * @date 2023/7/7 18:51 * @param giftSendDtoList * @return void */ @Override public void sendGoodsGift(List<BirthdayGiftSendDto> giftSendDtoList){ // 使用StringJoiner拼接goodsId StringJoiner goodsSj = new StringJoiner(","); for (BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList) { goodsSj.add(birthdayGiftSendDto.getGoodsId()); } String goodsIds = goodsSj.toString(); // 获取商品列表 List<Goods> goodsList = remoteGoodsService.listGoodsByGoodsId(goodsIds).getData(); // 初始化变量 List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); Map<String, Goods> goodsMap = goodsList.stream() .collect(Collectors.toMap(Goods::getGoodsId, Function.identity())); ConsumerGoods consumerGoods; String consumerGoodsId; Goods goods; String goodsId; GoodsFile goodsFile; AppShopGoodsGetDto appShopGoodsGetDto; ShopGoods shopGoods = null; // 遍历giftSendDtoList for (BirthdayGiftSendDto birthdayGiftSendDto : giftSendDtoList) { goodsId = birthdayGiftSendDto.getGoodsId(); goods = goodsMap.get(goodsId); goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData(); // 获取商户服务次数 if (birthdayGiftSendDto.getGiftFrom() == 2) { appShopGoodsGetDto = new AppShopGoodsGetDto(); appShopGoodsGetDto.setGoodsId(goodsId); appShopGoodsGetDto.setShopId(birthdayGiftSendDto.getShopId()); shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); } // 根据goodsNumber创建ConsumerGoods对象并添加到列表中 for (int i = 0; i < birthdayGiftSendDto.getGoodsNumber(); i++) { consumerGoods = new ConsumerGoods(); consumerGoodsId = IdUtils.simpleUUID(); consumerGoods.setConsumerGoodsId(consumerGoodsId); consumerGoods.setDelFlag(0); consumerGoods.setServiceStatus(1); consumerGoods.setShopId(birthdayGiftSendDto.getShopId()); consumerGoods.setUserId(birthdayGiftSendDto.getUserId()); consumerGoods.setGoodsId(goodsId); consumerGoods.setGoodsName(goods.getGoodsName()); consumerGoods.setCycleNumFlag(goods.getCycleNumFlag()); consumerGoods.setServiceNum(goods.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setCreateTime(new Date()); consumerGoods.setGoodsType(goods.getGoodsType()); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(goodsFile.getFileUrl()); consumerGoods.setGoodsNurses(goods.getGoodsNurses()); consumerGoods.setSourceFrom(3); // 如果shopGoods不为空,则使用shopGoods的serviceNum if (shopGoods != null) { consumerGoods.setServiceNum(shopGoods.getServiceNum()); } consumerGoodsList.add(consumerGoods); } } // 批量保存consumerGoodsList this.saveBatchConsumerGoods(consumerGoodsList); } /** * @description * @author jqs * @date 2023/7/7 19:31 * @param consumerGoodsList * @return boolean */ @Override public boolean saveBatchConsumerGoods(List<ConsumerGoods> consumerGoodsList){ Integer serviceCount = 0; Integer cycleService = 0; Integer cyclePerson = 0; Integer serviceService = 0; Integer servicePerson = 0; Integer experienceService = 0; Integer experiencePerson = 0; Long shopId = consumerGoodsList.get(0).getShopId(); Long userId = consumerGoodsList.get(0).getUserId(); MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = this.getMemberConsumerGoodsTotalVo(userId, shopId); for(ConsumerGoods consumerGoods : consumerGoodsList){ //处理商品服务次数 switch (consumerGoods.getGoodsType()) { case 1: cycleService = cycleService + consumerGoods.getServiceNum(); break; case 2: serviceService = serviceService + consumerGoods.getServiceNum(); break; case 3: experienceService = experienceService + consumerGoods.getServiceNum(); break; default: break; } } //判断是否加人 if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { cyclePerson = 1; } if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) { servicePerson = 1; } if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) { experiencePerson = 1; } serviceCount = cycleService + serviceService + experienceService; //更新商户和会员服务统计 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); memberTotalChangeDto.setUserId(userId); memberTotalChangeDto.setTypeService(1); memberTotalChangeDto.setServiceCount(serviceCount); remoteMemberService.changeMemberTotal(memberTotalChangeDto); ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(shopId); shopTotalChangeDto.setTypeCycleService(1); shopTotalChangeDto.setCycleService(cycleService); shopTotalChangeDto.setCyclePerson(cyclePerson); shopTotalChangeDto.setTypeServiceService(1); shopTotalChangeDto.setServiceService(serviceService); shopTotalChangeDto.setServicePerson(servicePerson); shopTotalChangeDto.setTypeExperienceService(1); shopTotalChangeDto.setExperienceService(experienceService); shopTotalChangeDto.setExperiencePerson(experiencePerson); remoteShopService.changeShopTotal(shopTotalChangeDto); return this.saveBatch(consumerGoodsList); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -210,14 +210,14 @@ } /** * @description 抢购商品 * @author jqs * @date 2023/7/6 11:45 * @param appPanicBuyDto * @return AppSureOrderVo * @return AppSureOrderVo * @description 抢购商品 * @author jqs * @date 2023/7/6 11:45 */ @Override public AppPanicBuyVo panicBuyGoods(AppPanicBuyDto appPanicBuyDto){ public AppPanicBuyVo panicBuyGoods(AppPanicBuyDto appPanicBuyDto) { Long userId = appPanicBuyDto.getUserId(); AppPanicBuyVo appPanicBuyVo = new AppPanicBuyVo(); String activityId = appPanicBuyDto.getActivityId(); @@ -238,13 +238,13 @@ activityGoodsGetDto.setGoodsId(goodsId); activityGoodsGetDto.setUserId(userId); ActivityGoodsGetVo activityGoodsGetVo = remoteActivityService.getUserActivityGoods(activityGoodsGetDto).getData(); if(activityGoodsGetVo.getActivityStatus()==0){ if (activityGoodsGetVo.getActivityStatus() == 0) { throw new ServiceException(AppErrorConstant.ACTIVITY_NO_START); } if(activityGoodsGetVo.getActivityStatus()==2){ if (activityGoodsGetVo.getActivityStatus() == 2) { throw new ServiceException(AppErrorConstant.ACTIVITY_END); } if(activityGoodsGetVo.getAvailableBuyNum()<1){ if (activityGoodsGetVo.getAvailableBuyNum() < 1) { throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); } Goods goods = remoteGoodsService.getGoods(goodsId).getData(); @@ -295,11 +295,16 @@ */ @Override public AppPlaceOrderVo placeOrder(AppPlaceOrderDto appPlaceOrderDto) { // 获取用户ID Long userId = appPlaceOrderDto.getUserId(); // 创建下单视图对象 AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo(); // 创建商品列表 List<AppSureOrderGoodsVo> appSureOrderGoodsVoList = new ArrayList<>(); AppSureOrderGoodsVo appSureOrderGoodsVo; // 获取购买的商品列表 List<AppBuyGoodsDto> appBuyGoodsDtoList = appPlaceOrderDto.getAppBuyGoodsDtoList(); // 初始化变量 String goodsId; Integer buyNum; BigDecimal buyNumBig; @@ -311,7 +316,9 @@ BigDecimal goodsPrice; BigDecimal goodsTotalPrice; BigDecimal goodsRealPrice; // 获取用户优惠券列表 List<AppMemberCouponVo> appMemberCouponVoList = remoteCouponService.listVoMemberCouponByUserId(userId).getData(); // 将用户优惠券列表转换为Map,方便后续查找 Map<String, AppMemberCouponVo> appMemberCouponVoMap = appMemberCouponVoList.stream().collect(Collectors.toMap(AppMemberCouponVo::getMemberCouponId, Function.identity())); AppMemberCouponVo appMemberCouponVo; Integer couponType; @@ -324,45 +331,58 @@ BigDecimal couponDiscount = new BigDecimal("0.00"); BigDecimal orderPayDeposit = new BigDecimal("0.00"); BigDecimal orderPayMoney = new BigDecimal("0.00"); // 创建订单ID和订单号 String orderId = IdUtils.simpleUUID(); String orderNo = CodeFactoryUtil.getShopOrderNo(); OrderGoods orderGoods; String orderGoodsId; // 创建商品类型集合,用于记录订单中所有商品的类型 HashSet<String> goodsTypeSet = new HashSet<>(); // 遍历购买的商品列表 for (AppBuyGoodsDto appBuyGoodsDto : appBuyGoodsDtoList) { appSureOrderGoodsVo = new AppSureOrderGoodsVo(); useCoupon = 0; // 获取商品ID和优惠券ID goodsId = appBuyGoodsDto.getGoodsId(); memberCouponId = appBuyGoodsDto.getMemberCouponId(); // 获取商品信息 goods = remoteGoodsService.getGoods(goodsId).getData(); // 设置商品信息 appSureOrderGoodsVo.setGoodsId(goodsId); appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); appSureOrderGoodsVo.setGoodsIntroduction(goods.getGoodsIntroduction()); appSureOrderGoodsVo.setGoodsType(goods.getGoodsType()); //商品图片 // 获取商品图片 goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); // 获取购买数量 buyNum = appBuyGoodsDto.getBuyNum(); appSureOrderGoodsVo.setBuyNum(buyNum); // 获取商品价格和服务数量 goodsPrice = goods.getSalesPrice(); serviceNum = goods.getServiceNum(); //商户定制价格 // 获取商户定制价格 AppShopGoodsGetDto appShopGoodsGetDto = new AppShopGoodsGetDto(); appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); appShopGoodsGetDto.setShopId(appPlaceOrderDto.getShopId()); ShopGoods shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); // 如果商户定制价格存在,则使用商户定制价格和服务数量 if (shopGoods != null) { goodsPrice = shopGoods.getSalesPrice(); serviceNum = shopGoods.getServiceNum(); } appSureOrderGoodsVo.setGoodsPrice(goodsPrice); // 计算商品总价 buyNumBig = BigDecimal.valueOf(buyNum); goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; // 如果使用了优惠券,计算优惠后的价格 if (memberCouponId != null) { appMemberCouponVo = appMemberCouponVoMap.get(memberCouponId); // 如果优惠券适用于该商品 if (StringUtils.isBlank(appMemberCouponVo.getRelGoodsIds()) || appMemberCouponVo.getRelGoodsIds().contains(goodsId)) { couponType = appMemberCouponVo.getCouponType(); // 根据优惠券类型计算优惠后的价格 if (couponType == 1 && appMemberCouponVo.getMoneyThreshold() != null && appMemberCouponVo.getDiscountMoney() != null) { moneyThreshold = appMemberCouponVo.getMoneyThreshold(); if (goodsTotalPrice.compareTo(moneyThreshold) >= 0) { @@ -386,17 +406,19 @@ appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); appSureOrderGoodsVo.setCouponDiscount(discountMoney); appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); // 获取商品押金 goodsDeposit = goods.getSubscription(); if (goodsDeposit == null) { goodsDeposit = new BigDecimal("0.00"); } appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); // 计算商品总数量、商品总价、优惠总金额、支付押金、支付金额 goodsNum = goodsNum + buyNum; orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); couponDiscount = couponDiscount.add(discountMoney); orderPayDeposit = orderPayDeposit.add(goodsDeposit); orderPayMoney = orderPayMoney.add(goodsRealPrice); //创建OrderGoods // 创建订单商品 orderGoods = new OrderGoods(); orderGoodsId = IdUtils.simpleUUID(); orderGoods.setOrderGoodsId(orderGoodsId); @@ -408,6 +430,7 @@ orderGoods.setCouponId(memberCouponId.toString()); } orderGoods.setGoodsPrice(goodsPrice); orderGoods.setGoodsDeposit(goodsDeposit); orderGoods.setGoodsTotalMoney(orderGoodsMoney); orderGoods.setGoodsReceivableMoney(goodsRealPrice); orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); @@ -415,12 +438,14 @@ orderGoods.setGoodsType(goods.getGoodsType()); orderGoods.setGoodsName(goods.getGoodsName()); orderGoods.setGoodsPicture(goodsFile.getFileUrl()); // 保存订单商品 orderGoodsService.save(orderGoods); //清空购物车 // 清空购物车 AppShoppingCartDelDto appShoppingCartDelDto = new AppShoppingCartDelDto(); appShoppingCartDelDto.setGoodsId(goodsId); appShoppingCartDelDto.setUserId(userId); remoteShoppingCartService.deleteShoppingCart(appShoppingCartDelDto); // 记录商品类型 if (goods.getGoodsType() == 1) { goodsTypeSet.add("周期"); } else if (goods.getGoodsType() == 2) { @@ -431,10 +456,10 @@ goodsTypeSet.add("单品"); } } // 创建订单 Order order = new Order(); order.setOrderId(orderId); order.setDelFlag(0); //为对接支付 直接付款成功 order.setOrderStatus(1); order.setOrderNo(orderNo); order.setOrderFrom(1); @@ -447,6 +472,7 @@ order.setReceivableDeposit(orderPayDeposit); order.setChangeReceivableMoney(orderPayMoney); order.setPayType(appPlaceOrderDto.getPayType()); // 根据支付类型计算支付金额 if (order.getPayType() == 1) { order.setPayMoney(orderPayMoney); order.setOnlinePayMoney(orderPayMoney); @@ -463,8 +489,9 @@ order.setOrderRemark(appPlaceOrderDto.getOrderRemark()); order.setGoodsNum(goodsNum); order.setCreateTime(new Date()); // 保存订单 this.save(order); //更新用户商品类型 // 更新用户商品类型 if (goodsTypeSet != null && goodsTypeSet.size() > 0) { AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto(); appMemberGoodsTypeDto.setUserId(userId); @@ -473,31 +500,33 @@ } appPlaceOrderVo.setOrderId(orderId); appPlaceOrderVo.setOrderNo(orderNo); //调用支付 // 调用支付 return appPlaceOrderVo; } /** * @description 创建活动订单 * @author jqs * @date 2023/7/6 17:59 * @param appPlaceActivityDto * @return AppPlaceOrderVo * @return AppPlaceOrderVo * @description 创建活动订单 * @author jqs * @date 2023/7/6 17:59 */ @Override public AppPlaceOrderVo placeActivityOrder( AppPlaceActivityDto appPlaceActivityDto){ public AppPlaceOrderVo placeActivityOrder(AppPlaceActivityDto appPlaceActivityDto) { Long userId = appPlaceActivityDto.getUserId(); // 创建订单对象 AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo(); // 定义商品订单对象 AppSureOrderGoodsVo appSureOrderGoodsVo; // 获取活动ID,商品ID,购买数量 String activityId = appPlaceActivityDto.getActivityId(); String goodsId = appPlaceActivityDto.getGoodsId(); Integer buyNum = appPlaceActivityDto.getBuyNum(); // 定义购买数量,服务数量,商品数量 BigDecimal buyNumBig; Integer serviceNum; Integer goodsNum = 0; // 定义商品,商品文件,商品价格,商品总价,商品实际价格,折扣金额,折扣百分比,商品押金,使用优惠券,订单商品金额,优惠券折扣,订单支付押金,订单支付金额 Goods goods; GoodsFile goodsFile; BigDecimal goodsPrice; @@ -511,25 +540,32 @@ BigDecimal couponDiscount = new BigDecimal("0.00"); BigDecimal orderPayDeposit = new BigDecimal("0.00"); BigDecimal orderPayMoney = new BigDecimal("0.00"); // 创建活动商品对象,并设置活动ID,商品ID,用户ID ActivityGoodsGetDto activityGoodsGetDto = new ActivityGoodsGetDto(); activityGoodsGetDto.setActivityId(activityId); activityGoodsGetDto.setGoodsId(goodsId); activityGoodsGetDto.setUserId(userId); // 获取用户活动商品 ActivityGoodsGetVo activityGoodsGetVo = remoteActivityService.getUserActivityGoods(activityGoodsGetDto).getData(); if(activityGoodsGetVo.getActivityStatus()==0){ // 检查活动状态 if (activityGoodsGetVo.getActivityStatus() == 0) { throw new ServiceException(AppErrorConstant.ACTIVITY_NO_START); } if(activityGoodsGetVo.getActivityStatus()==2){ if (activityGoodsGetVo.getActivityStatus() == 2) { throw new ServiceException(AppErrorConstant.ACTIVITY_END); } if(activityGoodsGetVo.getAvailableBuyNum()<1){ if (activityGoodsGetVo.getAvailableBuyNum() < 1) { throw new ServiceException(AppErrorConstant.ACTIVITY_GOODS_NULL); } // 创建订单ID和订单号 String orderId = IdUtils.simpleUUID(); String orderNo = CodeFactoryUtil.getShopOrderNo(); // 创建订单商品对象和订单商品ID OrderGoods orderGoods; String orderGoodsId; // 创建商品类型集合 HashSet<String> goodsTypeSet = new HashSet<>(); // 创建商品订单对象,并设置商品ID,商品名称,商品介绍,商品类型 appSureOrderGoodsVo = new AppSureOrderGoodsVo(); useCoupon = 0; goodsId = appPlaceActivityDto.getGoodsId(); @@ -538,34 +574,38 @@ appSureOrderGoodsVo.setGoodsName(goods.getGoodsName()); appSureOrderGoodsVo.setGoodsIntroduction(goods.getGoodsIntroduction()); appSureOrderGoodsVo.setGoodsType(goods.getGoodsType()); //商品图片 // 获取商品图片 goodsFile = remoteGoodsService.getGoodsFile(goodsId).getData(); appSureOrderGoodsVo.setGoodsPicture(goodsFile.getFileUrl()); buyNum = appPlaceActivityDto.getBuyNum(); // 设置购买数量,商品价格,服务数量 appSureOrderGoodsVo.setBuyNum(buyNum); goodsPrice = goods.getSalesPrice(); serviceNum = goods.getServiceNum(); //活动价格 // 获取活动价格 goodsPrice = activityGoodsGetVo.getActivityPrice(); appSureOrderGoodsVo.setGoodsPrice(goodsPrice); // 计算商品总价,商品实际价格 buyNumBig = BigDecimal.valueOf(buyNum); goodsTotalPrice = goodsPrice.multiply(buyNumBig); goodsRealPrice = goodsTotalPrice; // 设置使用优惠券,商品总价,优惠券折扣,商品实际价格 appSureOrderGoodsVo.setUseCoupon(useCoupon); appSureOrderGoodsVo.setGoodsTotalPrice(goodsTotalPrice); appSureOrderGoodsVo.setCouponDiscount(discountMoney); appSureOrderGoodsVo.setGoodsRealPrice(goodsRealPrice); goodsDeposit = goods.getSubscription(); // 获取商品押金 goodsDeposit = activityGoodsGetVo.getActivitySubscription(); if (goodsDeposit == null) { goodsDeposit = new BigDecimal("0.00"); } appSureOrderGoodsVo.setGoodsDeposit(goodsDeposit); // 计算商品数量,订单商品金额,优惠券折扣,订单支付押金,订单支付金额 goodsNum = goodsNum + buyNum; orderGoodsMoney = orderGoodsMoney.add(goodsTotalPrice); couponDiscount = couponDiscount.add(discountMoney); orderPayDeposit = orderPayDeposit.add(goodsDeposit); orderPayMoney = orderPayMoney.add(goodsRealPrice); //创建OrderGoods // 创建订单商品,并设置订单商品ID,删除标志,订单ID,商品ID,购买数量,商品价格,商品押金,商品总金额,商品应收金额,周期数量标志,服务数量,商品类型,商品名称,商品图片 orderGoods = new OrderGoods(); orderGoodsId = IdUtils.simpleUUID(); orderGoods.setOrderGoodsId(orderGoodsId); @@ -574,6 +614,7 @@ orderGoods.setGoodsId(goodsId); orderGoods.setBuyNum(buyNum); orderGoods.setGoodsPrice(goodsPrice); orderGoods.setGoodsDeposit(goodsDeposit); orderGoods.setGoodsTotalMoney(orderGoodsMoney); orderGoods.setGoodsReceivableMoney(goodsRealPrice); orderGoods.setCycleNumFlag(goods.getCycleNumFlag()); @@ -581,12 +622,14 @@ orderGoods.setGoodsType(goods.getGoodsType()); orderGoods.setGoodsName(goods.getGoodsName()); orderGoods.setGoodsPicture(goodsFile.getFileUrl()); // 保存订单商品 orderGoodsService.save(orderGoods); //清空购物车 // 清空购物车 AppShoppingCartDelDto appShoppingCartDelDto = new AppShoppingCartDelDto(); appShoppingCartDelDto.setGoodsId(goodsId); appShoppingCartDelDto.setUserId(userId); remoteShoppingCartService.deleteShoppingCart(appShoppingCartDelDto); // 根据商品类型添加到商品类型集合中 if (goods.getGoodsType() == 1) { goodsTypeSet.add("周期"); } else if (goods.getGoodsType() == 2) { @@ -596,11 +639,10 @@ } else if (goods.getGoodsType() == 4) { goodsTypeSet.add("单品"); } // 创建订单,并设置订单ID,删除标志,订单状态,订单号,订单来源,店铺ID,用户ID,订单金额,优惠券金额,折扣金额,应收金额,应收押金,变动应收金额,支付类型 Order order = new Order(); order.setOrderId(orderId); order.setDelFlag(0); //为对接支付 直接付款成功 order.setOrderStatus(1); order.setOrderNo(orderNo); order.setOrderFrom(1); @@ -613,6 +655,7 @@ order.setReceivableDeposit(orderPayDeposit); order.setChangeReceivableMoney(orderPayMoney); order.setPayType(appPlaceActivityDto.getPayType()); // 根据支付类型设置订单支付金额,在线支付金额,订单支付金额,未支付金额,关闭标志 if (order.getPayType() == 1) { order.setPayMoney(orderPayMoney); order.setOnlinePayMoney(orderPayMoney); @@ -626,26 +669,25 @@ appPlaceOrderVo.setUnpaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); order.setCloseFlag(0); } // 设置订单备注,商品数量,创建时间 order.setOrderRemark(appPlaceActivityDto.getOrderRemark()); order.setGoodsNum(goodsNum); order.setCreateTime(new Date()); // 保存订单 this.save(order); //更新用户商品类型 // 更新用户商品类型 if (goodsTypeSet != null && goodsTypeSet.size() > 0) { AppMemberGoodsTypeDto appMemberGoodsTypeDto = new AppMemberGoodsTypeDto(); appMemberGoodsTypeDto.setUserId(userId); appMemberGoodsTypeDto.setGoodsTypeSet(goodsTypeSet); remoteMemberService.updateMemberGoodsType(appMemberGoodsTypeDto); } // 设置订单ID和订单号 appPlaceOrderVo.setOrderId(orderId); appPlaceOrderVo.setOrderNo(orderNo); //调用支付 // 调用支付 return appPlaceOrderVo; } /** @@ -778,15 +820,15 @@ * @return */ @Override public MerVerifyOrderVo verifyOrder(String orderId,Long shopId) { public MerVerifyOrderVo verifyOrder(String orderId, Long shopId) { // 创建返回对象 MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); // 根据订单ID获取订单信息 Order order = this.getById(orderId); if(order.getOrderStatus()!=2){ if (order.getOrderStatus() != 2) { throw new ServiceException(AppErrorConstant.VERIFY_USED); } if(!order.getShopId().equals(shopId)){ if (!order.getShopId().equals(shopId)) { throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } // 根据订单ID获取订单商品列表 @@ -829,7 +871,7 @@ Date nowTime = new Date(); //更新订单信息 Order order = this.getById(orderId); if(order.getOrderStatus()!=2){ if (order.getOrderStatus() != 2) { throw new ServiceException(AppErrorConstant.VERIFY_USED); } order.setOrderStatus(3); @@ -854,14 +896,7 @@ ConsumerGoods consumerGoods; String consumerGoodsId; Goods goods; Integer serviceCount = 0; Integer cycleService = 0; Integer cyclePerson = 0; Integer serviceService = 0; Integer servicePerson = 0; Integer experienceService = 0; Integer experiencePerson = 0; MerMemberConsumerGoodsTotalVo memberConsumerGoodsTotalVo = consumerGoodsService.getMemberConsumerGoodsTotalVo(order.getUserId(), order.getShopId()); List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); for (AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList) { consumerGoods = new ConsumerGoods(); goods = goodsMap.get(appUserOrderGoodsPageVo.getGoodsId()); @@ -884,35 +919,9 @@ consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); consumerGoods.setGoodsNurses(goods.getGoodsNurses()); consumerGoods.setSourceFrom(1); consumerGoodsService.save(consumerGoods); //处理商品服务次数 if (consumerGoods.getCycleNumFlag() == 1) { switch (goods.getGoodsType()) { case 1: cycleService = cycleService + appUserOrderGoodsPageVo.getServiceNum(); break; case 2: serviceService = serviceService + appUserOrderGoodsPageVo.getServiceNum(); break; case 3: experienceService = experienceService + appUserOrderGoodsPageVo.getServiceNum(); break; default: break; } } consumerGoodsList.add(consumerGoods); } //判断是否加人 if (cycleService > 0 && memberConsumerGoodsTotalVo.getCycleOrder() == 0) { cyclePerson = 1; } if (serviceService > 0 && memberConsumerGoodsTotalVo.getServiceOrder() == 0) { servicePerson = 1; } if (experienceService > 0 && memberConsumerGoodsTotalVo.getExperienceOrder() == 0) { experiencePerson = 1; } serviceCount = cycleService + serviceService + experienceService; consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); //生成返回 MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); merVerifyOrderVo.setOrderId(orderId); @@ -932,24 +941,6 @@ SysUser sysUser = remoteUserService.getSysUser(order.getUserId()).getData(); merVerifyOrderVo.setUserName(sysUser.getNickName()); merVerifyOrderVo.setUserMobile(sysUser.getPhonenumber()); //更新商户和会员服务统计 MemberTotalChangeDto memberTotalChangeDto = new MemberTotalChangeDto(); memberTotalChangeDto.setUserId(order.getUserId()); memberTotalChangeDto.setTypeService(1); memberTotalChangeDto.setServiceCount(serviceCount); remoteMemberService.changeMemberTotal(memberTotalChangeDto); ShopTotalChangeDto shopTotalChangeDto = new ShopTotalChangeDto(); shopTotalChangeDto.setShopId(order.getShopId()); shopTotalChangeDto.setTypeCycleService(1); shopTotalChangeDto.setCycleService(cycleService); shopTotalChangeDto.setCyclePerson(cyclePerson); shopTotalChangeDto.setTypeServiceService(1); shopTotalChangeDto.setServiceService(serviceService); shopTotalChangeDto.setServicePerson(servicePerson); shopTotalChangeDto.setTypeExperienceService(1); shopTotalChangeDto.setExperienceService(experienceService); shopTotalChangeDto.setExperiencePerson(experiencePerson); remoteShopService.changeShopTotal(shopTotalChangeDto); return merVerifyOrderVo; } @@ -990,6 +981,9 @@ ConsumerGoods consumerGoods; String consumerGoodsId; GoodsFile goodsFile; AppShopGoodsGetDto appShopGoodsGetDto; ShopGoods shopGoods; List<ConsumerGoods> consumerGoodsList = new ArrayList<>(); for (Goods goods : goodsList) { consumerGoods = new ConsumerGoods(); consumerGoodsId = IdUtils.simpleUUID(); @@ -1004,6 +998,14 @@ consumerGoods.setGoodsName(goods.getGoodsName()); consumerGoods.setCycleNumFlag(goods.getCycleNumFlag()); consumerGoods.setServiceNum(goods.getServiceNum()); appShopGoodsGetDto = new AppShopGoodsGetDto(); appShopGoodsGetDto.setGoodsId(goods.getGoodsId()); appShopGoodsGetDto.setShopId(memberCoupon.getShopId()); //获取商户服务次数 shopGoods = remoteGoodsService.getShopGoods(appShopGoodsGetDto).getData(); if(shopGoods!=null){ consumerGoods.setServiceNum(shopGoods.getServiceNum()); } consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(goods.getGoodsType()); consumerGoods.setCreateTime(new Date()); @@ -1012,8 +1014,9 @@ consumerGoods.setGoodsPicture(goodsFile.getFileUrl()); consumerGoods.setGoodsNurses(goods.getGoodsNurses()); consumerGoods.setSourceFrom(1); consumerGoodsService.save(consumerGoods); consumerGoodsList.add(consumerGoods); } consumerGoodsService.saveBatchConsumerGoods(consumerGoodsList); return merVerifyCouponVo; } @@ -1203,7 +1206,7 @@ orderGoods.setGoodsName(goods.getGoodsName()); orderGoods.setGoodsPicture(goodsFile.getFileUrl()); orderGoodsService.save(orderGoods); switch(orderGoods.getGoodsType()){ switch (orderGoods.getGoodsType()) { case 1: cycleMoney = cycleMoney.add(orderGoods.getGoodsReceivableMoney()); break; @@ -1235,9 +1238,9 @@ order.setReceivableMoney(orderPayMoney); order.setReceivableDeposit(new BigDecimal("0.00")); order.setPayType(1); if(merNewOrderDto.getChangeMoney()!=null){ if (merNewOrderDto.getChangeMoney() != null) { order.setChangeReceivableMoney(merNewOrderDto.getChangeMoney()); }else{ } else { order.setChangeReceivableMoney(orderPayMoney); } order.setPayMoney(orderPayMoney); @@ -1614,7 +1617,7 @@ //处理商品信息 List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList; String goodsString; for(MgtShopOrderPageVo entity : shopOrderPageVoList){ for (MgtShopOrderPageVo entity : shopOrderPageVoList) { mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList(); goodsString = mgtOrderGoodsVoList.stream() .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum()) @@ -2272,7 +2275,7 @@ * @date 2023/6/27 11:10 */ @Override public MerVerifyCouponVo verifyCoupon(String verifyCode,Long shopId) { public MerVerifyCouponVo verifyCoupon(String verifyCode, Long shopId) { // 创建MerVerifyCouponVo对象 MerVerifyCouponVo merVerifyCouponVo = new MerVerifyCouponVo(); // 调用remoteCouponService的getVerifyCoupon方法获取MerVerifyCouponGetVo对象 @@ -2287,7 +2290,7 @@ } else if (couponStatus != 0) { throw new ServiceException(AppErrorConstant.COUPON_NO_FIND); } if(!memberCoupon.getShopId().equals(shopId)){ if (!memberCoupon.getShopId().equals(shopId)) { throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR); } List<Goods> goodsList = verifyCouponGetVo.getGoodsList(); @@ -2313,33 +2316,33 @@ } /** * @description 获取用户未支付金额 * @author jqs * @date 2023/6/29 18:00 * @param merBaseDto * @return BigDecimal * @return BigDecimal * @description 获取用户未支付金额 * @author jqs * @date 2023/6/29 18:00 */ @Override public BigDecimal getMemberUnpaidOrder(MerBaseDto merBaseDto){ public BigDecimal getMemberUnpaidOrder(MerBaseDto merBaseDto) { BigDecimal unpaidMoney = orderMapper.getMemberUnpaidOrder(merBaseDto); return unpaidMoney; } /** * @description 商户获取订单统计 * @author jqs * @date 2023/7/3 19:29 * @param merTotalDto * @return MerOrderTotalVo * @return MerOrderTotalVo * @description 商户获取订单统计 * @author jqs * @date 2023/7/3 19:29 */ @Override public MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto){ if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ public MerOrderTotalVo getMerOrderTotal(MerTotalDto merTotalDto) { if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); } if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); @@ -2350,15 +2353,15 @@ /** * @description * @author jqs * @date 2023/7/4 9:29 * @param merTotalDto * @return MerOrderDistributionTotalVo * @return MerOrderDistributionTotalVo * @description * @author jqs * @date 2023/7/4 9:29 */ @Override public MerOrderDistributionTotalVo MerOrderDistributionTotalVo(MerTotalDto merTotalDto){ if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ public MerOrderDistributionTotalVo MerOrderDistributionTotalVo(MerTotalDto merTotalDto) { if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); @@ -2419,15 +2422,15 @@ } /** * @description 商户获取销售占比统计 * @author jqs * @date 2023/7/4 13:58 * @param merTotalDto * @return MerOrderTypeTotalVo * @return MerOrderTypeTotalVo * @description 商户获取销售占比统计 * @author jqs * @date 2023/7/4 13:58 */ @Override public MerOrderTypeTotalVo getMerOrderTypeTotal(MerTotalDto merTotalDto){ if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ public MerOrderTypeTotalVo getMerOrderTypeTotal(MerTotalDto merTotalDto) { if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); @@ -2470,15 +2473,15 @@ /** * @description 商户端获取销售排行 * @author jqs * @date 2023/7/4 14:23 * @param merTotalDto * @return MerOrderGoodsRankVo * @return MerOrderGoodsRankVo * @description 商户端获取销售排行 * @author jqs * @date 2023/7/4 14:23 */ @Override public MerOrderGoodsRankVo getMerOrderGoodsRank(MerTotalDto merTotalDto){ if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ public MerOrderGoodsRankVo getMerOrderGoodsRank(MerTotalDto merTotalDto) { if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); @@ -2494,15 +2497,15 @@ /** * @description 商户端获取渠道排行 * @author jqs * @date 2023/7/4 14:51 * @param merTotalDto * @return MerOrderFromRankVo * @return MerOrderFromRankVo * @description 商户端获取渠道排行 * @author jqs * @date 2023/7/4 14:51 */ @Override public MerOrderFromRankVo getMerOrderFromRank(MerTotalDto merTotalDto){ if(merTotalDto.getShopAllFlag()!=null&&merTotalDto.getShopAllFlag()==1){ public MerOrderFromRankVo getMerOrderFromRank(MerTotalDto merTotalDto) { if (merTotalDto.getShopAllFlag() != null && merTotalDto.getShopAllFlag() == 1) { List<Long> shopIdList = remoteShopService.listShopIdByShopId(merTotalDto.getShopId()).getData(); merTotalDto.setShopIdList(shopIdList); merTotalDto.setShopId(null); @@ -2518,29 +2521,29 @@ } /** * @description 商户端订单管理统计 * @author jqs * @date 2023/7/4 16:27 * @param merBaseDto * @return MerTotalOrderVo * @return MerTotalOrderVo * @description 商户端订单管理统计 * @author jqs * @date 2023/7/4 16:27 */ @Override public MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto){ public MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto) { return orderMapper.totalMerOrder(merBaseDto.getShopId()); } /** * @description 平台获取商户订单记录 * @author jqs * @date 2023/7/5 20:17 * @param page * @param mgtShopAllOrderPageDto * @return List<MgtShopAllOrderPageVo> * @return List<MgtShopAllOrderPageVo> * @description 平台获取商户订单记录 * @author jqs * @date 2023/7/5 20:17 */ @Override public List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, MgtShopAllOrderPageDto mgtShopAllOrderPageDto){ public List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, MgtShopAllOrderPageDto mgtShopAllOrderPageDto) { List<MgtShopAllOrderPageVo> shopAllOrderPageVoList = orderMapper.pageMgtShopAllOrder(page, mgtShopAllOrderPageDto); if(!shopAllOrderPageVoList.isEmpty()){ if (!shopAllOrderPageVoList.isEmpty()) { // 定义变量 HashSet<Long> userIdSet = new HashSet<>(); BigDecimal zeroBig = new BigDecimal("0.00"); @@ -2566,7 +2569,7 @@ if (userMap.get(mgtShopOrderPageVo.getUserId()) != null) { userInfo = userMap.get(mgtShopOrderPageVo.getUserId()).getNickName(); mobile = userMap.get(mgtShopOrderPageVo.getUserId()).getUserMobile(); if(StringUtils.isNotBlank(mobile)){ if (StringUtils.isNotBlank(mobile)) { userInfo = userInfo + "(" + mobile + ")"; } mgtShopOrderPageVo.setUserInfo(userInfo); @@ -2576,7 +2579,7 @@ //处理商品信息 List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList; String goodsString; for(MgtShopAllOrderPageVo entity : shopAllOrderPageVoList){ for (MgtShopAllOrderPageVo entity : shopAllOrderPageVoList) { mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList(); goodsString = mgtOrderGoodsVoList.stream() .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum()) ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/ConsumerGoodsService.java
@@ -11,6 +11,7 @@ import com.ruoyi.order.domain.vo.MerConsumerGoodsListVo; import com.ruoyi.order.domain.vo.MerConsumerGoodsVo; import com.ruoyi.order.domain.vo.MerMemberConsumerGoodsTotalVo; import com.ruoyi.system.api.domain.dto.BirthdayGiftSendDto; import java.util.List; @@ -46,7 +47,7 @@ void sureMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto); /** * 确认商品次数 * 消费服务商品 * @param merSureConsumerGoodsDto */ void useMerConsumerGoods(MerSureConsumerGoodsDto merSureConsumerGoodsDto); @@ -68,4 +69,22 @@ * @return MerMemberConsumerGoodsTotalVo */ MerMemberConsumerGoodsTotalVo getMemberConsumerGoodsTotalVo(Long userId, Long shopId); /** * @description 发放用户商品礼物 * @author jqs * @date 2023/7/7 18:51 * @param giftSendDtoList * @return void */ void sendGoodsGift(List<BirthdayGiftSendDto> giftSendDtoList); /** * @description * @author jqs * @date 2023/7/7 19:34 * @param consumerGoodsList * @return boolean */ boolean saveBatchConsumerGoods(List<ConsumerGoods> consumerGoodsList); } ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -1128,7 +1128,7 @@ SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey, COUNT(DISTINCT order_id) AS mapValueFirst, IFNULL(SUM(toc.order_money),0) AS mapValueSecond IFNULL(SUM(order_money),0) AS mapValueSecond FROM t_order WHERE del_flag = 0 AND order_from = 2 AND create_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY) @@ -1196,7 +1196,7 @@ </foreach> </if> GROUP BY shop_id ORDER BY COUNT(toc.order_id) DESC LIMIT 15 ORDER BY COUNT(order_id) DESC LIMIT 15 </select> <select id="listPlTotalShopActivitySalesRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo"> ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -246,4 +246,28 @@ Integer count = shopSuggestService.getUnReplaySuggestVo(); return R.ok(count); } /** * @description 获取商户营销状态 * @author jqs * @date 2023/7/7 14:05 * @param shopId * @return R<Integer> */ @PostMapping("/getShopMarketingStatus") public R<Integer> getShopMarketingStatus(@RequestBody Long shopId) { Shop shop = shopService.getByShopId(shopId); Integer platformCouponFlag = shop.getPlatformCouponFlag(); Integer platformBirthdayFlag = shop.getPlatformBirthdayFlag(); Integer marketingStatus = 0; if(platformCouponFlag==1&&platformBirthdayFlag==0){ marketingStatus = 1; }else if(platformCouponFlag==0&&platformBirthdayFlag==1){ marketingStatus = 2; }else if(platformCouponFlag==1&&platformBirthdayFlag==1){ marketingStatus = 3; } return R.ok(marketingStatus); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopPageDto.java
@@ -53,6 +53,9 @@ @ApiModelProperty(value = "归属员工") private Long belongUserId; @ApiModelProperty(value = "归属经销商id") private Long belongShopId; @ApiModelProperty(value = "来源渠道") private String shopSource; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -277,71 +277,85 @@ } } if(newShop){ //商户账户信息初始化 ShopAccount shopAccount = new ShopAccount(); shopAccount.setShopId(shop.getShopId()); shopAccount.setDelFlag(0); shopAccount.setTotalIncome(new BigDecimal("0")); shopAccount.setTotalDisburse(new BigDecimal("0")); shopAccount.setTotalRefund(new BigDecimal("0")); shopAccount.setTotalProfitsharing(new BigDecimal("0")); shopAccount.setTotalMoney(new BigDecimal("0")); shopAccountService.save(shopAccount); //商户认证信息初始化 String authId = IdUtils.simpleUUID(); ShopAuthentication shopAuthentication = new ShopAuthentication(); shopAuthentication.setAuthId(authId); shopAuthentication.setDelFlag(0); shopAuthentication.setShopId(shop.getShopId()); shopAuthenticationService.save(shopAuthentication); //商户分成信息初始化 ShopProportion shopProportion = new ShopProportion(); shopProportion.setDelFlag(0); shopProportion.setShopId(shop.getShopId()); shopProportion.setShopType(shop.getShopType()); shopProportion.setProportionPercent(new BigDecimal("100.00")); shopProportion.setUpdateTime(new Date()); shopProportion.setUpdateUserId(mgtEditShopDto.getUserId()); shopProportionService.save(shopProportion); //商户统计 ShopTotal shopTotal = new ShopTotal(); shopTotal.setShopId(shop.getShopId()); shopTotal.setDelFlag(0); shopTotal.setLastPayMoney(zeroBig); shopTotal.setTotalActivityCount(0); shopTotal.setTotalOrder(0); shopTotal.setTotalCycleOrder(0); shopTotal.setTotalExperienceOrder(0); shopTotal.setTotalServiceOrder(0); shopTotal.setTotalGoodsOrder(0); shopTotal.setTotalServiceCount(0); shopTotal.setUsedServiceCount(0); shopTotal.setUseableServiceCount(0); shopTotal.setTotalCycleService(0); shopTotal.setUsedCycleService(0); shopTotal.setUseableCycleService(0); shopTotal.setTotalCyclePerson(0); shopTotal.setUseableCyclePerson(0); shopTotal.setTotalServiceService(0); shopTotal.setUsedServiceService(0); shopTotal.setUseableServiceService(0); shopTotal.setTotalServicePerson(0); shopTotal.setUseableServicePerson(0); shopTotal.setTotalExperienceService(0); shopTotal.setUsedExperienceService(0); shopTotal.setUseableExperienceService(0); shopTotal.setTotalExperiencePerson(0); shopTotal.setUseableExperiencePerson(0); shopTotal.setTotalOrderMoney(zeroBig); shopTotal.setTotalCycleMoney(zeroBig); shopTotal.setTotalExperienceMoney(zeroBig); shopTotal.setTotalServiceMoney(zeroBig); shopTotal.setTotalGoodsMoney(zeroBig); shopTotalService.save(shopTotal); //生成商户关联记录 initNewShop(shop,mgtEditShopDto.getUserId()); } } /** * @description 商户关联类初始化 * @author jqs * @date 2023/7/7 11:25 * @param shop * @param userId * @return void */ private void initNewShop(Shop shop,Long userId){ BigDecimal zeroBig = new BigDecimal("0.00"); //商户账户信息初始化 ShopAccount shopAccount = new ShopAccount(); shopAccount.setShopId(shop.getShopId()); shopAccount.setDelFlag(0); shopAccount.setTotalIncome(new BigDecimal("0")); shopAccount.setTotalDisburse(new BigDecimal("0")); shopAccount.setTotalRefund(new BigDecimal("0")); shopAccount.setTotalProfitsharing(new BigDecimal("0")); shopAccount.setTotalMoney(new BigDecimal("0")); shopAccountService.save(shopAccount); //商户认证信息初始化 String authId = IdUtils.simpleUUID(); ShopAuthentication shopAuthentication = new ShopAuthentication(); shopAuthentication.setAuthId(authId); shopAuthentication.setDelFlag(0); shopAuthentication.setShopId(shop.getShopId()); shopAuthenticationService.save(shopAuthentication); //商户分成信息初始化 ShopProportion shopProportion = new ShopProportion(); shopProportion.setDelFlag(0); shopProportion.setShopId(shop.getShopId()); shopProportion.setShopType(shop.getShopType()); shopProportion.setProportionPercent(new BigDecimal("100.00")); shopProportion.setUpdateTime(new Date()); shopProportion.setUpdateUserId(userId); shopProportionService.save(shopProportion); //商户统计 ShopTotal shopTotal = new ShopTotal(); shopTotal.setShopId(shop.getShopId()); shopTotal.setDelFlag(0); shopTotal.setLastPayMoney(zeroBig); shopTotal.setTotalActivityCount(0); shopTotal.setTotalOrder(0); shopTotal.setTotalCycleOrder(0); shopTotal.setTotalExperienceOrder(0); shopTotal.setTotalServiceOrder(0); shopTotal.setTotalGoodsOrder(0); shopTotal.setTotalServiceCount(0); shopTotal.setUsedServiceCount(0); shopTotal.setUseableServiceCount(0); shopTotal.setTotalCycleService(0); shopTotal.setUsedCycleService(0); shopTotal.setUseableCycleService(0); shopTotal.setTotalCyclePerson(0); shopTotal.setUseableCyclePerson(0); shopTotal.setTotalServiceService(0); shopTotal.setUsedServiceService(0); shopTotal.setUseableServiceService(0); shopTotal.setTotalServicePerson(0); shopTotal.setUseableServicePerson(0); shopTotal.setTotalExperienceService(0); shopTotal.setUsedExperienceService(0); shopTotal.setUseableExperienceService(0); shopTotal.setTotalExperiencePerson(0); shopTotal.setUseableExperiencePerson(0); shopTotal.setTotalOrderMoney(zeroBig); shopTotal.setTotalCycleMoney(zeroBig); shopTotal.setTotalExperienceMoney(zeroBig); shopTotal.setTotalServiceMoney(zeroBig); shopTotal.setTotalGoodsMoney(zeroBig); shopTotalService.save(shopTotal); } /** * @description 终止合作 * @author jqs * @date 2023/6/20 12:01 ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -345,6 +345,9 @@ <if test="param.belongUserId!=null and param.belongUserId!=''"> AND ts.belong_user_id = #{param.belongUserId} </if> <if test="param.belongShopId!=null and param.belongShopId!=''"> AND ts.belong_shop_id = #{param.belongShopId} </if> <if test="param.shopSource!=null and param.shopSource!=''"> AND ts.shop_source = #{param.shopSource} </if> ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/GeneratorMybatisPlus.java
@@ -44,7 +44,7 @@ DataSourceConfig dataSourceConfig = new DataSourceConfig(); dataSourceConfig.setDbType(DbType.MYSQL); dataSourceConfig.setTypeConvert(new MySqlTypeConvert()); dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_shop?tinyInt1isBit=false"); dataSourceConfig.setUrl("jdbc:mysql://47.109.78.184:10010/hrt_member?tinyInt1isBit=false"); dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver"); dataSourceConfig.setUsername("root"); dataSourceConfig.setPassword("hrt123456"); @@ -53,7 +53,7 @@ // 包名配置 PackageConfig packageConfig = new PackageConfig(); // 父包和子包名分开处理 packageConfig.setParent("com.ruoyi.shop"); packageConfig.setParent("com.ruoyi.member"); packageConfig.setController("app"); packageConfig.setEntity("domain.pojo"); packageConfig.setMapper("mapper"); @@ -74,7 +74,7 @@ strategy.setControllerMappingHyphenStyle(true); //表和前缀处理 String[] table = { "t_shop_total" "t_member_gift_record" }; strategy.setInclude(table); String[] tablePre = new String[]{"t_"};