ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MgtUserIdByKeywordDto.java
New file @@ -0,0 +1,29 @@ package com.ruoyi.system.api.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtUserIdByKeyword * @Description TODO * @Author jqs * @Date 2023/6/16 12:38 * @Version 1.0 */ @Data public class MgtUserIdByKeywordDto { @ApiModelProperty(value = "关键词") private String keyword; @ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "用户姓名") private String userName; @ApiModelProperty(value = "用户电话") private String userMobile; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtSimpleMemberVo.java
New file @@ -0,0 +1,27 @@ package com.ruoyi.system.api.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtSimpleMemberVo * @Description TODO * @Author jqs * @Date 2023/6/16 11:03 * @Version 1.0 */ @Data public class MgtSimpleMemberVo { @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "用户姓名") private String userName; @ApiModelProperty(value = "用户电话") private String userMobile; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtUserIdByKeywordVo.java
New file @@ -0,0 +1,18 @@ package com.ruoyi.system.api.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtUserIdByKeywordVo * @Description TODO * @Author jqs * @Date 2023/6/16 12:38 * @Version 1.0 */ @Data public class MgtUserIdByKeywordVo { @ApiModelProperty(value = "用户ids") private String userIds; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -2,7 +2,10 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo; import com.ruoyi.system.api.service.RemoteMemberService; import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto; @@ -84,6 +87,16 @@ public R deleteMemberSuggestTag(String suggestTag) { return R.fail("删除用户建议标签失败:" + throwable.getMessage()); } @Override public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(String userIds) { return R.fail("获取用户列表失败:" + throwable.getMessage()); } @Override public R<MgtUserIdByKeywordVo> getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto) { return R.fail("获取用户列表失败:" + throwable.getMessage()); } }; } } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -5,9 +5,12 @@ import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo; import com.ruoyi.system.api.factory.RemoteMemberFallbackFactory; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; @@ -98,4 +101,24 @@ */ @PostMapping("/member/deleteMemberSuggestTag") public R deleteMemberSuggestTag(@RequestBody String suggestTag); /** * @description 通过ids获取用户简易返回 * @author jqs * @date 2023/6/16 11:05 * @param userIds * @return R<List<MgtSimpleMemberVo>> */ @PostMapping("/member/listSimpleVoByIds") public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(@RequestBody String userIds); /** * @description * @author jqs * @date 2023/6/16 12:47 * @param mgtUserIdByKeywordDto * @return R<MgtUserIdByKeywordVo> */ @PostMapping("/member/getUserIdByKeyword") public R<MgtUserIdByKeywordVo> getUserIdByKeyword(@RequestBody MgtUserIdByKeywordDto mgtUserIdByKeywordDto); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -8,9 +8,12 @@ import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; import io.swagger.annotations.ApiOperation; @@ -165,4 +168,34 @@ memberSuggestService.deleteMemberSuggestTag(suggestTag); return R.ok(); } /** * @description 通过ids获取用户简易返回 * @author jqs * @date 2023/6/16 11:05 * @param userIds * @return R<List<MgtSimpleMemberVo>> */ @PostMapping("/listSimpleVoByIds") public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(@RequestBody String userIds) { List<MgtSimpleMemberVo> simpleMemberVoList = memberService.listSimpleVoByIds(userIds); return R.ok(simpleMemberVoList); } /** * @description * @author jqs * @date 2023/6/16 12:47 * @param mgtUserIdByKeywordDto * @return R<MgtUserIdByKeywordVo> */ @PostMapping("/getUserIdByKeyword") public R<MgtUserIdByKeywordVo> getUserIdByKeyword(@RequestBody MgtUserIdByKeywordDto mgtUserIdByKeywordDto) { MgtUserIdByKeywordVo mgtUserIdByKeywordVo = memberService.getUserIdByKeyword(mgtUserIdByKeywordDto); return R.ok(mgtUserIdByKeywordVo); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberBrowsePageDto.java
@@ -4,8 +4,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * @author jqs34 * @ClassName MgtMemberIntegralPageDto @@ -23,6 +21,10 @@ @ApiModelProperty(value = "浏览类型 1鸿瑞学堂2营销活动3商城商品4关于鸿瑞堂5申请加盟") private Integer browseType; @ApiModelProperty(value = "创建开始时间") private String createStartTime; @ApiModelProperty(value = "创建结束时间") private String createEndTime; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java
@@ -1,6 +1,5 @@ package com.ruoyi.member.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -27,5 +26,6 @@ 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/domain/vo/MgtMemberPageVo.java
@@ -1,7 +1,5 @@ package com.ruoyi.member.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -80,4 +78,7 @@ @ApiModelProperty(value = "消费总金额") private BigDecimal totalPayMoney; @ApiModelProperty(value = "活动参与次数") private Integer activityTotal; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberMapper.java
@@ -8,7 +8,9 @@ import com.ruoyi.member.domain.vo.MerCashMemberPageVo; import com.ruoyi.member.domain.vo.MerMemberPageVo; import com.ruoyi.member.domain.vo.MgtMemberPageVo; import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -92,6 +94,24 @@ * @return List<Long> */ List<Long> listIdBySendType(@Param("sendType")Integer sendType); /** * @description 通过ids获取用户简易返回 * @author jqs * @date 2023/6/16 11:06 * @param userIds * @return List<MgtSimpleMemberVo> */ List<MgtSimpleMemberVo> listSimpleVoByIds(@Param("userIds")String userIds); /** * @description * @author jqs * @date 2023/6/16 12:42 * @param mgtUserIdByKeywordDto * @return MgtUserIdByKeywordVo */ List<Long> getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto); } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -25,17 +25,13 @@ import com.ruoyi.member.util.HttpUtils; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.constant.SecurityConstant; import com.ruoyi.system.api.domain.dto.AppEditUserDto; import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.api.domain.poji.config.SysTag; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; import com.ruoyi.system.api.service.RemoteConfigService; @@ -661,14 +657,16 @@ public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){ List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); Date nowDay = new Date(); if(merMemberPageDto.getActivenessId()!=null){ //处理活跃度筛选 activenessList.stream() .filter(activeness -> activeness.getActivenessId().equals(merMemberPageDto.getActivenessId())) .findFirst() .ifPresent(activeness -> { merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay, activeness.getEndDay())); merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay, activeness.getStartDay())); merMemberPageDto.setActStartDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getEndDay()))); merMemberPageDto.setActEndDate(DateUtils.parseDateToStr("yyyy-MM-dd",DateUtils.addDays(nowDay, activeness.getStartDay()))); }); } //处理标签为正则表达 if(StringUtils.isNotBlank(merMemberPageDto.getMemberTags())){ merMemberPageDto.setMemberTags(merMemberPageDto.getMemberTags().replace(",","|")); @@ -899,4 +897,36 @@ //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 return memberMapper.listIdBySendType(sendType); } /** * @description 通过ids获取用户简易返回 * @author jqs * @date 2023/6/16 11:06 * @param userIds * @return List<MgtSimpleMemberVo> */ @Override public List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds){ return memberMapper.listSimpleVoByIds(userIds); } /** * @description * @author jqs * @date 2023/6/16 12:41 * @param mgtUserIdByKeywordDto * @return MgtUserIdByKeywordVo */ @Override public MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto){ MgtUserIdByKeywordVo mgtUserIdByKeywordVo = new MgtUserIdByKeywordVo(); List<Long> userIdList = memberMapper.getUserIdByKeyword(mgtUserIdByKeywordDto); if(userIdList!=null&&!userIdList.isEmpty()){ String userIdStr = userIdList.stream() .map(Object::toString) .collect(Collectors.joining(",")); mgtUserIdByKeywordVo.setUserIds(userIdStr); } return mgtUserIdByKeywordVo; } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -1,17 +1,16 @@ package com.ruoyi.member.service.member; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.member.domain.dto.*; import com.ruoyi.member.domain.vo.*; import com.ruoyi.system.api.domain.dto.AppEditUserDto; import com.ruoyi.system.api.domain.dto.AppMemberBindingDto; import com.ruoyi.system.api.domain.dto.AppMemberGoodsTypeDto; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo; import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -197,4 +196,22 @@ * @return List<Long> */ List<Long> listIdBySendType(Integer sendType); /** * @description 通过ids获取用户简易返回 * @author jqs * @date 2023/6/16 11:06 * @param userIds * @return List<MgtSimpleMemberVo> */ List<MgtSimpleMemberVo> listSimpleVoByIds(String userIds); /** * @description * @author jqs * @date 2023/6/16 12:42 * @param mgtUserIdByKeywordDto * @return MgtUserIdByKeywordVo */ MgtUserIdByKeywordVo getUserIdByKeyword(MgtUserIdByKeywordDto mgtUserIdByKeywordDto); } ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/BrowseRecordMapper.xml
@@ -17,7 +17,13 @@ FROM t_browse_record tbr WHERE tbr.del_flag = 0 AND tbr.user_id = #{param.memberUserId} <if test="param.browseType !=null and param.browseType != ''"> tbr.browse_type = #{param.browseType} AND tbr.browse_type = #{param.browseType} </if> <if test="param.createStartTime!=null and param.createStartTime!=''"> AND tbr.create_time >= #{param.createStartTime} </if> <if test="param.createEndTime!=null and param.createEndTime!=''"> AND tbr.create_time <= #{param.createEndTime} </if> ORDER BY tbr.create_time DESC </select> ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -213,10 +213,11 @@ tmt.total_integral integral, tm.referrer referrer, tm.customer_source memberFrom, tmt.total_pay_money totalPayMoney tmt.total_pay_money totalPayMoney, tmt.total_activity_count activityTotal FROM t_member tm INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id WHERE del_flag = 0 LEFT JOIN t_member_total tmt ON tm.member_id = tmt.member_id WHERE tm.del_flag = 0 <if test="param.keyword != null and param.keyword != ''"> AND (tm.member_no LIKE CONCAT('%',#{param.keyword},'%') OR tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.nick_name LIKE CONCAT('%',#{param.keyword},'%') OR FIND_IN_SET(#{param.keyword},tm.member_nurse) > 0) </if> @@ -271,8 +272,8 @@ <if test="param.endPayCount != null and param.endPayCount != ''"> AND tmt.total_pay_count <= #{param.endPayCount} </if> <if test="param.memberTag != null and param.memberTag != ''"> AND tm.user_tags REGEXP #{param.memberTag} <if test="param.memberTags != null and param.memberTags != ''"> AND tm.user_tags REGEXP #{param.memberTags} </if> ORDER BY tm.create_time DESC </select> @@ -295,5 +296,22 @@ </if> </select> <select id="listSimpleVoByIds" resultType="com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo"> SELECT tm.user_id userId, tm.real_name realName, tm.nick_name nickName, tm.mobile mobile FROM t_member tm WHERE tm.del_flag = 0 AND tm.user_id IN (#{userIds}) </select> <select id="getUserIdByKeyword" resultType="java.lang.Long"> SELECT tm.user_id FROM t_member tm tm.del_flag = 0 <if test="param.keyword != null and param.keyword != ''"> AND (tm.mobile LIKE CONCAT('%',#{param.keyword},'%') OR tm.real_name LIKE CONCAT('%',#{param.keyword},'%') OR tm.nick_name LIKE CONCAT('%',#{param.keyword},'%')) </if> </select> </mapper> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -134,4 +134,6 @@ List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderService.pageMerMemberOrder(page,merMemberNoClearOrderDto); return R.ok(page.setRecords(merMemberNoClearOrderVoList)); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -5,9 +5,10 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto; import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto; import com.ruoyi.order.domain.vo.MgtMemberOrderPageVo; import com.ruoyi.order.domain.vo.MgtMemberOrderTotalVo; import com.ruoyi.order.domain.dto.MgtShopOrderPageDto; import com.ruoyi.order.domain.vo.*; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.RequestBody; @@ -54,5 +55,47 @@ return R.ok(page.setRecords(mgtMemberOrderPageVoList)); } @RequestMapping(value = "/getMgtOrderTotal", method = RequestMethod.POST) @ApiOperation(value = "获取订单统计") public R<MgtOrderTotal> getMgtOrderTotal(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) { Long userId = SecurityUtils.getUserId(); mgtShopOrderPageDto.setUserId(userId); MgtOrderTotal mgtOrderTotal = orderService.getMgtOrderTotal(mgtShopOrderPageDto); return R.ok(mgtOrderTotal); } @RequestMapping(value = "/pageMgtActivityOrder", method = RequestMethod.POST) @ApiOperation(value = "平台获取秒杀订单列表") public R<Page<MgtActivityOrderPageVo>> pageMgtActivityOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) { Long userId = SecurityUtils.getUserId(); mgtShopOrderPageDto.setUserId(userId); Page<MgtActivityOrderPageVo> page = new Page<>(); page.setSize(mgtShopOrderPageDto.getPageSize()); page.setCurrent(mgtShopOrderPageDto.getPageNum()); List<MgtActivityOrderPageVo> mgtActivityOrderPageVos = orderService.pageMgtActivityOrder(page,mgtShopOrderPageDto); return R.ok(page.setRecords(mgtActivityOrderPageVos)); } @RequestMapping(value = "/pageMgtShopOrder", method = RequestMethod.POST) @ApiOperation(value = "平台获取门店订单列表") public R<Page<MgtShopOrderPageVo>> pageMgtShopOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) { Long userId = SecurityUtils.getUserId(); mgtShopOrderPageDto.setUserId(userId); Page<MgtShopOrderPageVo> page = new Page<>(); page.setSize(mgtShopOrderPageDto.getPageSize()); page.setCurrent(mgtShopOrderPageDto.getPageNum()); List<MgtShopOrderPageVo> shopOrderPageVoList = orderService.pageMgtShopOrder(page,mgtShopOrderPageDto); return R.ok(page.setRecords(shopOrderPageVoList)); } @RequestMapping(value = "/getMgtOrderDetail", method = RequestMethod.POST) @ApiOperation(value = "获取订单详情") public R<MgtOrderDetailVo> getMgtOrderDetail(@RequestBody MgtBaseGetDto mgtBaseGetDto) { Long userId = SecurityUtils.getUserId(); mgtBaseGetDto.setUserId(userId); MgtOrderDetailVo mgtOrderDetail = orderService.getMgtOrderDetail(mgtBaseGetDto.getId()); return R.ok(mgtOrderDetail); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderPageDto.java
@@ -15,7 +15,7 @@ public class MgtMemberOrderPageDto extends MgtPageDto { @ApiModelProperty(value = "用户id") private Long userId; private Long memberUserId; @ApiModelProperty(value = "搜索关键词") private String keyword; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberServiceRecordPageDto.java
@@ -20,4 +20,9 @@ @ApiModelProperty(value = "关键词") private String keyword; @ApiModelProperty(value = "创建开始时间") private String createStartTime; @ApiModelProperty(value = "创建结束时间") private String createEndTime; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtShopOrderPageDto.java
New file @@ -0,0 +1,49 @@ package com.ruoyi.order.domain.dto; import com.ruoyi.system.api.domain.dto.MgtPageDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @ClassName MgtShopOrderPageDto * @Description TODO * @Author jqs * @Date 2023/6/15 17:07 * @Version 1.0 */ @Data public class MgtShopOrderPageDto extends MgtPageDto { @ApiModelProperty(value = "关键词") private String keyword; @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成") private Integer orderStatus; @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") private Integer goodsType; @ApiModelProperty(value = "商户id") private Long shopId; @ApiModelProperty(value = "核销开始时间") private String verifyStartTime; @ApiModelProperty(value = "核销结束时间") private String verifyEndTime; @ApiModelProperty(value = "keyword转换用户ids",hidden = true) private String userIds; @ApiModelProperty(value = "code转换商户ids",hidden = true) private String shopIds; @ApiModelProperty("店铺地址省code") private String shopProvinceCode; @ApiModelProperty("店铺地址市code") private String shopCityCode; @ApiModelProperty("店铺地址区code") private String shopAreaCode; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/ConsumerGoods.java
@@ -1,15 +1,15 @@ package com.ruoyi.order.domain.pojo.order; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> @@ -108,6 +108,21 @@ */ @TableField("goods_type") private Integer goodsType; /** * 商品名称 */ @TableField("goods_introduction") private String goodsIntroduction; /** * 商品名称 */ @TableField("goods_picture") private String goodsPicture; /** * 商品名称 */ @TableField("goods_nurses") private String goodsNurses; @Override protected Serializable pkVal() { ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
@@ -1,16 +1,16 @@ package com.ruoyi.order.domain.pojo.order; import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; /** * <p> @@ -136,6 +136,11 @@ @TableField("use_time") private Date useTime; /** * 线下支付时间 */ @TableField("off_pay_time") private Date offPayTime; /** * 取消时间 */ @TableField("cancel_time") @@ -156,6 +161,18 @@ @TableField("close_flag") private Integer closeFlag; /** * 活动id */ @TableField("activity_id") private Long activityId; /** * 活动名称 */ @TableField("activity_name") private String activityName; @Override protected Serializable pkVal() { return this.orderId; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java
New file @@ -0,0 +1,75 @@ package com.ruoyi.order.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; /** * @ClassName MgtActivityOrderPageVo * @Description TODO * @Author jqs * @Date 2023/6/16 9:49 * @Version 1.0 */ @Data public class MgtActivityOrderPageVo { @ApiModelProperty("订单id") private String orderId; @ApiModelProperty("订单编号") private String orderNo; @ApiModelProperty("秒杀活动") private String activityName; @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "用户姓名") private String userName; @ApiModelProperty(value = "用户电话") private String userMobile; @ApiModelProperty("商品名称") private String goodsName; @ApiModelProperty(value = "秒杀价格") private BigDecimal activityPrice; @ApiModelProperty("购买数量") private Integer buyNum; @ApiModelProperty("订单金额") private BigDecimal orderMoney; @ApiModelProperty("应付金额") private BigDecimal receivableMoney; @ApiModelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @ApiModelProperty("订单实际支付金额") private BigDecimal payMoney; @ApiModelProperty("订单未支付金额") private BigDecimal unPaidMoney; @ApiModelProperty("核销店铺id") private Long shopId; @ApiModelProperty("核销店铺") private String shopName; @ApiModelProperty("核销时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date verifyTime; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java
@@ -31,7 +31,7 @@ private String shopName; @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成") private Integer orderStatus; private String orderStatus; @ApiModelProperty(value = "订单总价") private BigDecimal orderMoney; ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderDetailVo.java
New file @@ -0,0 +1,102 @@ package com.ruoyi.order.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * @ClassName MgtOrderDetailVo * @Description TODO * @Author jqs * @Date 2023/6/16 16:03 * @Version 1.0 */ @Data public class MgtOrderDetailVo { @ApiModelProperty("订单id") private String orderId; @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "用户姓名") private String userName; @ApiModelProperty(value = "用户电话") private String userMobile; @ApiModelProperty("订单商品列表") private List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList; @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成") private String orderStatus; @ApiModelProperty("订单编号") private String orderNo; @ApiModelProperty("订单来源1.商城2.秒杀活动3.线下创建") private String orderFrom; @ApiModelProperty("订单金额") private BigDecimal orderMoney; @ApiModelProperty("应付金额") private BigDecimal receivableMoney; @ApiModelProperty("订单实际支付金额") private BigDecimal payMoney; @ApiModelProperty("订单未支付金额") private BigDecimal unPaidMoney; @ApiModelProperty("秒杀活动") private String activityName; @ApiModelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @ApiModelProperty("线上支付金额") private BigDecimal onlinePayMoney; @ApiModelProperty("线下支付金额") private BigDecimal offlinePayMoney; @ApiModelProperty("线上支付时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date payTime; @ApiModelProperty("线下支付时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date offPayTime; @ApiModelProperty("完成时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date completeTime; @ApiModelProperty("取消时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date cancelTime; @ApiModelProperty("订单备注") private String orderRemark; @ApiModelProperty("核销店铺id") private Long shopId; @ApiModelProperty("核销店铺") private String shopName; @ApiModelProperty("核销时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date verifyTime; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsDetailVo.java
New file @@ -0,0 +1,43 @@ package com.ruoyi.order.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @ClassName MgtOrderGoodsDetailVo * @Description TODO * @Author jqs * @Date 2023/6/16 16:12 * @Version 1.0 */ @Data public class MgtOrderGoodsDetailVo { @ApiModelProperty("订单商品id") private String orderGoodsId; @ApiModelProperty("商品id") private String goodsId; @ApiModelProperty("商品名称") private String goodsName; @ApiModelProperty("商品图片") private String goodsPicture; @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") private String goodsType; @ApiModelProperty(value = "购买数量") private Integer buyNum; @ApiModelProperty(value = "商品售价") private BigDecimal goodsPrice; @ApiModelProperty(value = "商品总价") private BigDecimal goodsTotalPrice; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderTotal.java
New file @@ -0,0 +1,47 @@ package com.ruoyi.order.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; /** * @ClassName MgtOrderTotal * @Description TODO * @Author jqs * @Date 2023/6/16 11:36 * @Version 1.0 */ @Data public class MgtOrderTotal { @ApiModelProperty("订单总数") private Integer orderTotal; @ApiModelProperty("订单金额总数") private BigDecimal orderMoneyTotal; @ApiModelProperty("门店订单总数") private Integer shopOrderTotal; @ApiModelProperty("门店订单金额总数") private BigDecimal shopOrderMoneyTotal; @ApiModelProperty("门店订单已付金额总数") private BigDecimal shopPayMoneyTotal; @ApiModelProperty("门店订单未付金额总数") private BigDecimal shopUnPayMoneyTotal; @ApiModelProperty("活动订单总数") private Integer activityOrderTotal; @ApiModelProperty("活动订单金额总数") private BigDecimal activityOrderMoneyTotal; @ApiModelProperty("活动订单已付金额总数") private BigDecimal activityPayMoneyTotal; @ApiModelProperty("活动订单未付金额总数") private BigDecimal activityUnPayMoneyTotal; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageDto.java
File was deleted ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java
New file @@ -0,0 +1,67 @@ package com.ruoyi.order.domain.vo; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * @ClassName MgtShopOrderPageVo * @Description TODO * @Author jqs * @Date 2023/6/16 9:49 * @Version 1.0 */ @Data public class MgtShopOrderPageVo { @ApiModelProperty("订单id") private String orderId; @ApiModelProperty("订单编号") private String orderNo; @ApiModelProperty(value = "用户id") private Long userId; @ApiModelProperty(value = "用户昵称") private String nickName; @ApiModelProperty(value = "用户姓名") private String userName; @ApiModelProperty("订单商品列表") private List<MgtOrderGoodsPageVo> mgtOrderGoodsPageVoList; @ApiModelProperty("订单金额") private BigDecimal orderMoney; @ApiModelProperty("创建时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; @ApiModelProperty("应付金额") private BigDecimal receivableMoney; @ApiModelProperty("订单实际支付金额") private BigDecimal payMoney; @ApiModelProperty("订单未支付金额") private BigDecimal unPaidMoney; @ApiModelProperty("订单来源") private String orderFrom; @ApiModelProperty("核销店铺id") private Long shopId; @ApiModelProperty("核销店铺") private String shopName; @ApiModelProperty("核销时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date verifyTime; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderGoodsMapper.java
@@ -3,6 +3,7 @@ import com.ruoyi.order.domain.pojo.order.OrderGoods; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo; import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -22,6 +23,15 @@ * @param orderId * @return */ List<AppUserOrderGoodsPageVo> listVoByOrderId(@Param("orderId") String orderId); List<AppUserOrderGoodsPageVo> listAppVoByOrderId(@Param("orderId") String orderId); /** * @description 平台通过id获取VO * @author jqs * @date 2023/6/16 16:53 * @param orderId * @return List<MgtOrderGoodsDetailVo> */ List<MgtOrderGoodsDetailVo> listMgtVoByOrderId(@Param("orderId")String orderId); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -1,14 +1,10 @@ package com.ruoyi.order.mapper.order; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.order.domain.dto.AppUserOrderPageDto; import com.ruoyi.order.domain.dto.MerOrderPageDto; import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto; import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto; import com.ruoyi.order.domain.pojo.order.Order; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.Order; import com.ruoyi.order.domain.vo.*; import com.ruoyi.system.api.domain.dto.MerPageDto; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -71,4 +67,62 @@ * @return */ List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, @Param("param") MgtMemberOrderPageDto mgtMemberOrderPageDto); /** * @description 分页获取活动订单列表 * @author jqs * @date 2023/6/16 10:43 * @param page * @param mgtShopOrderPageDto * @return List<MgtActivityOrderPageVo> */ List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, @Param("param")MgtShopOrderPageDto mgtShopOrderPageDto); /** * @description 统计订单总数 * @author jqs * @date 2023/6/16 13:39 * @param * @return MgtOrderTotal */ MgtOrderTotal totalOrderFirst(); /** * @description 统计门店订单总数 * @author jqs * @date 2023/6/16 13:53 * @param mgtShopOrderPageDto * @return MgtOrderTotal */ MgtOrderTotal totalOrderSecond(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto); /** * @description 统计活动订单总数 * @author jqs * @date 2023/6/16 13:53 * @param mgtShopOrderPageDto * @return MgtOrderTotal */ MgtOrderTotal totalOrderThird(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto); /** * @description 统计订单总数 * @author jqs * @date 2023/6/16 13:53 * @param mgtShopOrderPageDto * @return MgtOrderTotal */ MgtOrderTotal totalOrder(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto); /** * @description 分页获取门店订单列表 * @author jqs * @date 2023/6/16 14:57 * @param page * @param mgtShopOrderPageDto * @return List<MgtShopOrderPageVo> */ List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, @Param("param")MgtShopOrderPageDto mgtShopOrderPageDto); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderGoodsServiceImpl.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.order.domain.pojo.order.OrderGoods; import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo; import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo; import com.ruoyi.order.mapper.order.OrderGoodsMapper; import com.ruoyi.order.service.order.OrderGoodsService; import org.springframework.stereotype.Service; @@ -27,12 +28,26 @@ /** * * @description 用户通过id获取VO * @author jqs * @date 2023/6/16 16:53 * @param orderId * @return * @return List<AppUserOrderGoodsPageVo> */ @Override public List<AppUserOrderGoodsPageVo> listVoByOrderId(String orderId){ return orderGoodsMapper.listVoByOrderId(orderId); public List<AppUserOrderGoodsPageVo> listAppVoByOrderId(String orderId){ return orderGoodsMapper.listAppVoByOrderId(orderId); } /** * @description 平台通过id获取VO * @author jqs * @date 2023/6/16 16:53 * @param orderId * @return List<MgtOrderGoodsDetailVo> */ @Override public List<MgtOrderGoodsDetailVo> listMgtVoByOrderId(String orderId){ return orderGoodsMapper.listMgtVoByOrderId(orderId); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -18,6 +18,7 @@ import com.ruoyi.order.service.order.OrderGoodsService; import com.ruoyi.common.security.utils.CodeFactoryUtil; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.vo.*; import com.ruoyi.system.api.service.*; import com.ruoyi.system.api.constant.AppErrorConstant; import com.ruoyi.system.api.domain.poji.goods.Goods; @@ -26,11 +27,8 @@ import com.ruoyi.system.api.domain.poji.member.Member; import com.ruoyi.system.api.domain.poji.shop.Shop; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.domain.vo.AppMemberCouponVo; import com.ruoyi.order.mapper.order.OrderMapper; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -201,6 +199,7 @@ /** * 创建订单 * * @param appPlaceOrderDto * @return */ @@ -390,6 +389,7 @@ /** * 分页获取用户订单 * * @param page * @param appUserOrderPageDto * @return @@ -427,7 +427,6 @@ /** * * @param appBaseGetDto * @return */ @@ -435,7 +434,7 @@ public AppUserOrderGetVo getAppOrderDetail(AppBaseGetDto appBaseGetDto){ String orderId = appBaseGetDto.getId(); Order order = this.getById(orderId); List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); AppUserOrderGetVo appUserOrderGetVo = new AppUserOrderGetVo(); appUserOrderGetVo.setOrderId(orderId); appUserOrderGetVo.setOrderNo(order.getOrderNo()); @@ -462,6 +461,7 @@ /** * 取消订单 * * @param orderId */ @Override @@ -477,6 +477,7 @@ /** * 获取用户订单统计 * * @param userId * @return */ @@ -496,6 +497,7 @@ /** * 获取B端首页统计 * * @param merHomeShopTotalVo * @return */ @@ -517,6 +519,7 @@ /** * 核销订单 * * @param orderId * @return */ @@ -524,7 +527,7 @@ public MerVerifyOrderVo verifyOrder(String orderId){ MerVerifyOrderVo merVerifyOrderVo = new MerVerifyOrderVo(); Order order = this.getById(orderId); List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); merVerifyOrderVo.setOrderId(orderId); merVerifyOrderVo.setOrderNo(order.getOrderNo()); merVerifyOrderVo.setOrderStatus(order.getOrderStatus()); @@ -548,6 +551,7 @@ /** * 确认核销订单 * * @param merVerifyOrderDto * @return */ @@ -563,15 +567,18 @@ order.setUseTime(nowTime); order.setUseUserId(merVerifyOrderDto.getUserId()); order.setOfflinePayMoney(relPayMoney); order.setOffPayTime(nowTime); order.setPayMoney(relReceiveMoney.add(relPayMoney)); order.setCloseFlag(1); this.saveOrUpdate(order); //创建服务商品 List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); ConsumerGoods consumerGoods; String consumerGoodsId; Goods goods; for(AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList){ consumerGoods = new ConsumerGoods(); goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData(); consumerGoodsId = IdUtils.simpleUUID(); consumerGoods.setConsumerGoodsId(consumerGoodsId); consumerGoods.setDelFlag(0); @@ -587,6 +594,9 @@ consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); consumerGoods.setCreateTime(nowTime); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); consumerGoods.setGoodsNurses(goods.getGoodsNurses()); consumerGoodsService.save(consumerGoods); } //生成返回 @@ -613,6 +623,7 @@ /** * 收银未结清订单列表 * * @param page * @param merMemberNoClearOrderDto * @return @@ -634,12 +645,14 @@ /** * 结清订单 * * @param merCloseOrderDto */ @Override public void merCloseOrder(MerCloseOrderDto merCloseOrderDto){ Order order = this.getById(merCloseOrderDto.getOrderId()); order.setOfflinePayMoney(merCloseOrderDto.getPayMoney()); order.setOffPayTime(new Date()); order.setPayMoney(order.getPayMoney().add(merCloseOrderDto.getPayMoney())); order.setCloseFlag(1); this.saveOrUpdate(order); @@ -647,11 +660,13 @@ /** * 创建新订单 * * @param merNewOrderDto */ @Override public void createNewOrder(MerNewOrderDto merNewOrderDto){ Long userId = merNewOrderDto.getBuyUserId(); Date nowTime = new Date(); //如果非指定用户判断是否需要通过手机号创建新用户 if(userId==null){ String name = merNewOrderDto.getName(); @@ -812,21 +827,23 @@ } order.setOrderRemark(merNewOrderDto.getOrderRemark()); order.setGoodsNum(goodsNum); order.setCreateTime(new Date()); order.setPayTime(new Date()); order.setUseTime(new Date()); order.setCreateTime(nowTime); order.setPayTime(nowTime); order.setUseTime(nowTime); order.setUseUserId(merNewOrderDto.getUserId()); order.setPayMoney(merNewOrderDto.getPayMoney()); order.setOnlinePayMoney(new BigDecimal("0.00")); order.setOfflinePayMoney(merNewOrderDto.getPayMoney()); order.setOffPayTime(nowTime); order.setCloseFlag(1); this.save(order); //创建服务 List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listVoByOrderId(orderId); List<AppUserOrderGoodsPageVo> appUserOrderGoodsPageVoList = orderGoodsService.listAppVoByOrderId(orderId); ConsumerGoods consumerGoods; String consumerGoodsId; for(AppUserOrderGoodsPageVo appUserOrderGoodsPageVo : appUserOrderGoodsPageVoList){ consumerGoods = new ConsumerGoods(); goods = remoteGoodsService.getGoods(appUserOrderGoodsPageVo.getGoodsId()).getData(); consumerGoodsId = IdUtils.simpleUUID(); consumerGoods.setConsumerGoodsId(consumerGoodsId); consumerGoods.setDelFlag(0); @@ -841,7 +858,10 @@ consumerGoods.setServiceNum(appUserOrderGoodsPageVo.getServiceNum()); consumerGoods.setUsedNum(0); consumerGoods.setGoodsType(appUserOrderGoodsPageVo.getGoodsType()); consumerGoods.setCreateTime(new Date()); consumerGoods.setCreateTime(nowTime); consumerGoods.setGoodsIntroduction(goods.getGoodsIntroduction()); consumerGoods.setGoodsPicture(appUserOrderGoodsPageVo.getGoodsPicture()); consumerGoods.setGoodsNurses(goods.getGoodsNurses()); consumerGoodsService.save(consumerGoods); } Member member = remoteMemberService.getMember(userId).getData(); @@ -858,7 +878,6 @@ /** * * @param merOrderPageDto * @return */ @@ -907,7 +926,6 @@ } /** * * @param page * @param merMemberNoClearOrderDto * @return @@ -929,6 +947,7 @@ /** * 获取用户订单统计 * * @param mgtMemberOrderTotalDto * @return */ @@ -940,22 +959,294 @@ /** * 分页获取用户订单列表 * * @param page * @param mgtMemberOrderPageDto * @return */ @Override public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto){ // 通过orderMapper获取MgtMemberOrderPageVoList List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderMapper.pageMgtMemberOrder(page, mgtMemberOrderPageDto); // 如果MgtMemberOrderPageVoList不为空 if(mgtMemberOrderPageVoList!=null&&!mgtMemberOrderPageVoList.isEmpty()){ Long shopId; Shop shop; HashSet<String> set = new HashSet<>(); // 遍历MgtMemberOrderPageVoList,获取shopId并添加到set中 for(MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList){ shopId = mgtMemberOrderPageVo.getShopId(); shop = remoteShopService.getShop(shopId).getData(); mgtMemberOrderPageVo.setShopName(shop.getShopName()); set.add(shopId.toString()); } // 将set中的shopId转换为逗号分隔的字符串 String joinedString = String.join(",", set); // 通过remoteShopService获取MgtSimpleShopVoList List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(joinedString).getData(); // 将MgtSimpleShopVoList转换为Map<Long, MgtSimpleShopVo>,以便后续根据shopId获取对应的MgtSimpleShopVo Map<Long, MgtSimpleShopVo> map = simpleShopVoList.stream() .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); // 遍历MgtMemberOrderPageVoList,根据shopId获取对应的MgtSimpleShopVo并将其shopName设置到MgtMemberOrderPageVo中 for (MgtMemberOrderPageVo mgtMemberOrderPageVo : mgtMemberOrderPageVoList) { shopId = mgtMemberOrderPageVo.getShopId(); mgtMemberOrderPageVo.setShopName(map.get(shopId).getShopName()); } } // 返回MgtMemberOrderPageVoList return mgtMemberOrderPageVoList; } /** * @param page * @param mgtShopOrderPageDto * @return List<MgtActivityOrderPageVo> * @description 分页获取活动订单列表 * @author jqs * @date 2023/6/16 10:43 */ @Override public List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto) { //如果区域代码不为null获取对应的商户id if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); } } //如果关键词不为null获取对应的用户id if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } // 从数据库中获取活动订单列表 List<MgtActivityOrderPageVo> activityOrderPageVoList = orderMapper.pageMgtActivityOrder(page, mgtShopOrderPageDto); // 如果列表不为空 if (!activityOrderPageVoList.isEmpty()) { // 定义变量 HashSet<Long> shopIdSet = new HashSet<>(); HashSet<Long> userIdSet = new HashSet<>(); BigDecimal zeroBig = new BigDecimal("0.00"); // 遍历列表,获取店铺 ID 和用户 ID for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { shopIdSet.add(mgtActivityOrderPageVo.getShopId()); userIdSet.add(mgtActivityOrderPageVo.getUserId()); } // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串 String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); // 从远程服务获取店铺和用户信息 List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData(); Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData(); Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); // 遍历列表,设置店铺名称、用户名称和未支付金额 for (MgtActivityOrderPageVo mgtActivityOrderPageVo : activityOrderPageVoList) { mgtActivityOrderPageVo.setShopName(shopMap.get(mgtActivityOrderPageVo.getShopId()).getShopName()); mgtActivityOrderPageVo.setUserName(userMap.get(mgtActivityOrderPageVo.getUserId()).getUserName()); BigDecimal unPaidMoney = mgtActivityOrderPageVo.getReceivableMoney().subtract(mgtActivityOrderPageVo.getPayMoney()); mgtActivityOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); } } // 返回处理后的活动订单列表 return activityOrderPageVoList; } /** * @description 获取订单统计 * @author jqs * @date 2023/6/16 12:51 * @param mgtShopOrderPageDto * @return MgtMemberOrderTotalVo */ @Override public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){ //如果区域代码不为null获取对应的商户id if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); } } //如果关键词不为null获取对应的用户id if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } MgtOrderTotal mgtOrderTotal = new MgtOrderTotal(); MgtOrderTotal mgtOrderTotalFirst = orderMapper.totalOrderFirst(); MgtOrderTotal mgtOrderTotalSecond = orderMapper.totalOrderSecond(mgtShopOrderPageDto); MgtOrderTotal mgtOrderTotalThird = orderMapper.totalOrderThird(mgtShopOrderPageDto); mgtOrderTotal.setOrderTotal(mgtOrderTotalFirst.getOrderTotal()); mgtOrderTotal.setOrderMoneyTotal(mgtOrderTotalFirst.getOrderMoneyTotal()); mgtOrderTotal.setShopOrderTotal(mgtOrderTotalSecond.getShopOrderTotal()); mgtOrderTotal.setShopOrderMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal()); mgtOrderTotal.setShopPayMoneyTotal(mgtOrderTotalSecond.getShopPayMoneyTotal()); mgtOrderTotal.setShopUnPayMoneyTotal(mgtOrderTotalSecond.getShopOrderMoneyTotal().subtract(mgtOrderTotalSecond.getShopPayMoneyTotal())); mgtOrderTotal.setActivityOrderTotal(mgtOrderTotalThird.getActivityOrderTotal()); mgtOrderTotal.setActivityOrderMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal()); mgtOrderTotal.setActivityPayMoneyTotal(mgtOrderTotalThird.getActivityPayMoneyTotal()); mgtOrderTotal.setActivityUnPayMoneyTotal(mgtOrderTotalThird.getActivityOrderMoneyTotal().subtract(mgtOrderTotalThird.getActivityPayMoneyTotal())); return mgtOrderTotal; } /** * @description 分页获取门店订单列表 * @author jqs * @date 2023/6/16 14:57 * @param page * @param mgtShopOrderPageDto * @return List<MgtShopOrderPageVo> */ @Override public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto){ //如果区域代码不为null获取对应的商户id if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopProvinceCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopCityCode())||StringUtils.isNotBlank(mgtShopOrderPageDto.getShopAreaCode())){ MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); mgtShopIdByCodeDto.setShopProvinceCode(mgtShopOrderPageDto.getShopProvinceCode()); mgtShopIdByCodeDto.setShopCityCode(mgtShopOrderPageDto.getShopCityCode()); mgtShopIdByCodeDto.setShopAreaCode(mgtShopOrderPageDto.getShopAreaCode()); MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); if(StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())){ mgtShopOrderPageDto.setShopIds(mgtShopIdByCodeVo.getShopIds()); } } //如果关键词不为null获取对应的用户id if(StringUtils.isNotBlank(mgtShopOrderPageDto.getKeyword())){ MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto(); mgtUserIdByKeywordDto.setKeyword(mgtShopOrderPageDto.getKeyword()); MgtUserIdByKeywordVo mgtUserIdByKeywordVo= remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData(); if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){ mgtShopOrderPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds()); } } List<MgtShopOrderPageVo> shopOrderPageVoList = orderMapper.pageMgtShopOrder(page, mgtShopOrderPageDto); // 如果列表不为空 if (!shopOrderPageVoList.isEmpty()) { // 定义变量 HashSet<Long> shopIdSet = new HashSet<>(); HashSet<Long> userIdSet = new HashSet<>(); BigDecimal zeroBig = new BigDecimal("0.00"); // 遍历列表,获取店铺 ID 和用户 ID for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { shopIdSet.add(mgtShopOrderPageVo.getShopId()); userIdSet.add(mgtShopOrderPageVo.getUserId()); } // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串 String shopJoinedString = String.join(",", shopIdSet.stream().map(Object::toString).collect(Collectors.toList())); String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList())); // 从远程服务获取店铺和用户信息 List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(shopJoinedString).getData(); Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream() .collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity())); List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(userJoinedString).getData(); Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream() .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity())); // 遍历列表,设置店铺名称、用户名称和未支付金额 for (MgtShopOrderPageVo mgtShopOrderPageVo : shopOrderPageVoList) { mgtShopOrderPageVo.setShopName(shopMap.get(mgtShopOrderPageVo.getShopId()).getShopName()); mgtShopOrderPageVo.setUserName(userMap.get(mgtShopOrderPageVo.getUserId()).getUserName()); BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney()); mgtShopOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney); } } return shopOrderPageVoList; } /** * @description 获取订单详情 * @author jqs * @date 2023/6/16 16:49 * @param orderId * @return MgtOrderDetailVo */ @Override public MgtOrderDetailVo getMgtOrderDetail(String orderId){ // 创建MgtOrderDetailVo对象 MgtOrderDetailVo mgtOrderDetailVo = new MgtOrderDetailVo(); // 获取订单信息 Order order = this.getById(orderId); // 获取会员信息 Member member = remoteMemberService.getMember(order.getUserId()).getData(); // 获取商店信息 Shop shop = remoteShopService.getShop(order.getShopId()).getData(); // 获取订单商品详细信息 List<MgtOrderGoodsDetailVo> orderGoodsDetailVoList = orderGoodsService.listMgtVoByOrderId(orderId); // 设置MgtOrderDetailVo属性 mgtOrderDetailVo.setOrderId(orderId); mgtOrderDetailVo.setUserId(order.getUserId()); mgtOrderDetailVo.setNickName(member.getNickName()); mgtOrderDetailVo.setUserName(member.getRealName()); mgtOrderDetailVo.setUserMobile(member.getMobile()); mgtOrderDetailVo.setOrderGoodsDetailVoList(orderGoodsDetailVoList); // 设置订单状态 switch (order.getOrderStatus()) { case 0: mgtOrderDetailVo.setOrderStatus("已取消"); break; case 1: mgtOrderDetailVo.setOrderStatus("待支付"); break; case 2: mgtOrderDetailVo.setOrderStatus("待核销"); break; case 3: mgtOrderDetailVo.setOrderStatus("已完成"); break; default: mgtOrderDetailVo.setOrderStatus("删除"); break; } // 设置订单编号 mgtOrderDetailVo.setOrderNo(order.getOrderNo()); // 设置订单来源 switch (order.getOrderFrom()) { case 1: mgtOrderDetailVo.setOrderFrom("商城"); break; case 2: mgtOrderDetailVo.setOrderFrom("秒杀活动"); break; case 3: mgtOrderDetailVo.setOrderFrom("线下创建"); break; default: mgtOrderDetailVo.setOrderStatus(""); break; } // 设置订单支付相关属性 mgtOrderDetailVo.setOrderMoney(order.getOrderMoney()); mgtOrderDetailVo.setReceivableMoney(order.getReceivableMoney()); mgtOrderDetailVo.setPayMoney(order.getPayMoney()); mgtOrderDetailVo.setUnPaidMoney(order.getReceivableMoney().subtract(order.getPayMoney())); mgtOrderDetailVo.setActivityName(order.getActivityName()); mgtOrderDetailVo.setCreateTime(order.getCreateTime()); mgtOrderDetailVo.setOnlinePayMoney(order.getOnlinePayMoney()); mgtOrderDetailVo.setOfflinePayMoney(order.getOfflinePayMoney()); mgtOrderDetailVo.setPayTime(order.getPayTime()); mgtOrderDetailVo.setOffPayTime(order.getOffPayTime()); mgtOrderDetailVo.setCompleteTime(order.getUseTime()); mgtOrderDetailVo.setCancelTime(order.getCancelTime()); mgtOrderDetailVo.setOrderRemark(order.getOrderRemark()); mgtOrderDetailVo.setShopId(order.getShopId()); mgtOrderDetailVo.setShopName(shop.getShopName()); mgtOrderDetailVo.setVerifyTime(order.getUseTime()); return mgtOrderDetailVo; } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderGoodsService.java
@@ -3,6 +3,7 @@ import com.ruoyi.order.domain.pojo.order.OrderGoods; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo; import com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo; import java.util.List; @@ -17,9 +18,20 @@ public interface OrderGoodsService extends IService<OrderGoods> { /** * * @description 用户通过id获取VO * @author jqs * @date 2023/6/16 16:53 * @param orderId * @return * @return List<AppUserOrderGoodsPageVo> */ List<AppUserOrderGoodsPageVo> listVoByOrderId(String orderId); List<AppUserOrderGoodsPageVo> listAppVoByOrderId(String orderId); /** * @description 平台通过id获取VO * @author jqs * @date 2023/6/16 16:53 * @param orderId * @return List<MgtOrderGoodsDetailVo> */ List<MgtOrderGoodsDetailVo> listMgtVoByOrderId(String orderId); } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -1,15 +1,13 @@ package com.ruoyi.order.service.order; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.order.domain.dto.*; import com.ruoyi.order.domain.pojo.order.Order; import com.ruoyi.order.domain.vo.*; import com.ruoyi.system.api.domain.dto.AppBaseGetDto; import com.ruoyi.order.domain.pojo.order.Order; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -138,4 +136,42 @@ * @return */ List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto); /** * @description 分页获取活动订单列表 * @author jqs * @date 2023/6/16 10:43 * @param page * @param mgtShopOrderPageDto * @return List<MgtActivityOrderPageVo> */ List<MgtActivityOrderPageVo> pageMgtActivityOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto); /** * @description 获取订单统计 * @author jqs * @date 2023/6/16 12:51 * @param mgtShopOrderPageDto * @return MgtMemberOrderTotalVo */ MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto); /** * @description 分页获取门店订单列表 * @author jqs * @date 2023/6/16 14:57 * @param page * @param mgtShopOrderPageDto * @return List<MgtShopOrderPageVo> */ List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto); /** * @description 获取订单详情 * @author jqs * @date 2023/6/16 16:49 * @param orderId * @return MgtOrderDetailVo */ MgtOrderDetailVo getMgtOrderDetail(String orderId); } ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/ConsumerGoodsMapper.xml
@@ -123,15 +123,13 @@ tcg.service_status serviceStatus, tcg.shop_id shopId, tcg.goods_type goodsType, tg.goods_name goodsName, tgf.file_url goodsPicture, tg.goods_nurses goodsNurses, tcg.goods_name goodsName, tcg.goods_picture goodsPicture, tcg.goods_nurses goodsNurses, tcg.cycle_num_flag cycleNumFlag, tcg.service_num serviceNum, tcg.used_num usedNum FROM t_consumer_goods tcg INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.userId} AND tcg.shop_id = #{param.shopId} <if test="param.goodsType != null"> AND tcg.goods_type = #{param.goodsType} @@ -145,16 +143,14 @@ tcg.service_status serviceStatus, tcg.shop_id shopId, tcg.goods_type goodsType, tg.goods_name goodsName, tg.goods_introduction goodsIntroduction, tgf.file_url goodsPicture, tg.goods_nurses goodsNurses, tcg.goods_name goodsName, tcg.goods_introduction goodsIntroduction, tcg.goods_picture goodsPicture, tcg.goods_nurses goodsNurses, tcg.cycle_num_flag cycleNumFlag, tcg.service_num serviceNum, tcg.used_num usedNum FROM t_consumer_goods tcg INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.memberUserId} AND tcg.shop_id = #{param.shopId} AND tcg.service_status = 1 AND tcg.goods_type = 1 AND tcg.cycle_num_flag = 0 ORDER BY tcg.create_time DESC @@ -166,16 +162,14 @@ tcg.service_status serviceStatus, tcg.shop_id shopId, tcg.goods_type goodsType, tg.goods_name goodsName, tg.goods_introduction goodsIntroduction, tgf.file_url goodsPicture, tg.goods_nurses goodsNurses, tcg.goods_name goodsName, tcg.goods_introduction goodsIntroduction, tcg.goods_picture goodsPicture, tcg.goods_nurses goodsNurses, tcg.cycle_num_flag cycleNumFlag, tcg.service_num serviceNum, tcg.used_num usedNum FROM t_consumer_goods tcg INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.memberUserId} AND tcg.shop_id = #{param.shopId} AND tcg.service_status = 1 AND tcg.goods_type = #{param.goodsType} AND tcg.cycle_num_flag = 1 ORDER BY tcg.create_time DESC @@ -187,16 +181,14 @@ tcg.service_status serviceStatus, tcg.shop_id shopId, tcg.goods_type goodsType, tg.goods_name goodsName, tg.goods_introduction goodsIntroduction, tgf.file_url goodsPicture, tg.goods_nurses goodsNurses, tcg.goods_name goodsName, tcg.goods_introduction goodsIntroduction, tcg.goods_picture goodsPicture, tcg.goods_nurses goodsNurses, tcg.cycle_num_flag cycleNumFlag, tcg.service_num serviceNum, tcg.used_num usedNum FROM t_consumer_goods tcg INNER JOIN t_goods tg ON tcg.goods_id = tg.goods_id INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 WHERE tcg.del_flag = 0 AND tcg.user_id = #{param.memberUserId} AND tcg.shop_id = #{param.shopId} AND tcg.goods_type = #{param.goodsType} AND tcg.cycle_num_flag = 1 ORDER BY tcg.create_time DESC ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderGoodsMapper.xml
@@ -103,23 +103,35 @@ </foreach> </delete> <select id="listVoByOrderId" resultType="com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo"> <select id="listAppVoByOrderId" resultType="com.ruoyi.order.domain.vo.AppUserOrderGoodsPageVo"> SELECT tog.order_goods_id orderGoodsId, tog.goods_id goodsId, tg.goods_name goodsName, tog.goods_name goodsName, tog.goods_type goodsType, tog.buy_num buyNum, tog.goods_price goodsPrice, tgf.file_url goodsPicture, tog.goods_picture goodsPicture, tog.goods_total_money goodsRealPrice, tog.cycle_num_flag cycleNumFlag, tog.service_num serviceNum FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id INNER JOIN t_goods tg ON tg.goods_id = tog.goods_id INNER JOIN t_goods_file tgf ON tgf.goods_id = tg.goods_id AND tgf.del_flag = 0 AND tgf.file_type = 1 WHERE toc.del_flag = 0 AND toc.order_id = #{orderId} </select> <select id="listMgtVoByOrderId" resultType="com.ruoyi.order.domain.vo.MgtOrderGoodsDetailVo"> SELECT tog.order_goods_id orderGoodsId, tog.goods_id goodsId, tog.goods_name goodsName, tog.goods_type goodsType, tog.buy_num buyNum, tog.goods_price goodsPrice, tog.goods_picture goodsPicture, tog.goods_total_money goodsTotalPrice FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.order_id = #{orderId} </select> </mapper> ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -86,6 +86,41 @@ </collection> </resultMap> <resultMap id="mgtShopOrderResultMap" type="com.ruoyi.order.domain.vo.MgtShopOrderPageVo"> <result column="orderId" property="orderId"/> <result column="orderStatus" property="orderStatus"/> <result column="orderNo" property="orderNo"/> <result column="shopId" property="shopId"/> <result column="orderMoney" property="orderMoney"/> <result column="discountMoney" property="discountMoney"/> <result column="receivableMoney" property="receivableMoney"/> <result column="payMoney" property="payMoney"/> <result column="orderFrom" property="orderFrom" /> <result column="createTime" property="createTime" /> <collection property="mgtOrderGoodsVoList" ofType="com.ruoyi.order.domain.vo.MerOrderGoodsPageVo"> <result column="goodsName" property="goodsName"/> <result column="buyNum" property="buyNum"/> </collection> </resultMap> <resultMap id="mgtShopOrderResultMap" type="com.ruoyi.order.domain.vo.MgtShopOrderPageVo"> <result column="orderId" property="orderId"/> <result column="orderNo" property="orderNo"/> <result column="userId" property="userId"/> <result column="orderMoney" property="orderMoney"/> <result column="createTime" property="createTime"/> <result column="receivableMoney" property="receivableMoney"/> <result column="payMoney" property="payMoney"/> <result column="unPaidMoney" property="unPaidMoney"/> <result column="orderFrom" property="orderFrom"/> <result column="shopId" property="shopId"/> <result column="verifyTime" property="verifyTime"/> <collection property="mgtOrderGoodsPageVoList" ofType="com.ruoyi.order.domain.vo.MgtOrderGoodsPageVo"> <result column="goodsName" property="goodsName"/> <result column="buyNum" property="buyNum"/> </collection> </resultMap> <sql id="selectOrderVo"> select order_id, del_flag, order_status, order_no, order_from, shop_id, user_id, order_money, coupon_money, discount_money, receivable_money, pay_type, pay_money, online_pay_money, offline_pay_money, order_remark, goods_info, create_time, pay_time, use_time, cancel_time, use_user_id from t_order </sql> @@ -237,7 +272,7 @@ AND toc.order_status = #{param.orderStatus} </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tg.goods_name LIKE CONCAT('%',#{param.keyword},'%')) AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%')) </if> ORDER BY toc.create_time DESC </select> @@ -300,7 +335,7 @@ AND toc.create_time <= #{param.endOrderDate} </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tg.goods_name LIKE CONCAT('%',#{param.keyword},'%')) AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%')) </if> ORDER BY toc.create_time DESC </select> @@ -362,15 +397,15 @@ tog.goods_name goodsName, tog.buy_num buyNum, toc.create_time createTime, toc.order_from orderFrom, CASE toc.order_from WHEN 1 THEN "商城订单" WHEN 2 THEN "秒杀活动订单" WHEN 3 THEN "线下创建订单" END orderFrom END orderFromDesc FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id INNER JOIN t_goods tg ON tg.goods_id = tog.goods_id WHERE toc.del_flag = 0 AND toc.user_id = #{param.userId} WHERE toc.del_flag = 0 AND toc.user_id = #{param.memberUserId} <if test="param.orderStatus != null"> AND toc.order_status = #{param.orderStatus} </if> @@ -391,4 +426,199 @@ </if> ORDER BY toc.create_time DESC </select> <select id="pageMgtActivityOrder" resultType="com.ruoyi.order.domain.vo.MgtActivityOrderPageVo"> SELECT toc.order_id orderId, toc.order_no orderNo, toc.user_id userId, toc.activity_name activityName, tog.goods_name goodsName, tog.goods_price activityPrice, tog.buy_num buyNum, toc.order_money orderMoney, toc.receivable_money receivableMoney, toc.create_time createTime, toc.pay_money payMoney, toc.shop_id shopId, toc.use_time verifyTime FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.order_from = 2 <if test="param.orderStatus != null"> AND toc.order_status = #{param.orderStatus} </if> <if test="param.goodsType != null and param.goodsType !=''"> AND tog.goods_type = #{param.goodsType} </if> <if test="param.shopId != null and param.shopId != ''"> AND toc.shop_id = #{param.shopId} </if> <if test="param.shopIds != null and param.shopIds != ''"> AND toc.shop_id IN (#{param.shopIds}) </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds})) </if> <if test="param.verifyStartTime != null and param.verifyStartTime != ''"> AND toc.use_time >= #{param.verifyStartTime} </if> <if test="param.verifyEndTime != null and param.verifyEndTime != ''"> AND toc.use_time <= #{param.verifyEndTime} </if> ORDER BY toc.create_time DESC </select> <select id="totalOrderFirst" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(order_id) orderTotal, IFNULL(SUM(order_money),0) orderMoneyTotal FROM t_order toc.create_time DESC </select> <select id="totalOrderSecond" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(temp.order_id) shopOrderTotal, IFNULL(SUM(temp.order_money),0) shopOrderMoneyTotal, IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal FROM (SELECT toc.order_id,toc.order_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3) <if test="param.orderStatus != null"> AND toc.order_status = #{param.orderStatus} </if> <if test="param.goodsType != null and param.goodsType !=''"> AND tog.goods_type = #{param.goodsType} </if> <if test="param.shopId != null and param.shopId != ''"> AND toc.shop_id = #{param.shopId} </if> <if test="param.shopIds != null and param.shopIds != ''"> AND toc.shop_id IN (#{param.shopIds}) </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds})) </if> <if test="param.verifyStartTime != null and param.verifyStartTime != ''"> AND toc.use_time >= #{param.verifyStartTime} </if> <if test="param.verifyEndTime != null and param.verifyEndTime != ''"> AND toc.use_time <= #{param.verifyEndTime} </if> GROUP BY toc.order_id) AS temp </select> <select id="totalOrderThird" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(temp.order_id) shopOrderTotal, IFNULL(SUM(temp.order_money),0) shopOrderMoneyTotal, IFNULL(SUM(temp.pay_money),0) shopPayMoneyTotal FROM (SELECT toc.order_id,toc.order_money,toc.pay_money FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND toc.order_from = 2 <if test="param.orderStatus != null"> AND toc.order_status = #{param.orderStatus} </if> <if test="param.goodsType != null and param.goodsType !=''"> AND tog.goods_type = #{param.goodsType} </if> <if test="param.shopId != null and param.shopId != ''"> AND toc.shop_id = #{param.shopId} </if> <if test="param.shopIds != null and param.shopIds != ''"> AND toc.shop_id IN (#{param.shopIds}) </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds})) </if> <if test="param.verifyStartTime != null and param.verifyStartTime != ''"> AND toc.use_time >= #{param.verifyStartTime} </if> <if test="param.verifyEndTime != null and param.verifyEndTime != ''"> AND toc.use_time <= #{param.verifyEndTime} </if> GROUP BY toc.order_id) AS temp </select> <select id="totalOrder" resultType="com.ruoyi.order.domain.vo.MgtOrderTotal"> SELECT COUNT(order_id) AS orderTotal, IFNULL(SUM(order_money), 0) AS orderMoneyTotal, COUNT(CASE WHEN (order_from = 1 OR order_from = 3) THEN order_id ELSE NULL END) AS shopOrderTotal, IFNULL(SUM(CASE WHEN (order_from = 1 OR order_from = 3) THEN order_money ELSE 0 END), 0) AS shopOrderMoneyTotal, IFNULL(SUM(CASE WHEN (order_from = 1 OR order_from = 3) THEN pay_money ELSE 0 END), 0) AS shopPayMoneyTotal, COUNT(CASE WHEN order_from = 2 THEN order_id ELSE NULL END) AS activityOrderTotal, IFNULL(SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END), 0) AS activityOrderMoneyTotal, IFNULL(SUM(CASE WHEN order_from = 2 THEN pay_money ELSE 0 END), 0) AS activityPayMoneyTotal FROM (SELECT toc.order_id, toc.order_money, toc.pay_money, toc.order_from FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 <if test="param.orderStatus != null"> AND toc.order_status = #{param.orderStatus} </if> <if test="param.goodsType != null and param.goodsType !=''"> AND tog.goods_type = #{param.goodsType} </if> <if test="param.shopId != null and param.shopId != ''"> AND toc.shop_id = #{param.shopId} </if> <if test="param.shopIds != null and param.shopIds != ''"> AND toc.shop_id IN (#{param.shopIds}) </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds})) </if> <if test="param.verifyStartTime != null and param.verifyStartTime != ''"> AND toc.use_time >= #{param.verifyStartTime} </if> <if test="param.verifyEndTime != null and param.verifyEndTime != ''"> AND toc.use_time <= #{param.verifyEndTime} </if> GROUP BY toc.order_id) AS temp </select> <select id="pageMgtShopOrder" resultMap="mgtShopOrderResultMap"> SELECT toc.order_id orderId, toc.order_no orderNo, toc.user_id userId, tog.goods_name goodsName, tog.buy_num buyNum, toc.order_money orderMoney, toc.receivable_money receivableMoney, toc.create_time createTime, toc.pay_money payMoney, toc.shop_id shopName, toc.use_time verifyTime, CASE toc.order_from WHEN 1 THEN '小程序' WHEN 3 THEN '线下创建' END orderFrom FROM t_order toc INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id WHERE toc.del_flag = 0 AND (toc.order_from = 1 OR toc.order_from = 3) <if test="param.orderStatus != null"> AND toc.order_status = #{param.orderStatus} </if> <if test="param.goodsType != null and param.goodsType !=''"> AND tog.goods_type = #{param.goodsType} </if> <if test="param.shopId != null and param.shopId != ''"> AND toc.shop_id = #{param.shopId} </if> <if test="param.shopIds != null and param.shopIds != ''"> AND toc.shop_id IN (#{param.shopIds}) </if> <if test="param.keyword != null and param.keyword != ''"> AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR toc.activity_name LIKE CONCAT('%',#{param.keyword},'%') OR toc.user_id IN (#{param.userIds})) </if> <if test="param.verifyStartTime != null and param.verifyStartTime != ''"> AND toc.use_time >= #{param.verifyStartTime} </if> <if test="param.verifyEndTime != null and param.verifyEndTime != ''"> AND toc.use_time <= #{param.verifyEndTime} </if> ORDER BY toc.create_time DESC </select> </mapper> ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/UserServiceRecordMapper.xml
@@ -98,7 +98,7 @@ ORDER BY tusr.create_time DESC </select> <select id="pageMerMemberServiceRecord" resultType="com.ruoyi.order.domain.vo.MgtMemberServiceRecordPageVo"> <select id="pageMgtMemberServiceRecord" resultType="com.ruoyi.order.domain.vo.MgtMemberServiceRecordPageVo"> SELECT tusr.shop_id shopId, tsrd.consumer_goods_name consumerGoodsName, @@ -107,10 +107,16 @@ tsrd.service_num serviceNum, tsrd.surp_num surpNum FROM t_user_service_record tusr INNER JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id LEFT JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id WHERE tusr.del_flag = 0 AND tusr.user_id = #{param.memberUserId} AND tusr.service_type = 1 <if test="param.keyword != null and param.keyword != ''"> AND tsrd.consumer_goods_name LIKE CONCAT('%',#{param.keyword},'%') </if> <if test="param.createStartTime!=null and param.createStartTime!=''"> AND tusr.create_time >= #{param.createStartTime} </if> <if test="param.createEndTime!=null and param.createEndTime!=''"> AND tusr.create_time <= #{param.createEndTime} </if> ORDER BY tusr.create_time DESC </select> @@ -125,7 +131,7 @@ IFNULL(SUM(tsrd.service_num),0) cycleCount, IFNULL(SUM(tsrd.surp_num),0) surpCycleCount FROM t_user_service_record tusr INNER JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id LEFT JOIN t_service_record_detail tsrd ON tsrd.record_id = tusr.id WHERE tusr.del_flag = 0 AND tusr.user_id = #{userId} AND tusr.service_type = 1 GROUP BY tsrd.consumer_goods_id) AS temp </select> ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtTaskController.java
@@ -1,6 +1,5 @@ package com.ruoyi.shop.controller.management; 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.shop.domain.dto.MgtFollowShopTaskDto; @@ -58,37 +57,28 @@ @RequestMapping(value = "/pageMgtShopFollow", method = RequestMethod.POST) @ApiOperation(value = "平台获取平台跟进列表") public R<Page<MgtShopTaskRecordPageVo>> pageMgtShopFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) { public R<List<MgtShopTaskRecordPageVo>> pageMgtShopFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) { Long userId = SecurityUtils.getUserId(); mgtShopTaskPageDto.setUserId(userId); Page<MgtShopTaskRecordPageVo> page = new Page<>(); page.setSize(mgtShopTaskPageDto.getPageSize()); page.setCurrent(mgtShopTaskPageDto.getPageNum()); List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordService.pageMgtShopFollow(page,mgtShopTaskPageDto); return R.ok(page.setRecords(mgtShopTaskRecordPageVoList)); List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordService.pageMgtShopFollow(mgtShopTaskPageDto); return R.ok(mgtShopTaskRecordPageVoList); } @RequestMapping(value = "/pageMgtAgencyFollow", method = RequestMethod.POST) @ApiOperation(value = "平台获取代理商跟进列表") public R<Page<MgtAgencyTaskRecordPageVo>> pageMgtAgencyFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) { public R<List<MgtAgencyTaskRecordPageVo>> pageMgtAgencyFollow(@RequestBody MgtShopTaskPageDto mgtShopTaskPageDto) { Long userId = SecurityUtils.getUserId(); mgtShopTaskPageDto.setUserId(userId); Page<MgtAgencyTaskRecordPageVo> page = new Page<>(); page.setSize(mgtShopTaskPageDto.getPageSize()); page.setCurrent(mgtShopTaskPageDto.getPageNum()); List<MgtAgencyTaskRecordPageVo> mgtMemberFollowPageVoList = agencyTaskRecordService.pageMgtAgencyFollow(page,mgtShopTaskPageDto); return R.ok(page.setRecords(mgtMemberFollowPageVoList)); List<MgtAgencyTaskRecordPageVo> mgtMemberFollowPageVoList = agencyTaskRecordService.pageMgtAgencyFollow(mgtShopTaskPageDto); return R.ok(mgtMemberFollowPageVoList); } @RequestMapping(value = "/pageMgtMemberFollow", method = RequestMethod.POST) @ApiOperation(value = "平台获取用户跟进列表") public R<Page<MgtMemberFollowPageVo>> pageMgtMemberFollow(@RequestBody MgtMemberTaskPageDto mgtMemberTaskPageDto) { public R<List<MgtMemberFollowPageVo>> pageMgtMemberFollow(@RequestBody MgtMemberTaskPageDto mgtMemberTaskPageDto) { Long userId = SecurityUtils.getUserId(); mgtMemberTaskPageDto.setUserId(userId); Page<MgtMemberFollowPageVo> page = new Page<>(); page.setSize(mgtMemberTaskPageDto.getPageSize()); page.setCurrent(mgtMemberTaskPageDto.getPageNum()); List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordService.pageMgtMemberFollow(page, mgtMemberTaskPageDto); return R.ok(page.setRecords(mgtMemberFollowPageVoList)); List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordService.pageMgtMemberFollow(mgtMemberTaskPageDto); return R.ok(mgtMemberFollowPageVoList); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtMemberTaskPageDto.java
@@ -1,6 +1,6 @@ package com.ruoyi.shop.domain.dto; import com.ruoyi.system.api.domain.dto.MerPageDto; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,9 +12,12 @@ * @version: 1.0 */ @Data public class MgtMemberTaskPageDto extends MerPageDto { public class MgtMemberTaskPageDto extends MgtBaseDto { @ApiModelProperty(value = "会员用户id") private Long memberUserId; @ApiModelProperty(value = "任务时间") private String taskDate; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtShopTaskPageDto.java
@@ -1,6 +1,6 @@ package com.ruoyi.shop.domain.dto; import com.ruoyi.system.api.domain.dto.MgtPageDto; import com.ruoyi.system.api.domain.dto.MgtBaseDto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,9 +12,11 @@ * @version: 1.0 */ @Data public class MgtShopTaskPageDto extends MgtPageDto { public class MgtShopTaskPageDto extends MgtBaseDto { @ApiModelProperty(value = "商户id") private Long shopId; @ApiModelProperty(value = "任务时间") private String taskDate; } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/task/ShopTask.java
@@ -1,15 +1,15 @@ package com.ruoyi.shop.domain.pojo.task; import java.util.Date; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> @@ -53,7 +53,7 @@ * 下次跟进时间 */ @TableField("next_follow_date") private String nextFollowDate; private Date nextFollowDate; /** * 任务标题 */ @@ -70,6 +70,13 @@ @TableField("create_time") private Date createTime; /** * 任务时间 */ @TableField("task_date") private Date taskDate; @Override protected Serializable pkVal() { ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/AgencyTaskRecordMapper.java
@@ -31,8 +31,7 @@ /** * 平台分页获取代理商跟进任务 * @param page * @return */ List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(Page page, @Param("param")MgtShopTaskPageDto mgtShopTaskPageDto); List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(@Param("param")MgtShopTaskPageDto mgtShopTaskPageDto); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/MemberTaskRecordMapper.java
@@ -35,5 +35,5 @@ * @param page * @return */ List<MgtMemberFollowPageVo> pageMgtMemberFollow(Page page, @Param("param")MgtMemberTaskPageDto mgtMemberTaskPageDto); List<MgtMemberFollowPageVo> pageMgtMemberFollow(@Param("param")MgtMemberTaskPageDto mgtMemberTaskPageDto); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/task/ShopTaskRecordMapper.java
@@ -1,7 +1,6 @@ package com.ruoyi.shop.mapper.task; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord; import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; @@ -22,8 +21,7 @@ /** * 平台分页获取平台跟进任务 * @param page * @return */ List<MgtShopTaskRecordPageVo> pageMgtShopFollow(Page page, @Param("param") MgtShopTaskPageDto mgtShopTaskPageDto); List<MgtShopTaskRecordPageVo> pageMgtShopFollow(@Param("param") MgtShopTaskPageDto mgtShopTaskPageDto); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.security.utils.CodeFactoryUtil; @@ -34,6 +35,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; import java.util.Date; import java.util.List; import java.util.Objects; @@ -274,8 +276,14 @@ @Override public void changeCooperationTime(MgtChangeCoopDto mgtChangeCoopDto){ Shop shop = this.getById(mgtChangeCoopDto.getShopId()); Date coopStartDate = mgtChangeCoopDto.getCoopStartTime(); Date coopEndDate = mgtChangeCoopDto.getCoopEndTime(); Date coopStartDate = null; Date coopEndDate = null; try { coopStartDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopStartTime(),"yyyy-MM-dd"); coopEndDate = DateUtils.parseDate(mgtChangeCoopDto.getCoopEndTime(),"yyyy-MM-dd"); } catch (ParseException e) { throw new RuntimeException(e); } Date nowTime = new Date(); shop.setCooperationStartTime(coopStartDate); shop.setCooperationEndTime(coopEndDate); ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/AgencyTaskRecordServiceImpl.java
@@ -8,13 +8,10 @@ import com.ruoyi.shop.domain.pojo.task.AgencyTaskRecord; import com.ruoyi.shop.domain.pojo.task.TaskFile; import com.ruoyi.shop.domain.vo.MerAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MerMemberTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtMemberFollowPageVo; import com.ruoyi.shop.mapper.task.AgencyTaskRecordMapper; import com.ruoyi.shop.service.task.AgencyTaskRecordService; import com.ruoyi.shop.service.task.TaskFileService; import com.ruoyi.shop.util.FileConvertUtils; import com.ruoyi.system.api.domain.poji.sys.SysUser; import com.ruoyi.system.api.service.RemoteUserService; import org.springframework.stereotype.Service; @@ -22,7 +19,6 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.StringJoiner; import java.util.stream.Collectors; /** @@ -85,12 +81,11 @@ /** * 平台分页获取代理商跟进任务 * @param page * @return */ @Override public List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto){ List<MgtAgencyTaskRecordPageVo> mgtAgencyTaskRecordPageVoList = agencyTaskRecordMapper.pageMgtAgencyFollow(page, mgtShopTaskPageDto); public List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(MgtShopTaskPageDto mgtShopTaskPageDto){ List<MgtAgencyTaskRecordPageVo> mgtAgencyTaskRecordPageVoList = agencyTaskRecordMapper.pageMgtAgencyFollow(mgtShopTaskPageDto); if(mgtAgencyTaskRecordPageVoList!=null&&!mgtAgencyTaskRecordPageVoList.isEmpty()){ Long followId; List<TaskFile> taskFileList; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/MemberTaskRecordServiceImpl.java
@@ -76,13 +76,15 @@ } /** * 平台分页获取会员跟进任务 * @param page * @return * @description 平台分页获取会员跟进任务 * @author jqs * @date 2023/6/16 15:48 * @param mgtMemberTaskPageDto * @return List<MgtMemberFollowPageVo> */ @Override public List<MgtMemberFollowPageVo> pageMgtMemberFollow(Page page, MgtMemberTaskPageDto mgtMemberTaskPageDto){ List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordMapper.pageMgtMemberFollow(page, mgtMemberTaskPageDto); public List<MgtMemberFollowPageVo> pageMgtMemberFollow( MgtMemberTaskPageDto mgtMemberTaskPageDto){ List<MgtMemberFollowPageVo> mgtMemberFollowPageVoList = memberTaskRecordMapper.pageMgtMemberFollow( mgtMemberTaskPageDto); if(mgtMemberFollowPageVoList!=null&&!mgtMemberFollowPageVoList.isEmpty()){ Long followId; List<TaskFile> taskFileList; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskRecordServiceImpl.java
@@ -1,13 +1,10 @@ package com.ruoyi.shop.service.impl.task; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord; import com.ruoyi.shop.domain.pojo.task.TaskFile; import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; import com.ruoyi.shop.mapper.task.ShopTaskMapper; import com.ruoyi.shop.mapper.task.ShopTaskRecordMapper; import com.ruoyi.shop.service.task.ShopTaskRecordService; import com.ruoyi.shop.service.task.TaskFileService; @@ -42,12 +39,11 @@ /** * 平台分页获取平台跟进任务 * @param page * @return */ @Override public List<MgtShopTaskRecordPageVo> pageMgtShopFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto){ List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordMapper.pageMgtShopFollow(page, mgtShopTaskPageDto); public List<MgtShopTaskRecordPageVo> pageMgtShopFollow(MgtShopTaskPageDto mgtShopTaskPageDto){ List<MgtShopTaskRecordPageVo> mgtShopTaskRecordPageVoList = shopTaskRecordMapper.pageMgtShopFollow(mgtShopTaskPageDto); if(mgtShopTaskRecordPageVoList!=null&&!mgtShopTaskRecordPageVoList.isEmpty()){ Long followId; List<TaskFile> taskFileList; ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/task/ShopTaskServiceImpl.java
@@ -15,6 +15,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.ParseException; import java.time.LocalDate; import java.util.Date; /** @@ -52,10 +54,11 @@ shopTask.setDelFlag(0); shopTask.setShopId(mgtFollowShopTaskDto.getShopId()); shopTask.setFollowType(mgtFollowShopTaskDto.getFollowType()); shopTask.setNextFollowDate(DateUtils.getDate()); shopTask.setNextFollowDate(DateUtils.toDate(LocalDate.now())); shopTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle()); shopTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState()); shopTask.setCreateTime(new Date()); shopTask.setTaskDate(DateUtils.toDate(LocalDate.now())); this.saveOrUpdate(shopTask); //创建任务记录 ShopTaskRecord shopTaskRecord = new ShopTaskRecord(); @@ -89,10 +92,15 @@ shopNextTask.setDelFlag(0); shopNextTask.setShopId(mgtFollowShopTaskDto.getShopId()); shopNextTask.setFollowType(mgtFollowShopTaskDto.getFollowType()); shopNextTask.setNextFollowDate(mgtFollowShopTaskDto.getNextTaskDate()); shopNextTask.setTaskTitle(mgtFollowShopTaskDto.getNextTaskTitle()); shopNextTask.setEmergencyState(mgtFollowShopTaskDto.getEmergencyState()); shopNextTask.setCreateTime(new Date()); try { shopNextTask.setNextFollowDate(DateUtils.parseDate(mgtFollowShopTaskDto.getNextTaskDate(),"yyyy-MM-dd")); shopNextTask.setTaskDate(DateUtils.parseDate(mgtFollowShopTaskDto.getNextTaskDate(),"yyyy-MM-dd")); } catch (ParseException e) { throw new RuntimeException(e); } this.saveOrUpdate(shopNextTask); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/AgencyTaskRecordService.java
@@ -7,9 +7,7 @@ import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.AgencyTaskRecord; import com.ruoyi.shop.domain.vo.MerAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MerMemberTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtAgencyTaskRecordPageVo; import com.ruoyi.shop.domain.vo.MgtMemberFollowPageVo; import java.util.List; @@ -34,8 +32,7 @@ /** * 平台分页获取代理商跟进任务 * @param page * @return */ List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto); List<MgtAgencyTaskRecordPageVo> pageMgtAgencyFollow(MgtShopTaskPageDto mgtShopTaskPageDto); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/MemberTaskRecordService.java
@@ -29,9 +29,11 @@ List<MerMemberTaskRecordPageVo> pageMerMemberTaskRecord(Page page, MerMemberTaskPageDto merMemberTaskPageDto); /** * 平台分页获取会员跟进任务 * @param page * @return * @description 平台分页获取会员跟进任务 * @author jqs * @date 2023/6/16 15:48 * @param mgtMemberTaskPageDto * @return List<MgtMemberFollowPageVo> */ List<MgtMemberFollowPageVo> pageMgtMemberFollow(Page page, MgtMemberTaskPageDto mgtMemberTaskPageDto); List<MgtMemberFollowPageVo> pageMgtMemberFollow(MgtMemberTaskPageDto mgtMemberTaskPageDto); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/task/ShopTaskRecordService.java
@@ -1,9 +1,8 @@ package com.ruoyi.shop.service.task; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.dto.MgtShopTaskPageDto; import com.ruoyi.shop.domain.pojo.task.ShopTaskRecord; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.vo.MgtShopTaskRecordPageVo; import java.util.List; @@ -21,8 +20,7 @@ /** * 平台分页获取平台跟进任务 * @param page * @return */ List<MgtShopTaskRecordPageVo> pageMgtShopFollow(Page page, MgtShopTaskPageDto mgtShopTaskPageDto); List<MgtShopTaskRecordPageVo> pageMgtShopFollow(MgtShopTaskPageDto mgtShopTaskPageDto); } ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskRecordMapper.xml
@@ -43,7 +43,7 @@ INNER JOIN t_agency_task_record tmtr ON tmtr.task_id = tmt.task_id INNER JOIN t_shop ts ON ts.shop_id = tmt.shop_id INNER JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND tsf.file_type = 1 WHERE tmt.del_flag = 0 AND tmt.agency_id = #{param.shopId} WHERE tmt.del_flag = 0 AND tmt.agency_id = #{param.shopId} AND tmt.task_date = #{param.taskDate} ORDER BY tmt.task_date DESC </select> </mapper> ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskRecordMapper.xml
@@ -108,7 +108,7 @@ INNER JOIN t_member_task_record tmtr ON tmtr.task_id = tmt.task_id INNER JOIN t_shop ts ON ts.shop_id = tmt.shop_id INNER JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND tsf.file_type = 1 WHERE tmt.del_flag = 0 AND tmt.user_id = #{param.memberUserId} WHERE tmt.del_flag = 0 AND tmt.user_id = #{param.memberUserId} AND tmr.task_date = #{param.taskDate} ORDER BY tmt.task_date DESC </select> ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml
@@ -14,7 +14,7 @@ tmtr.call_phone callPhone FROM t_shop_task tmt INNER JOIN t_shop_task_record tmtr ON tmtr.task_id = tmt.task_id WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} AND tmt.task_date = #{param.taskDate} ORDER BY tmtr.create_time DESC </select>