ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/ShopWinningRecordVo.java
@@ -10,6 +10,8 @@ @ApiModel public class ShopWinningRecordVo { @ApiModelProperty("用户名") private String userId; @ApiModelProperty("用户名") private String userName; @ApiModelProperty("用户电话") private String userPhone; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/UserLotteryEventServiceImpl.java
@@ -63,6 +63,7 @@ awardName.add(name); } ShopWinningRecordVo shopWinningRecordVo = new ShopWinningRecordVo(); shopWinningRecordVo.setUserId(user_id.toString()); shopWinningRecordVo.setUserName(member.getRealName()); shopWinningRecordVo.setUserPhone(member.getMobile()); shopWinningRecordVo.setLotteryTime(create_time); ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml
@@ -16,7 +16,7 @@ # 服务注册地址 # server-addr: 47.109.78.184:5000 server-addr: 192.168.110.80:8848 ip: 192.168.110.85 ip: 192.168.110.21 #pro # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java
@@ -7,10 +7,7 @@ import com.ruoyi.member.domain.dto.MerCouponPageDto; import com.ruoyi.member.domain.dto.MerGoodsCouponListDto; import com.ruoyi.member.domain.dto.MgtCouponListDto; import com.ruoyi.member.domain.vo.MerCouponGetVo; import com.ruoyi.member.domain.vo.MerCouponPageVo; import com.ruoyi.member.domain.vo.MetAuditCouponTotalVo; import com.ruoyi.member.domain.vo.MgtCouponSimpleListVo; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.service.coupon.CouponService; import com.ruoyi.member.service.member.MemberCouponService; import com.ruoyi.system.api.domain.dto.MerBaseDto; @@ -19,10 +16,7 @@ import com.ruoyi.system.api.domain.vo.MerMemberCouponVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; @@ -127,4 +121,12 @@ MetAuditCouponTotalVo auditCouponTotalVo = couponService.getMetAuditCouponTotal(merBaseDto.getShopId()); return R.ok(auditCouponTotalVo); } //获取商户抽奖类型优惠券列表 @RequestMapping(value = "/getLotteryEventCouponListByShopId/{shopId}", method = RequestMethod.POST) @ApiOperation(value = "获取商户抽奖类型优惠券列表【2.0】") public R<List<LotteryEventCouponListVO>> getLotteryEventCouponListByShopId(@PathVariable(value = "shopId") String shopId) { return R.ok( couponService.getLotteryEventCouponListByShopId(shopId)); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java
@@ -37,7 +37,7 @@ @RequestMapping(value = "/pageMgtCoupon", method = RequestMethod.POST) @ApiOperation(value = "平台分页获取优惠券列表【2.0】") @ApiOperation(value = "平台分页获取优惠券列表") public R<Page<MgtCouponPageVo>> pageMgtCoupon(@RequestBody MgtCouponPageDto mgtCouponPageDto) { Long userId = SecurityUtils.getUserId(); mgtCouponPageDto.setUserId(userId); @@ -115,14 +115,20 @@ return R.ok(); } //todo 立即结束 @RequestMapping(value = "/endImmediately", method = RequestMethod.POST) @Log(title = "优惠券管理", businessType = BusinessType.UPDATE,operContent = "立即结束") @ApiOperation(value = "立即结束【2.0】") public R endImmediately(@RequestBody MgtBaseGetDto mgtBaseGetDto) { Long userId = SecurityUtils.getUserId(); mgtBaseGetDto.setUserId(userId); couponService.endImmediately(mgtBaseGetDto); return R.ok(); return couponService.endImmediately(mgtBaseGetDto); } //获取抽奖类型优惠券列表 @RequestMapping(value = "/getLotteryEventCouponList", method = RequestMethod.POST) @ApiOperation(value = "平台获取抽奖类型优惠券列表【2.0】") public R<List<LotteryEventCouponListVO>> getLotteryEventCouponList() { return R.ok( couponService.getLotteryEventCouponList()); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/pojo/coupon/Coupon.java
@@ -54,7 +54,7 @@ @TableField("coupon_name") private String couponName; /** * 发送类型1.手动领取2.指定发放 * 发送类型1.手动领取2.指定发放3.抽奖发送 */ @TableField("send_type") private Integer sendType; ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/LotteryEventCouponListVO.java
New file @@ -0,0 +1,15 @@ package com.ruoyi.member.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class LotteryEventCouponListVO { @ApiModelProperty(value = "优惠券id") private String couponId; @ApiModelProperty(value="优惠券名称") private String couponName; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtCouponPageVo.java
@@ -23,7 +23,7 @@ @ApiModelProperty(value="优惠券名称") private String couponName; @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品5.抽奖领取") @ApiModelProperty(value="优惠券类型1.满减2.折扣3.代金4.商品") private String couponType; @ApiModelProperty(value = "使用限制") ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
@@ -113,4 +113,12 @@ * @return List<AppGetAbleCouponPageVo> */ List<AppGetAbleCouponPageVo> getAbleCouponPageVoList(Page page, @Param("shopId") Long shopId, @Param("userId") Long userId, @Param("memberFlag") Integer memberFlag, @Param("unGetList") List<String> unGetList); /** * * @return */ List<LotteryEventCouponListVO> getLotteryEventCouponList(); List<LotteryEventCouponListVO> getLotteryEventCouponListByShopId(@Param("shopId") String shopId); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.R; import com.ruoyi.member.domain.dto.*; import com.ruoyi.member.domain.pojo.coupon.Coupon; import com.ruoyi.member.domain.vo.*; @@ -201,5 +202,17 @@ */ MetAuditCouponTotalVo getMetAuditCouponTotal(Long shopId); void endImmediately(MgtBaseGetDto mgtBaseGetDto); /** * 立即结束 * @param mgtBaseGetDto */ R endImmediately(MgtBaseGetDto mgtBaseGetDto); /** * 平台获取抽奖类型优惠券列表 * @return */ List<LotteryEventCouponListVO> getLotteryEventCouponList(); List<LotteryEventCouponListVO> getLotteryEventCouponListByShopId(String shopId); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -37,6 +38,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.TimeUnit; @@ -294,6 +296,7 @@ * 三:可修改 * 1、优惠券名称 * 2、宣传海报 * 3、分享文案、分享图片 * 四:发放对象 * 1、未到发放时间都可以修改 * 2、已到发放时间,只有自定义时可修改,且只能增加用户 @@ -407,6 +410,8 @@ coupon.setRelationActivityType(mgtCouponEditDto.getRelationActivityType()); coupon.setRelationActivityId(mgtCouponEditDto.getRelationActivityId()); coupon.setPropagandaPoster(mgtCouponEditDto.getPropagandaPoster()); coupon.setSharePassage(mgtCouponEditDto.getSharePassage()); coupon.setSharePic(mgtCouponEditDto.getSharePic()); //指定发放优惠券不做发放数限制 if(coupon.getSendType()==2){ mgtCouponEditDto.setSendLimitFlag(0); @@ -1513,7 +1518,29 @@ } @Override public void endImmediately(MgtBaseGetDto mgtBaseGetDto) { public R endImmediately(MgtBaseGetDto mgtBaseGetDto) { // 将优惠券状态置为禁用 定时发放类型每小时会检查启用中的没发放的 发送了的、立即发送类型的优惠券不管 Coupon coupon = couponMapper.selectById(mgtBaseGetDto.getId()); if (coupon == null || coupon.getDelFlag() != 0) { return R.fail("该优惠券不存在"); } if (coupon.getCouponStatus()!=1){ return R.fail("状态错误,该优惠券未在启用中"); } coupon.setCouponStatus(0);//设置为禁用 coupon.setUpdateUserId(mgtBaseGetDto.getUserId()); coupon.setUpdateTime(new Date()); this.updateById(coupon); return R.ok(); } @Override public List<LotteryEventCouponListVO> getLotteryEventCouponList() { return this.getBaseMapper().getLotteryEventCouponList(); } @Override public List<LotteryEventCouponListVO> getLotteryEventCouponListByShopId(String shopId) { return this.getBaseMapper().getLotteryEventCouponListByShopId(shopId); } } ruoyi-modules/ruoyi-member/src/main/resources/bootstrap.yml
@@ -16,7 +16,7 @@ # 服务注册地址 # server-addr: 47.109.78.184:5000 server-addr: 192.168.110.80:8848 ip: 192.168.110.85 ip: 192.168.110.21 #pro # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 # test ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -397,4 +397,36 @@ </if> ORDER BY tc.create_time DESC </select> <select id="getLotteryEventCouponList" resultType="com.ruoyi.member.domain.vo.LotteryEventCouponListVO"> select coupon_id , coupon_name from t_coupon where del_flag = 0 and coupon_status = 1 and send_type = 3 and coupon_from = 1 </select> <select id="getLotteryEventCouponListByShopId" resultType="com.ruoyi.member.domain.vo.LotteryEventCouponListVO"> select coupon_id , coupon_name from t_coupon where del_flag = 0 and coupon_status = 1 and send_type = 3 and coupon_from = 2 and audit_status = 2 and shop_id = #{shopId} </select> </mapper> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -194,8 +194,9 @@ } //todo 取消 //todo 退款 //todo 分页获取三方订单 //todo 导出 } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -250,7 +250,7 @@ } @RequestMapping(value = "/getMgtShopInfo", method = RequestMethod.POST) @ApiOperation(value = "获取商户详情") @ApiOperation(value = "获取商户详情【2.0】") public R<MgtShopInfoVo> getMgtShopInfo(@RequestBody MgtBaseGetDto mgtBaseGetDto) { MgtShopInfoVo mgtShopInfoVo = shopService.getMgtShopInfo(Long.valueOf(mgtBaseGetDto.getId())); return R.ok(mgtShopInfoVo); ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopInfoVo.java
@@ -140,6 +140,9 @@ @ApiModelProperty(value="关联用户id 多个用,隔开") private String relUserIds; @ApiModelProperty(value="默认登录账号-开启的用户id集合") private String relUserOpenIds; @ApiModelProperty(value="关联用户") private String relUsers; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopRelUserMapper.java
@@ -2,6 +2,9 @@ import com.ruoyi.shop.domain.pojo.shop.ShopRelUser; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -18,4 +21,6 @@ * @param shopId */ void deleteByShopId(Long shopId); void setDefaultCloseByUserIdList(@Param("list") List<Long> openIdList); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopRelUserServiceImpl.java
@@ -81,4 +81,9 @@ updateWrapper.eq(ShopRelUser::getDelFlag,0); this.update(updateWrapper); } @Override public void setDefaultCloseByUserIdList(List<Long> openIdList) { this.getBaseMapper().setDefaultCloseByUserIdList(openIdList); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -245,6 +245,16 @@ shopFileService.deleteByShopId(shop.getShopId()); shopRelTagService.deleteByShopId(shop.getShopId()); shopRelUserService.deleteByShopId(shop.getShopId()); //默认登录账号开关 开启后原默认账号开关关闭 List<Long> openIdList = Arrays.stream(mgtEditShopDto.getRelUserOpenIds().split(",")) .map(String::trim) .filter(StringUtils::isNotBlank) .map(Long::valueOf) .collect(Collectors.toList()); if ( !openIdList.isEmpty()) { shopRelUserService.setDefaultCloseByUserIdList(openIdList); } //清空归属 shopStaffService.clearShopStaffRelation(shop.getShopId()); if(!shop.getShopName().equals(mgtEditShopDto.getShopName())){ @@ -308,6 +318,7 @@ handleShopStaff(shop.getShopId(),belongSysUser); }*/ //商户关联人员 String[] openIds = mgtEditShopDto.getRelUserOpenIds().split(",");//开启默认登录账号 if(StringUtils.isNotBlank(relUserIds)){ shopStaffService.clearShopStaffRelation(shop.getShopId()); String[] relUserIdArray = relUserIds.split(","); @@ -324,6 +335,7 @@ shopRelUser.setUserName(sysUser.getNickName()); shopRelUser.setUserMobile(sysUser.getPhonenumber()); shopRelUser.setUserDeptId(sysUser.getDeptId()); shopRelUser.setIsDefault((openIds.length > 0 && Arrays.asList(openIds).contains(str)) ? 1 : 0); shopRelUserService.save(shopRelUser); handleShopStaff(shop.getShopId(),sysUser); } @@ -659,12 +671,17 @@ if(shopRelUserList!=null&&!shopRelUserList.isEmpty()){ StringJoiner shopUserJs = new StringJoiner(","); StringJoiner shopUserNameJs = new StringJoiner(","); StringJoiner relUserOpenIds = new StringJoiner(","); for(ShopRelUser shopRelUser : shopRelUserList){ shopUserJs.add(shopRelUser.getUserId().toString()); shopUserNameJs.add(shopRelUser.getUserName()); if (shopRelUser.getIsDefault()==1){ relUserOpenIds.add(shopRelUser.getUserId().toString()); } } mgtShopInfoVo.setRelUserIds(shopUserJs.toString()); mgtShopInfoVo.setRelUsers(shopUserNameJs.toString()); mgtShopInfoVo.setRelUserOpenIds(relUserOpenIds.toString()); } //商户图片 List<ShopFile> shopFileList = shopFileService.listShopFileByShopId(shopId); ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopRelUserService.java
@@ -40,4 +40,10 @@ * @param userId */ void deleteByUserId(Long userId); /** * 关闭原账号的默认登录门店 * @param openIdList */ void setDefaultCloseByUserIdList(List<Long> openIdList); } ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopRelUserMapper.xml
@@ -74,4 +74,15 @@ <update id="deleteByShopId"> UPDATE t_shop_rel_user SET del_flag = 1 WHERE shop_id = #{shopId} </update> <update id="setDefaultCloseByUserIdList"> update t_shop_rel_user set is_default = 0 where del_flag=0 and user_id in <foreach collection="list" item="id" open="(" separator="," close=")"> #{id} </foreach> </update> </mapper>