jiangqs
2023-06-30 08b2a4048452bef8d99ac5a700dd5aa6a4121699
商户端会员和平台活动
23个文件已修改
6个文件已添加
631 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerActivityController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerActivityPageVo.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberAddDto.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberBrowsePageDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberEditDto.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberBrowsePageVo.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/BrowseRecordMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/BrowseRecordServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/BrowseRecordService.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/BrowseRecordMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerActivityController.java
New file
@@ -0,0 +1,45 @@
package com.ruoyi.goods.controller.business;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.goods.domain.vo.MerActivityPageVo;
import com.ruoyi.goods.service.activity.ActivityService;
import com.ruoyi.system.api.domain.dto.MerPageDto;
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 javax.annotation.Resource;
import java.util.List;
/**
 * @ClassName MerActivityController
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/30 17:11
 * @Version 1.0
 */
@Api(value = "商户端活动相关接口", tags = "商户端活动相关接口", description = "商户端活动相关接口")
@RestController
@RequestMapping("/mer/activity")
public class MerActivityController {
    @Resource
    private ActivityService activityService;
    @RequestMapping(value = "/pagePlatformMerActivity", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取平台活动列表")
    public R<Page<MerActivityPageVo>> pagePlatformMerActivity(@RequestBody MerPageDto merPageDto) {
        Page<MerActivityPageVo> page = new Page<>();
        page.setSize(merPageDto.getPageSize());
        page.setCurrent(merPageDto.getPageNum());
        List<MerActivityPageVo> activityPageVoList = activityService.pagePlatformMerActivity(page,merPageDto);
        return R.ok(page.setRecords(activityPageVoList));
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerActivityPageVo.java
New file
@@ -0,0 +1,38 @@
package com.ruoyi.goods.domain.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @ClassName MerActivityPageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/30 17:15
 * @Version 1.0
 */
@Data
public class MerActivityPageVo {
    @ApiModelProperty(value = "活动id")
    private String activityId;
    @ApiModelProperty(value = "活动名称")
    private String activityName;
    @ApiModelProperty(value = "活动开始时间")
    private Date activityStartTime;
    @ApiModelProperty(value = "活动结束时间")
    private Date activityEndTime;
    @ApiModelProperty(value = "活动状态")
    private String activityStatus;
    @ApiModelProperty(value = "宣传海报")
    private String propagandaPoster;
    @ApiModelProperty(value = "商品数量")
    private Integer goodsNum;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java
@@ -37,7 +37,7 @@
    @ApiModelProperty(value = "适用店铺")
    private String shopFlag;
    @ApiModelProperty(value = "活动状态0未开始1进行中2已结束")
    @ApiModelProperty(value = "活动状态")
    private String activityStatus;
    @ApiModelProperty(value = "推荐标记")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java
@@ -5,8 +5,10 @@
import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto;
import com.ruoyi.goods.domain.pojo.activity.Activity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.vo.MerActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -39,4 +41,15 @@
     * @date 2023/6/24 16:58
     */
    List<MgtActivityRecordPageVo> pageMgtActivityRecord(Page page, @Param("param")MgtActivityRecordPageDto mgtActivityRecordPageDto);
    /**
     * @description  分页获取平台活动列表
     * @author  jqs
     * @date    2023/6/30 17:33
     * @param page
     * @param merPageDto
     * @return  List<MerActivityPageVo>
     */
    List<MerActivityPageVo> pagePlatformMerActivity(Page page, @Param("param")MerPageDto merPageDto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java
@@ -6,9 +6,11 @@
import com.ruoyi.goods.domain.dto.MgtActivityPageDto;
import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto;
import com.ruoyi.goods.domain.pojo.activity.Activity;
import com.ruoyi.goods.domain.vo.MerActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityGetVo;
import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import java.util.List;
@@ -66,4 +68,14 @@
    * @date 2023/6/24 16:58
    */
    List<MgtActivityRecordPageVo> pageMgtActivityRecord(Page page,MgtActivityRecordPageDto mgtActivityRecordPageDto);
    /**
     * @description  分页获取平台活动列表
     * @author  jqs
     * @date    2023/6/30 17:33
     * @param page
     * @param merPageDto
     * @return  List<MerActivityPageVo>
     */
    List<MerActivityPageVo> pagePlatformMerActivity(Page page, MerPageDto merPageDto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -11,16 +11,14 @@
import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto;
import com.ruoyi.goods.domain.pojo.activity.Activity;
import com.ruoyi.goods.domain.pojo.activity.ActivityTotal;
import com.ruoyi.goods.domain.vo.MgtActivityGetVo;
import com.ruoyi.goods.domain.vo.MgtActivityGoodsListVo;
import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import com.ruoyi.goods.domain.vo.*;
import com.ruoyi.goods.mapper.activity.ActivityMapper;
import com.ruoyi.goods.service.activity.ActivityGoodsService;
import com.ruoyi.goods.service.activity.ActivityService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.goods.service.activity.ActivityTotalService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
@@ -254,4 +252,18 @@
        }
        return activityRecordPageVoList;
    }
    /**
     * @description  分页获取平台活动列表
     * @author  jqs
     * @date    2023/6/30 17:33
     * @param page
     * @param merPageDto
     * @return  List<MerActivityPageVo>
     */
    @Override
    public List<MerActivityPageVo> pagePlatformMerActivity(Page page, MerPageDto merPageDto){
        List<MerActivityPageVo> activityPageVoList = activityMapper.pagePlatformMerActivity(page, merPageDto);
        return activityPageVoList;
    }
}
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -74,4 +74,23 @@
        </if>
    </select>
    <select id="pagePlatformMerActivity" resultType="com.ruoyi.goods.domain.vo.MerActivityPageVo">
        SELECT
        ta.activity_id activityId,
        ta.activity_name activityName,
        ta.activity_start_time activityStartTime,
        ta.activity_end_time activityEndTime,
        CASE ta.activity_status
        WHEN 0 THEN '未开始'
        WHEN 1 THEN '进行中'
        WHEN 2 THEN '已结束'
        END activityStatus,
        ta.propaganda_poster propagandaPoster,
        COUNT(ag.activity_id) goodsNum
        FROM t_activity ta
        LEFT JOIN t_activity_goods ag ON ta.activity_id = ag.activity_id
        WHERE ta.del_flag = 0 AND FIND_IN_SET(#{param.shopId}, ta.applicable_shop) &gt; 0
        group by ta.activity_id
        ORDER BY ta.activity_status ASC,ta.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerCouponController.java
New file
@@ -0,0 +1,50 @@
package com.ruoyi.member.controller.business;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.vo.MerCouponPageVo;
import com.ruoyi.member.service.coupon.CouponService;
import com.ruoyi.system.api.domain.dto.MerPageDto;
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 javax.annotation.Resource;
import java.util.List;
/**
 * @ClassName MerCouponController
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/30 16:03
 * @Version 1.0
 */
@Api(value = "商户端优惠券相关接口", tags = "商户端优惠券相关接口", description = "商户端优惠券相关接口")
@RestController
@RequestMapping("/mer/coupon")
public class MerCouponController {
    @Resource
    private CouponService couponService;
    @RequestMapping(value = "/pagePlatformMerCoupon", method = RequestMethod.POST)
    @ApiOperation(value = "平台分页获取优惠券列表")
    public R<Page<MerCouponPageVo>> pagePlatformMerCoupon(@RequestBody MerPageDto merPageDto) {
        Long userId = SecurityUtils.getUserId();
        merPageDto.setUserId(userId);
        Page<MerCouponPageVo> page = new Page<>();
        page.setSize(merPageDto.getPageSize());
        page.setCurrent(merPageDto.getPageNum());
        List<MerCouponPageVo> couponPageVoList = couponService.pagePlatformMerCoupon(page,merPageDto);
        return R.ok(page.setRecords(couponPageVoList));
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/business/MerMemberController.java
@@ -5,6 +5,7 @@
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.service.member.BrowseRecordService;
import com.ruoyi.member.service.member.MemberArchiveFieldsService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.domain.dto.MerBaseGetDto;
@@ -35,6 +36,10 @@
    @Resource
    private MemberArchiveFieldsService memberArchiveFieldsService;
    @Resource
    private BrowseRecordService browseRecordService;
    @RequestMapping(value = "/pageMerCashMember", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取收银搜索会员列表")
@@ -125,5 +130,15 @@
        return R.ok();
    }
    @RequestMapping(value = "/pageMerMemberBrowse", method = RequestMethod.POST)
    @ApiOperation(value = "商户获取用户浏览记录")
    public R<Page<MerMemberBrowsePageVo>> pageMerMemberBrowse(@RequestBody MerMemberBrowsePageDto merMemberBrowsePageDto) {
        Long userId = SecurityUtils.getUserId();
        merMemberBrowsePageDto.setUserId(userId);
        Page<MerMemberBrowsePageVo> page = new Page<>();
        page.setSize(merMemberBrowsePageDto.getPageSize());
        page.setCurrent(merMemberBrowsePageDto.getPageNum());
        List<MerMemberBrowsePageVo> memberBrowsePageVoList = browseRecordService.pageMerMemberBrowse(page,merMemberBrowsePageDto);
        return R.ok(page.setRecords(memberBrowsePageVoList));
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberAddDto.java
@@ -1,10 +1,10 @@
package com.ruoyi.member.domain.dto;
import com.ruoyi.member.domain.vo.MemberArchiveVo;
import com.ruoyi.system.api.domain.dto.MerBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@@ -42,4 +42,7 @@
    @ApiModelProperty(value = "调理问题")
    private List<String> memberNurse;
    @ApiModelProperty(value = "用户档案")
    private List<MemberArchiveVo> achiveList;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberBrowsePageDto.java
New file
@@ -0,0 +1,20 @@
package com.ruoyi.member.domain.dto;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MerMemberBrowsePageDto
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/30 15:23
 * @Version 1.0
 */
@Data
public class MerMemberBrowsePageDto extends MerPageDto {
    @ApiModelProperty(value = "会员用户id")
    private Long memberUserId;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MerMemberEditDto.java
@@ -1,10 +1,10 @@
package com.ruoyi.member.domain.dto;
import com.ruoyi.member.domain.vo.MemberArchiveVo;
import com.ruoyi.system.api.domain.dto.MerBaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
@@ -45,5 +45,7 @@
    @ApiModelProperty(value = "调理问题")
    private List<String> memberNurse;
    @ApiModelProperty(value = "用户档案")
    private List<MemberArchiveVo> achiveList;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerCouponPageVo.java
New file
@@ -0,0 +1,71 @@
package com.ruoyi.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @description: TODO
 * @author jqs
 * @date   2023/6/30 16:52
 * @version 1.0
 */
@Data
public class MerCouponPageVo {
    @ApiModelProperty(value = "优惠券id")
    private String couponId;
    @ApiModelProperty("优惠券名称")
    private String couponName;
    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
    private Integer couponType;
    @ApiModelProperty(value = "使用限制")
    private String useLimit;
    @ApiModelProperty(value = "有效期类型1.时间段2.领取之日起",hidden = true)
    private Integer validTimeType;
    @ApiModelProperty(value = "有效开始时间",hidden = true)
    private Date validStartTime;
    @ApiModelProperty(value = "有效截止时间",hidden = true)
    private Date validEndTime;
    @ApiModelProperty(value = "有效期",hidden = true)
    private Integer validDay;
    @ApiModelProperty(value = "有效期")
    private String validTime;
    @ApiModelProperty(value = "发放张数")
    private Integer sendCount;
    @ApiModelProperty(value = "使用范围")
    private String useScope;
    @ApiModelProperty(value = "发送方式")
    private String sendType;
    @ApiModelProperty(value = "发送对象")
    private String sendTarget;
    @ApiModelProperty(value = "门槛金额",hidden = true)
    private BigDecimal moneyThreshold;
    @ApiModelProperty(value = "折扣金额",hidden = true)
    private BigDecimal discountMoney;
    @ApiModelProperty(value = "折扣百分比",hidden = true)
    private BigDecimal discountPercent;
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberBrowsePageVo.java
New file
@@ -0,0 +1,32 @@
package com.ruoyi.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @ClassName MerMemberBrowsePageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/6/30 15:20
 * @Version 1.0
 */
@Data
public class MerMemberBrowsePageVo {
    @ApiModelProperty(value = "浏览类型1鸿瑞学堂2营销活动3商城商品4关于鸿瑞堂5申请加盟")
    private String browseType;
    @ApiModelProperty(value = "浏览名称")
    private String browseName;
    @ApiModelProperty(value = "停留时长")
    private String browseTime;
    @ApiModelProperty(value = "浏览时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
@@ -6,9 +6,11 @@
import com.ruoyi.member.domain.dto.MgtCouponListDto;
import com.ruoyi.member.domain.dto.MgtCouponPageDto;
import com.ruoyi.member.domain.pojo.coupon.Coupon;
import com.ruoyi.member.domain.vo.MerCouponPageVo;
import com.ruoyi.member.domain.vo.MgtCouponAuditPageVo;
import com.ruoyi.member.domain.vo.MgtCouponPageVo;
import com.ruoyi.member.domain.vo.MgtCouponSimpleListVo;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -62,4 +64,15 @@
     * @return  void
     */
    void updateCouponTotal( @Param("couponId")String couponId, @Param("sendTotal")Integer sendTotal, @Param("sendPerson")Integer sendPerson);
    /**
     * @description  平台获取优惠券列表
     * @author  jqs
     * @date    2023/6/30 16:53
     * @param page
     * @param merPageDto
     * @return  List<MerCouponPageVo>
     */
    List<MerCouponPageVo> pagePlatformMerCoupon(Page page, MerPageDto merPageDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/BrowseRecordMapper.java
@@ -1,9 +1,11 @@
package com.ruoyi.member.mapper.member;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.member.domain.dto.MerMemberBrowsePageDto;
import com.ruoyi.member.domain.dto.MgtMemberBrowsePageDto;
import com.ruoyi.member.domain.pojo.member.BrowseRecord;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.member.domain.vo.MerMemberBrowsePageVo;
import com.ruoyi.member.domain.vo.MgtMemberBrowsePageVo;
import org.apache.ibatis.annotations.Param;
@@ -28,4 +30,14 @@
     * @return
     */
    List<MgtMemberBrowsePageVo> pageMgtMemberBrowse(Page page, @Param("param")MgtMemberBrowsePageDto mgtMemberBrowsePageDto);
    /**
     * @description  商户获取用户浏览记录
     * @author  jqs
     * @date    2023/6/30 15:24
     * @param page
     * @param merMemberBrowsePageDto
     * @return  List<MerMemberBrowsePageVo>
     */
    List<MerMemberBrowsePageVo> pageMerMemberBrowse(Page page, MerMemberBrowsePageDto merMemberBrowsePageDto);
}
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.MerPageDto;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import java.util.List;
@@ -102,4 +103,14 @@
     * @return  void
     */
    void auditMgtCoupon(MgtCouponAuditDto mgtCouponAuditDto);
    /**
     * @description  平台获取优惠券列表
     * @author  jqs
     * @date    2023/6/30 16:53
     * @param page
     * @param merPageDto
     * @return  List<MerCouponPageVo>
     */
    List<MerCouponPageVo> pagePlatformMerCoupon(Page page, MerPageDto merPageDto);
}
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.MerPageDto;
import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.coupon.CouponMapper;
@@ -570,4 +571,62 @@
            sendCoupon(coupon, userIdList);
        }
    }
    /**
     * @description  平台获取优惠券列表
     * @author  jqs
     * @date    2023/6/30 16:53
     * @param page
     * @param merPageDto
     * @return  List<MerCouponPageVo>
     */
    @Override
    public List<MerCouponPageVo> pagePlatformMerCoupon(Page page, MerPageDto merPageDto){
        List<MerCouponPageVo> couponPageVoList = couponMapper.pagePlatformMerCoupon(page, merPageDto);
        //处理使用限制和有效期
        if(couponPageVoList!=null&&!couponPageVoList.isEmpty()){
            Integer couponType;
            Integer validTimeType;
            Date validStartTime;
            Date validEndTime;
            Integer validDay;
            String validTime = "";
            BigDecimal moneyThreshold;
            BigDecimal discountMoney;
            BigDecimal discountPercent;
            String useLimit = "";
            for(MerCouponPageVo merCouponPageVo : couponPageVoList){
                //处理使用限制
                couponType = merCouponPageVo.getCouponType();
                switch (couponType){
                    case 1:
                        moneyThreshold = merCouponPageVo.getMoneyThreshold();
                        discountMoney = merCouponPageVo.getDiscountMoney();
                        useLimit = "满" + moneyThreshold.toString() + "减" + discountMoney.toString() + "元";
                        break;
                    case 2:
                        break;
                    case 3:
                        break;
                    case 4:
                        break;
                    default:
                        break;
                }
                merCouponPageVo.setUseLimit(useLimit);
                //处理有效期
                validTimeType = merCouponPageVo.getValidTimeType();
                if(validTimeType==1){
                    validStartTime = merCouponPageVo.getValidStartTime();
                    validEndTime = merCouponPageVo.getValidEndTime();
                    validTime = DateUtils.dateTime(validStartTime) + '-' +  DateUtils.dateTime(validEndTime);
                }else if(validTimeType==2){
                    validDay = merCouponPageVo.getValidDay();
                    validTime = "领取之日起" + validDay.toString() + "天";
                }
                merCouponPageVo.setValidTime(validTime);
            }
        }
        return couponPageVoList;
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/BrowseRecordServiceImpl.java
@@ -1,8 +1,10 @@
package com.ruoyi.member.service.impl.member;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.member.domain.dto.MerMemberBrowsePageDto;
import com.ruoyi.member.domain.dto.MgtMemberBrowsePageDto;
import com.ruoyi.member.domain.pojo.member.BrowseRecord;
import com.ruoyi.member.domain.vo.MerMemberBrowsePageVo;
import com.ruoyi.member.domain.vo.MgtMemberBrowsePageVo;
import com.ruoyi.member.mapper.member.BrowseRecordMapper;
import com.ruoyi.member.service.member.BrowseRecordService;
@@ -35,6 +37,18 @@
    @Override
    public List<MgtMemberBrowsePageVo> pageMgtMemberBrowse(Page page, MgtMemberBrowsePageDto mgtMemberBrowsePageDto){
        return browseRecordMapper.pageMgtMemberBrowse(page, mgtMemberBrowsePageDto);
    }
    /**
     * @description  商户获取用户浏览记录
     * @author  jqs
     * @date    2023/6/30 15:24
     * @param page
     * @param merMemberBrowsePageDto
     * @return  List<MerMemberBrowsePageVo>
     */
    @Override
    public List<MerMemberBrowsePageVo> pageMerMemberBrowse(Page page, MerMemberBrowsePageDto merMemberBrowsePageDto){
        return browseRecordMapper.pageMerMemberBrowse(page, merMemberBrowsePageDto);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.member.service.impl.member;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.ruoyi.member.domain.pojo.member.MemberArchive;
import com.ruoyi.member.domain.vo.MemberArchiveVo;
import com.ruoyi.member.mapper.member.MemberArchiveMapper;
@@ -43,4 +44,20 @@
    public List<MemberArchiveVo> listMerVoByUserId(Long userId){
        return memberArchiveMapper.listMerVoByUserId(userId);
    }
    /**
     * @description  删除用户档案
     * @author  jqs
     * @date    2023/6/30 15:11
     * @param userId
     * @return  void
     */
    @Override
    public void deleteByUserId(Long userId){
        LambdaUpdateWrapper<MemberArchive> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.set(MemberArchive::getDelFlag,1);
        updateWrapper.eq(MemberArchive::getDelFlag,0);
        updateWrapper.eq(MemberArchive::getUserId,userId);
        this.update(updateWrapper);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -17,6 +17,7 @@
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.pojo.member.IntegralRecord;
import com.ruoyi.member.domain.pojo.member.MemberArchive;
import com.ruoyi.member.domain.pojo.member.MemberTotal;
import com.ruoyi.member.domain.vo.*;
import com.ruoyi.member.mapper.member.MemberMapper;
@@ -581,6 +582,20 @@
            // Save the member and initialize member total
            this.saveOrUpdate(member);
            initMemberTotal(memberId);
            List<MemberArchiveVo> achiveList = merMemberAddDto.getAchiveList();
            if(achiveList!=null&&!achiveList.isEmpty()){
                SysUser finalSysUser = sysUser;
                List<MemberArchive> memberArchiveList = achiveList.stream().map(memberArchiveVo -> {
                    MemberArchive memberArchive = new MemberArchive();
                    memberArchive.setDelFlag(0);
                    memberArchive.setUserId(finalSysUser.getUserId());
                    memberArchive.setFieldId(memberArchiveVo.getFieldId());
                    memberArchive.setFieldValue(memberArchiveVo.getFieldValue());
                    return memberArchive;
                    }
                ).collect(Collectors.toList());
                memberArchiveService.saveBatch(memberArchiveList);
            }
        }
    }
@@ -591,14 +606,16 @@
     */
    @Override
    public void editMerMember(MerMemberEditDto merMemberEditDto) {
    // 获取用户信息
        Member member = this.getByUserId(merMemberEditDto.getEditUserId());
     // 检查手机号是否已经存在
        if (!member.getMobile().equals(merMemberEditDto.getPhonenumber())) {
            Member memberOld = getByMobile(merMemberEditDto.getPhonenumber());
            if (memberOld != null) {
                throw new ServiceException(AppErrorConstant.MOBILE_DOUBLE);
            }
        }
     // 更新用户信息
        member.setRealName(merMemberEditDto.getNickName());
        member.setMobile(merMemberEditDto.getPhonenumber());
        member.setGender(merMemberEditDto.getGender());
@@ -608,12 +625,29 @@
        member.setBirthday(merMemberEditDto.getBirthday());
        member.setUpdateUserId(merMemberEditDto.getUserId());
        member.setUpdateTime(new Date());
        log.info("member-----------------" + member.toString());
        this.saveOrUpdate(member);
     // 更新用户手机号
        SysUser sysUser = new SysUser();
        sysUser.setUserId(merMemberEditDto.getEditUserId());
        sysUser.setPhonenumber(merMemberEditDto.getPhonenumber());
        sysUserService.updateUserMobile(sysUser);
     // 删除用户的档案信息
    memberArchiveService.deleteByUserId(sysUser.getUserId());
     // 添加用户的档案信息
    List<MemberArchiveVo> achiveList = merMemberEditDto.getAchiveList();
    if (achiveList != null && !achiveList.isEmpty()) {
        // 构造用户档案列表
        List<MemberArchive> memberArchiveList = achiveList.stream().map(memberArchiveVo -> {
            MemberArchive memberArchive = new MemberArchive();
            memberArchive.setDelFlag(0);
            memberArchive.setUserId(sysUser.getUserId());
            memberArchive.setFieldId(memberArchiveVo.getFieldId());
            memberArchive.setFieldValue(memberArchiveVo.getFieldValue());
            return memberArchive;
        }).collect(Collectors.toList());
         // 批量保存用户档案信息
        memberArchiveService.saveBatch(memberArchiveList);
    }
    }
    /**
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/BrowseRecordService.java
@@ -1,9 +1,11 @@
package com.ruoyi.member.service.member;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.member.domain.dto.MerMemberBrowsePageDto;
import com.ruoyi.member.domain.dto.MgtMemberBrowsePageDto;
import com.ruoyi.member.domain.pojo.member.BrowseRecord;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.member.domain.vo.MerMemberBrowsePageVo;
import com.ruoyi.member.domain.vo.MgtMemberBrowsePageVo;
import java.util.List;
@@ -25,4 +27,14 @@
     * @return
     */
    List<MgtMemberBrowsePageVo> pageMgtMemberBrowse(Page page, MgtMemberBrowsePageDto mgtMemberBrowsePageDto);
    /**
     * @description  商户获取用户浏览记录
     * @author  jqs
     * @date    2023/6/30 15:24
     * @param page
     * @param merMemberBrowsePageDto
     * @return  List<MerMemberBrowsePageVo>
     */
    List<MerMemberBrowsePageVo> pageMerMemberBrowse(Page page, MerMemberBrowsePageDto merMemberBrowsePageDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java
@@ -31,4 +31,13 @@
     * @return  List<MemberArchiveVo>
     */
    List<MemberArchiveVo> listMerVoByUserId(Long userId);
    /**
     * @description  删除用户档案
     * @author  jqs
     * @date    2023/6/30 15:11
     * @param userId
     * @return  void
     */
    void deleteByUserId(Long userId);
}
ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -258,4 +258,42 @@
        UPDATE t_coupon_total set send_count = send_count + #{sendTotal}, send_user_count = send_user_count + sendPerson WHERE coupon_id = #{couponId}
    </update>
    <select id="pagePlatformMerCoupon" resultType="com.ruoyi.member.domain.vo.MgtCouponPageVo">
        SELECT
        tc.coupon_id  couponId,
        tc.coupon_name  couponName,
        CASE tc.coupon_type
        WHEN 1 THEN '满减'
        WHEN 2 THEN '折扣'
        WHEN 3 THEN '代金'
        WHEN 4 THEN '商品'
        END couponType,
        tc.valid_time_type  validTimeType,
        tc.valid_start_time  validStartTime,
        tc.valid_end_time  validEndTime,
        tc.valid_day  validDay,
        tct.send_count  sendCount,
        CASE tc.use_scope
        WHEN 1 THEN '全部'
        WHEN 2 THEN '指定商品'
        END useScope,
        CASE tc.send_type
        WHEN 1 THEN '手动获取'
        ELSE '指定发放'
        END sendType,
        CASE tc.send_type
        WHEN 2 THEN '全部用户'
        WHEN 3 THEN '会员用户'
        WHEN 4 THEN '非会员用户'
        WHEN 5 THEN '自定义'
        ELSE ''
        END sendTarget,
        tc.money_threshold  moneyThreshold,
        tc.discount_money  discountMoney,
        tc.discount_percent  discountPercent,
        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 AND tc.coupon_from = 1
    </select>
</mapper>
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/BrowseRecordMapper.xml
@@ -28,5 +28,20 @@
        ORDER BY tbr.create_time DESC
    </select>
    <select id="pageMerMemberBrowse" resultType="com.ruoyi.member.domain.vo.MerMemberBrowsePageVo">
        SELECT
        CASE browse_type
        WHEN 1 THEN "鸿瑞学堂"
        WHEN 2 THEN "营销活动"
        WHEN 3 THEN "商城商品"
        WHEN 4 THEN "关于鸿瑞堂"
        WHEN 5 THEN "申请加盟"
        END browseType,
        tbr.browse_name browseName,
        tbr.browse_time browseTime,
        tbr.create_time createTime
        FROM t_browse_record tbr
        WHERE tbr.del_flag = 0 AND tbr.user_id = #{param.memberUserId}
        ORDER BY tbr.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -119,13 +119,11 @@
    @RequestMapping(value = "/pageMerOrder", method = RequestMethod.POST)
    @ApiOperation(value = "获取商户端订单列表")
    public R<Page<MerOrderPageVo>> pageMerOrder(@RequestBody MerOrderPageDto merOrderPageDto) {
        log.info("merOrderPageDto1----"+merOrderPageDto.toString());
        Long userId = SecurityUtils.getUserId();
        merOrderPageDto.setUserId(userId);
        Page<MerOrderPageVo> page = new Page<>();
        page.setSize(merOrderPageDto.getPageSize());
        page.setCurrent(merOrderPageDto.getPageNum());
        log.info("merOrderPageDto2----"+merOrderPageDto.toString());
        List<MerOrderPageVo> merOrderPageVoList = orderService.pageMerOrder(page,merOrderPageDto);
        return R.ok(page.setRecords(merOrderPageVoList));
    }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1053,21 +1053,10 @@
            Integer orderFrom;
            String orderFromDesc;
            BigDecimal zeroBig = new BigDecimal("0.00");
            StringJoiner userIdSj = new StringJoiner(",");
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                userId = merOrderPageVo.getUserId();
                member = remoteMemberService.getMember(userId).getData();
                if (member != null) {
                    if (StringUtils.isNotBlank(member.getNickName())) {
                        merOrderPageVo.setUserName(member.getNickName());
                    }
                    merOrderPageVo.setUserMobile(member.getMobile());
                } else {
                    SysUser sysUser = remoteUserService.getSysUser(userId).getData();
                    if (StringUtils.isNotBlank(sysUser.getNickName())) {
                        merOrderPageVo.setUserName(sysUser.getNickName());
                    }
                    merOrderPageVo.setUserMobile(sysUser.getPhonenumber());
                }
                userIdSj.add(userId.toString());
                orderFrom = merOrderPageVo.getOrderFrom();
                if (orderFrom != null) {
                    if (orderFrom == 1) {
@@ -1084,6 +1073,15 @@
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
            }
            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto.setIds(userIdSj.toString());
            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
            Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getNickName());
                merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile());
            }
        }
        return merOrderPageVoList;
    }
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -829,13 +829,13 @@
    <select id="getTotalDataTotal" resultType="com.ruoyi.order.domain.vo.MgtTotalDataTotalVo">
        SELECT
            COUNT(DISTINCT CASE WHEN goods_type_1_count > 0 AND goods_type_3_count = 0 THEN user_id ELSE NULL END) AS onlyCyclePerson,
            COUNT(DISTINCT CASE WHEN goods_type_1_count = 0 AND goods_type_3_count > 0 THEN user_id ELSE NULL END) AS onlyExperiencePerson,
            COUNT(DISTINCT CASE WHEN goods_type_1_count > 0 AND goods_type_3_count > 0 THEN user_id ELSE NULL END) AS experienceCyclePerson,
            COUNT(DISTINCT CASE WHEN goods_type_1_count > 0 THEN user_id ELSE NULL END) AS cyclePerson,
            COUNT(DISTINCT CASE WHEN goods_type_4_count > 0 THEN user_id ELSE NULL END) AS goodsPerson,
            COUNT(DISTINCT CASE WHEN goods_type_1_count &gt; 0 AND goods_type_3_count = 0 THEN user_id ELSE NULL END) AS onlyCyclePerson,
            COUNT(DISTINCT CASE WHEN goods_type_1_count = 0 AND goods_type_3_count &gt; 0 THEN user_id ELSE NULL END) AS onlyExperiencePerson,
            COUNT(DISTINCT CASE WHEN goods_type_1_count &gt; 0 AND goods_type_3_count &gt; 0 THEN user_id ELSE NULL END) AS experienceCyclePerson,
            COUNT(DISTINCT CASE WHEN goods_type_1_count &gt; 0 THEN user_id ELSE NULL END) AS cyclePerson,
            COUNT(DISTINCT CASE WHEN goods_type_4_count &gt; 0 THEN user_id ELSE NULL END) AS goodsPerson,
            SUM(goods_type_4_count) AS goodsNumber,
            COUNT(DISTINCT CASE WHEN goods_type_1_count > 0 AND goods_type_2_count > 0 AND goods_type_3_count > 0 AND goods_type_4_count > 0 THEN user_id ELSE NULL END) AS orderPerson
            COUNT(DISTINCT CASE WHEN goods_type_1_count &gt; 0 AND goods_type_2_count &gt; 0 AND goods_type_3_count &gt; 0 AND goods_type_4_count &gt; 0 THEN user_id ELSE NULL END) AS orderPerson
        FROM (
                 SELECT
                     o.user_id,
ruoyi-modules/ruoyi-shop/pom.xml
@@ -114,11 +114,6 @@
            <version>0.2.8</version>
        </dependency>
        <dependency>
            <groupId>com.github.javen205</groupId>
            <artifactId>IJPay-WxPay</artifactId>
            <version>2.9.7-17</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-client</artifactId>
            <version>4.0.2</version>