From fc39a04331e80226d50242ac1ec27f93494fb359 Mon Sep 17 00:00:00 2001 From: jiangqs <jiangqs> Date: 星期二, 30 五月 2023 18:23:09 +0800 Subject: [PATCH] 用户管理 --- ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java | 31 + ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 96 ++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtActivenessJudgeVo.java | 27 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java | 62 +++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java | 45 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java | 9 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java | 19 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java | 19 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MemberArchiveVo.java | 25 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderTotalVo.java | 32 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberIntEditDto.java | 25 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java | 10 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java | 21 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java | 5 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelEditDto.java | 25 + ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml | 11 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsPageVo.java | 22 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/Member.java | 6 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java | 10 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java | 60 +++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderPageDto.java | 40 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java | 205 +++++++++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java | 4 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MemberIntegralChangeDto.java | 33 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 23 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelDelDto.java | 22 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java | 16 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java | 6 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberGetVo.java | 82 ++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/ActivenessMapper.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java | 19 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java | 12 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderTotalDto.java | 34 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/Activeness.java | 2 34 files changed, 1,025 insertions(+), 35 deletions(-) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Activeness.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/Activeness.java similarity index 96% rename from ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Activeness.java rename to ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/Activeness.java index abef7a3..9ae4877 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/pojo/config/Activeness.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/config/Activeness.java @@ -1,4 +1,4 @@ -package com.ruoyi.system.domain.pojo.config; +package com.ruoyi.system.api.domain.poji.config; import java.util.Date; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/Member.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/Member.java index fd6ad9d..b60c9bf 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/Member.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/Member.java @@ -153,6 +153,12 @@ @TableField("member_nurse") private String memberNurse; + /** + * 所属区域 + */ + @TableField("belong_district") + private String belongDistrict; + @Override protected Serializable pkVal() { diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java index fb5482e..da52ea7 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java @@ -1,6 +1,7 @@ package com.ruoyi.system.api.factory; import com.ruoyi.common.core.domain.R; +import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.api.service.RemoteConfigService; import com.ruoyi.system.api.domain.poji.config.SysTag; import org.slf4j.Logger; @@ -35,6 +36,11 @@ public R<List<SysTag>> listSysTag(Integer tagType) { return R.fail("获取标签失败:" + throwable.getMessage()); } + + @Override + public R<List<Activeness>> listActiveness() { + return R.fail("获取活跃度失败:" + throwable.getMessage()); + } }; } } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java index 8bb26a9..35126fc 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java @@ -3,6 +3,7 @@ import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; +import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.api.domain.poji.config.SysTag; import com.ruoyi.system.api.factory.RemoteActivityFallbackFactory; import com.ruoyi.system.api.factory.RemoteConfigFallbackFactory; @@ -27,4 +28,8 @@ @PostMapping("/config/listSysTag") public R<List<SysTag>> listSysTag(@RequestBody Integer tagType); + + + @PostMapping("/config/listActiveness") + public R<List<Activeness>> listActiveness(); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java index 143a468..ac3fac6 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java @@ -3,11 +3,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.member.domain.dto.MgtMemberIntEditDto; import com.ruoyi.member.domain.dto.MgtMemberPageDto; +import com.ruoyi.member.domain.dto.MgtMemberRelDelDto; +import com.ruoyi.member.domain.dto.MgtMemberRelEditDto; import com.ruoyi.member.domain.vo.MerMemberInfoVo; +import com.ruoyi.member.domain.vo.MgtMemberGetVo; import com.ruoyi.member.domain.vo.MgtMemberPageVo; import com.ruoyi.member.service.member.MemberService; import com.ruoyi.system.api.domain.dto.MerBaseGetDto; +import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -16,7 +21,6 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import javax.annotation.Resource; import java.util.List; /** @@ -48,9 +52,42 @@ @RequestMapping(value = "/editMemberRelationShop", method = RequestMethod.POST) @ApiOperation(value = "修改会员关联商户") - public R<MerMemberInfoVo> getMerMemberInfo(@RequestBody MerBaseGetDto merBaseGetDto) { + public R<MerMemberInfoVo> getMerMemberInfo(@RequestBody MgtMemberRelEditDto mgtMemberRelEditDto) { Long userId = SecurityUtils.getUserId(); - MerMemberInfoVo merMemberInfo = memberService.getMerMemberInfo(Long.valueOf(merBaseGetDto.getId())); - return R.ok(merMemberInfo); + mgtMemberRelEditDto.setUserId(userId); + memberService.editMemberRelationShop(mgtMemberRelEditDto); + return R.ok(); } + + @RequestMapping(value = "/deleteMemberRelationShop", method = RequestMethod.POST) + @ApiOperation(value = "删除会员关联商户") + public R<MerMemberInfoVo> deleteMemberRelationShop(@RequestBody MgtMemberRelDelDto mgtMemberRelDelDto) { + Long userId = SecurityUtils.getUserId(); + mgtMemberRelDelDto.setUserId(userId); + memberService.deleteMemberRelationShop(mgtMemberRelDelDto); + return R.ok(); + } + + @RequestMapping(value = "/editMemberIntegral", method = RequestMethod.POST) + @ApiOperation(value = "修改会员关联商户") + public R<MerMemberInfoVo> editMemberIntegral(@RequestBody MgtMemberIntEditDto mgtMemberIntEditDto) { + Long userId = SecurityUtils.getUserId(); + mgtMemberIntEditDto.setUserId(userId); + memberService.editMemberIntegral(mgtMemberIntEditDto); + return R.ok(); + } + + @RequestMapping(value = "/getMgtMemberInfo", method = RequestMethod.POST) + @ApiOperation(value = "获取会员信息") + public R<MgtMemberGetVo> getMgtMemberInfo(@RequestBody MgtBaseGetDto mgtBaseGetDto) { + Long userId = SecurityUtils.getUserId(); + mgtBaseGetDto.setUserId(userId); + MgtMemberGetVo mgtMemberGetVo = memberService.getMgtMemberInfo(Long.valueOf(mgtBaseGetDto.getId())); + return R.ok(mgtMemberGetVo); + } + + + + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MemberIntegralChangeDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MemberIntegralChangeDto.java new file mode 100644 index 0000000..32c66ad --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MemberIntegralChangeDto.java @@ -0,0 +1,33 @@ +package com.ruoyi.member.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author jqs34 + * @ClassName MemberIntegralChangeDto + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MemberIntegralChangeDto { + + @ApiModelProperty(value = "会员id") + private String memberId; + + @ApiModelProperty(value = "积分类型1.购物赠送2.活动赠送3.平台赠送") + private Integer recordType; + + @ApiModelProperty(value = "变动类型1增2减") + private Integer changeType; + + @ApiModelProperty(value = "积分") + private Integer integral; + + @ApiModelProperty(value = "关联订单id") + private String orderId; + + @ApiModelProperty(value = "关联订单编号") + private String orderNo; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberIntEditDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberIntEditDto.java new file mode 100644 index 0000000..5799c55 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberIntEditDto.java @@ -0,0 +1,25 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author jqs34 + * @ClassName MgtMemberRelationEditDto + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MgtMemberIntEditDto extends MgtBaseDto { + + @ApiModelProperty(value = "用户id") + private Long memberUserId; + + + @ApiModelProperty(value = "积分") + private Integer integral; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java index 7b94837..bbdad6d 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberPageDto.java @@ -70,10 +70,10 @@ private Long activenessId; @ApiModelProperty(value = "活跃度开始时间",hidden = true) - private String actStartDate; + private Date actStartDate; @ApiModelProperty(value = "活跃度结束时间",hidden = true) - private String actEndDate; + private Date actEndDate; @ApiModelProperty(value = "开始消费次数") private Integer startPayCount; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelDelDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelDelDto.java new file mode 100644 index 0000000..1228e39 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelDelDto.java @@ -0,0 +1,22 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author jqs34 + * @ClassName MgtMemberRelationEditDto + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MgtMemberRelDelDto extends MgtBaseDto { + + @ApiModelProperty(value = "用户id") + private Long memberUserId; + + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelEditDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelEditDto.java new file mode 100644 index 0000000..ce9c47a --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/MgtMemberRelEditDto.java @@ -0,0 +1,25 @@ +package com.ruoyi.member.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author jqs34 + * @ClassName MgtMemberRelationEditDto + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MgtMemberRelEditDto extends MgtBaseDto { + + @ApiModelProperty(value = "用户id") + private Long memberUserId; + + + @ApiModelProperty(value = "商户id") + private Long shopId; + + +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MemberArchiveVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MemberArchiveVo.java new file mode 100644 index 0000000..be7fc02 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MemberArchiveVo.java @@ -0,0 +1,25 @@ +package com.ruoyi.member.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author jqs34 + * @ClassName MgtMemberArchiveVo + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MemberArchiveVo { + + + @ApiModelProperty(value = "档案id") + private Long fieldId; + + @ApiModelProperty(value = "档案名") + private String fieldName; + + @ApiModelProperty(value = "档案值") + private String fieldValue; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtActivenessJudgeVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtActivenessJudgeVo.java new file mode 100644 index 0000000..fa8fea5 --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtActivenessJudgeVo.java @@ -0,0 +1,27 @@ +package com.ruoyi.member.domain.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author jqs34 + * @ClassName MgtActivenessJudgeVo + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MgtActivenessJudgeVo { + + @ApiModelProperty(value = "活跃度") + private String activenessName; + + @ApiModelProperty(value = "开始日期") + private Date startDay; + + @ApiModelProperty(value = "结束日期") + private Date endDay; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberGetVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberGetVo.java new file mode 100644 index 0000000..4fc133e --- /dev/null +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberGetVo.java @@ -0,0 +1,82 @@ +package com.ruoyi.member.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * @author jqs34 + * @ClassName MgtMemberPageVo + * @description: TODO + * @date 2023年05月26日 + * @version: 1.0 + */ +@Data +public class MgtMemberGetVo { + + @ApiModelProperty(value = "会员id") + private String memberId; + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "会员编号") + private String memberNo; + + @ApiModelProperty(value = "用户姓名") + private String realName; + + @ApiModelProperty(value = "用户昵称") + private String nickName; + + @ApiModelProperty(value = "用户手机") + private String mobile; + + @ApiModelProperty(value = "用户性别") + private String gender; + + @ApiModelProperty(value = "用户生日") + private String birthday; + + @ApiModelProperty(value = "所属地区") + private String belongDistrict; + + @ApiModelProperty(value = "注册时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty(value = "最近消费时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date lastPayTime; + + @ApiModelProperty(value = "客户类型") + private String goodsType; + + @ApiModelProperty(value = "关联商户名称") + private String relationShopName; + + @ApiModelProperty(value = "积分") + private Integer integral; + + @ApiModelProperty(value = "会员来源") + private String memberFrom; + + @ApiModelProperty(value = "活动次数") + private Integer totalActivityCount; + + @ApiModelProperty(value = "消费总金额") + private BigDecimal totalPayMoney; + + @ApiModelProperty(value = "备注") + private String memberRemark; + + @ApiModelProperty(value = "档案字段列表") + private List<MemberArchiveVo> memberArchiveVoList; + + @ApiModelProperty(value = "用户标签 多个,隔开") + private String memberTags; +} diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java index 7b100a7..0a5aca7 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberArchiveMapper.java @@ -2,6 +2,10 @@ import com.ruoyi.member.domain.pojo.member.MemberArchive; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.member.domain.vo.MemberArchiveVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * <p> @@ -13,4 +17,10 @@ */ public interface MemberArchiveMapper extends BaseMapper<MemberArchive> { + /** + * 获取用户档案 + * @param userId + * @return + */ + List<MemberArchiveVo> listVoByUserId(@Param("userId") Long userId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java index 35dd70b..3fa2495 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberArchiveServiceImpl.java @@ -1,10 +1,14 @@ package com.ruoyi.member.service.impl.member; import com.ruoyi.member.domain.pojo.member.MemberArchive; +import com.ruoyi.member.domain.vo.MemberArchiveVo; import com.ruoyi.member.mapper.member.MemberArchiveMapper; import com.ruoyi.member.service.member.MemberArchiveService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -17,4 +21,16 @@ @Service public class MemberArchiveServiceImpl extends ServiceImpl<MemberArchiveMapper, MemberArchive> implements MemberArchiveService { + @Resource + private MemberArchiveMapper memberArchiveMapper; + + /** + * 获取用户档案 + * @param userId + * @return + */ + @Override + public List<MemberArchiveVo> listVoByUserId(Long userId){ + return memberArchiveMapper.listVoByUserId(userId); + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java index 4b092e9..fe39f94 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java @@ -1,4 +1,5 @@ package com.ruoyi.member.service.impl.member; +import com.google.common.collect.Lists; import java.util.Date; import cn.binarywang.wx.miniapp.api.WxMaService; @@ -11,21 +12,22 @@ 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.bean.BeanUtils; import com.ruoyi.common.core.utils.uuid.IdUtils; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.member.domain.dto.*; +import com.ruoyi.member.domain.pojo.member.IntegralRecord; import com.ruoyi.member.domain.pojo.member.MemberNurse; import com.ruoyi.member.domain.pojo.member.MemberTotal; import com.ruoyi.member.domain.vo.*; import com.ruoyi.member.mapper.member.MemberMapper; -import com.ruoyi.member.service.member.MemberNurseService; -import com.ruoyi.member.service.member.MemberService; -import com.ruoyi.member.service.member.MemberTotalService; +import com.ruoyi.member.service.member.*; import com.ruoyi.member.util.CodeFactoryUtil; import com.ruoyi.member.util.HttpUtils; import com.ruoyi.system.api.domain.dto.AppMiniRegisterDto; +import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.api.domain.vo.AppMiniRegisterVo; import com.ruoyi.system.api.service.RemoteConfigService; import com.ruoyi.system.api.service.RemoteOrderService; @@ -43,6 +45,7 @@ import com.ruoyi.system.api.domain.vo.AppOrderTotalVo; import com.ruoyi.system.api.model.AppMiniLoginDto; import com.ruoyi.system.api.model.AppMiniLoginVo; +import io.swagger.models.auth.In; import lombok.extern.log4j.Log4j2; import com.ruoyi.common.core.utils.StringUtils; import org.apache.commons.lang3.ArrayUtils; @@ -102,6 +105,13 @@ @Resource private MemberTotalService memberTotalService; + + @Resource + private IntegralRecordService integralRecordService; + + @Resource + private MemberArchiveService memberArchiveService; + /** * @description: TODO @@ -655,8 +665,195 @@ */ @Override public List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto){ + List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); + Date nowDay = DateUtils.getNowDate(); + //处理活跃度筛选 + if(activenessList!=null&&!activenessList.isEmpty()){ + for(Activeness activeness : activenessList){ + if(activeness.getActivenessId().equals(merMemberPageDto.getActivenessId())){ + merMemberPageDto.setActStartDate(DateUtils.addDays(nowDay,activeness.getEndDay())); + merMemberPageDto.setActEndDate(DateUtils.addDays(nowDay,activeness.getStartDay())); + } + } + } + //查询获取结果列表 List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); - + //处理活跃度返回 + if(memberPageVoList!=null&&!memberPageVoList.isEmpty()){ + if(activenessList!=null&&!activenessList.isEmpty()){ + //生成活跃度时间段列表 + List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>(); + MgtActivenessJudgeVo mgtActivenessJudgeVo; + for(Activeness activeness : activenessList){ + mgtActivenessJudgeVo = new MgtActivenessJudgeVo(); + mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(),activeness.getEndDay())); + mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(),activeness.getStartDay()-1)); + mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName()); + } + //活跃度赋值 + Date lastPayTime; + for(MgtMemberPageVo mgtMemberPageVo : memberPageVoList){ + lastPayTime = mgtMemberPageVo.getLastPayTime(); + StringJoiner sj = new StringJoiner(","); + if(lastPayTime!=null){ + for(MgtActivenessJudgeVo entity: mgtActivenessJudgeVoList){ + if(lastPayTime.compareTo(entity.getStartDay())>=0&&lastPayTime.compareTo(entity.getEndDay())<=0){ + sj.add(entity.getActivenessName()); + } + } + if(sj.length()>0){ + mgtMemberPageVo.setActiveness(sj.toString()); + } + } + } + } + } return memberPageVoList; } + + + /** + * 修改会员关联商户 + * @param mgtMemberRelEditDto + */ + @Override + public void editMemberRelationShop(MgtMemberRelEditDto mgtMemberRelEditDto){ + Member member = this.getByUserId(mgtMemberRelEditDto.getMemberUserId()); + Shop shop = shopService.getShop(mgtMemberRelEditDto.getShopId()).getData(); + member.setRelationShopId(shop.getShopId()); + member.setRelationShopName(shop.getShopName()); + member.setBindingFlag(1); + member.setUpdateTime(new Date()); + member.setUpdateUserId(mgtMemberRelEditDto.getUserId()); + this.saveOrUpdate(member); + } + + + /** + * 删除会员关联商户 + * @param mgtMemberRelDelDto + */ + @Override + public void deleteMemberRelationShop(MgtMemberRelDelDto mgtMemberRelDelDto){ + Member member = this.getById(mgtMemberRelDelDto.getMemberUserId()); + member.setBindingFlag(0); + member.setUpdateTime(new Date()); + member.setUpdateUserId(mgtMemberRelDelDto.getUserId()); + this.saveOrUpdate(member); + } + + /** + * 修改会员积分 + * @param mgtMemberIntEditDto + */ + @Override + public void editMemberIntegral(MgtMemberIntEditDto mgtMemberIntEditDto){ + MemberIntegralChangeDto memberIntegralChangeDto = new MemberIntegralChangeDto(); + Member member = this.getByUserId(mgtMemberIntEditDto.getMemberUserId()); + memberIntegralChangeDto.setMemberId(member.getMemberId()); + memberIntegralChangeDto.setChangeType(1); + memberIntegralChangeDto.setRecordType(3); + memberIntegralChangeDto.setIntegral(mgtMemberIntEditDto.getIntegral()); + //调用积分变动 + memberIntegralChange(memberIntegralChangeDto); + } + + + + /** + * 会员积分变动 + * @param memberIntegralChangeDto + */ + @Override + public void memberIntegralChange(MemberIntegralChangeDto memberIntegralChangeDto){ + MemberTotal memberTotal = memberTotalService.getById(memberIntegralChangeDto.getMemberId()); + Integer recordType = memberIntegralChangeDto.getRecordType(); + Integer changeType = memberIntegralChangeDto.getChangeType(); + Integer integer = memberIntegralChangeDto.getIntegral(); + Integer totalIntegral = memberTotal.getTotalIntegral(); + Integer usedIntegral = memberTotal.getUsedIntegral(); + Integer useableIntegral = memberTotal.getUseableIntegral(); + //变动统计 + if(changeType==1){ + totalIntegral = totalIntegral + integer; + useableIntegral = useableIntegral + integer; + memberTotal.setTotalIntegral(totalIntegral); + memberTotal.setUseableIntegral(useableIntegral); + }else if(changeType==2){ + usedIntegral = usedIntegral + integer; + useableIntegral = useableIntegral - integer; + if(useableIntegral<0){ + throw new ServiceException(AppErrorConstant.INTEGRAL_USE_FAILED); + } + memberTotal.setTotalIntegral(totalIntegral); + memberTotal.setUseableIntegral(useableIntegral); + memberTotal.setUsedIntegral(usedIntegral); + } + memberTotalService.saveOrUpdate(memberTotal); + //记录变动 + IntegralRecord integralRecord = new IntegralRecord(); + integralRecord.setDelFlag(0); + integralRecord.setChangeType(recordType); + if(changeType==1){ + integralRecord.setChangeIntegral(integer); + }else if(changeType==2){ + integralRecord.setChangeIntegral( 0-integer); + } + integralRecord.setSurpIntegral(useableIntegral); + integralRecord.setCreateTime(new Date()); + integralRecord.setOrderId(memberIntegralChangeDto.getOrderId()); + integralRecord.setOrderNo(memberIntegralChangeDto.getOrderNo()); + switch (recordType){ + case 1: + integralRecord.setChangeReason("购物赠送"); + break; + case 2: + integralRecord.setChangeReason("活动赠送"); + break; + case 3: + integralRecord.setChangeReason("平台赠送"); + break; + default: + break; + } + integralRecordService.saveOrUpdate(integralRecord); + } + + /** + * 平台获取会员信息 + * @param userId + * @return + */ + @Override + public MgtMemberGetVo getMgtMemberInfo(Long userId){ + MgtMemberGetVo mgtMemberGetVo = new MgtMemberGetVo(); + Member member = this.getByUserId(userId); + MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); + List<MemberArchiveVo> memberArchiveVoList = memberArchiveService.listVoByUserId(member.getUserId()); + if(memberArchiveVoList!=null&&!memberArchiveVoList.isEmpty()){ + //去掉未完善信息 + memberArchiveVoList.removeIf(o -> Objects.isNull(o.getFieldValue())); + } + mgtMemberGetVo.setMemberId(member.getMemberId()); + mgtMemberGetVo.setUserId(member.getUserId()); + mgtMemberGetVo.setMemberNo(member.getMemberNo()); + mgtMemberGetVo.setRealName(member.getRealName()); + mgtMemberGetVo.setNickName(member.getNickName()); + mgtMemberGetVo.setMobile(member.getMobile()); + mgtMemberGetVo.setGender(member.getGender()==0 ? "男" : member.getGender()==1 ? "女" : null); + mgtMemberGetVo.setBirthday(member.getBirthday()); + mgtMemberGetVo.setBelongDistrict(member.getBelongDistrict()); + mgtMemberGetVo.setCreateTime(member.getCreateTime()); + mgtMemberGetVo.setLastPayTime(memberTotal.getLastPayTime()); + mgtMemberGetVo.setGoodsType(member.getGoodsType()); + mgtMemberGetVo.setRelationShopName(member.getRelationShopName()); + mgtMemberGetVo.setIntegral(memberTotal.getTotalIntegral()); + mgtMemberGetVo.setMemberFrom(member.getCustomerSource()); + mgtMemberGetVo.setTotalActivityCount(memberTotal.getTotalActivityCount()); + mgtMemberGetVo.setTotalPayMoney(memberTotal.getTotalPayMoney()); + mgtMemberGetVo.setMemberRemark(null); + mgtMemberGetVo.setMemberArchiveVoList(memberArchiveVoList); + mgtMemberGetVo.setMemberTags(member.getUserTags()); + return mgtMemberGetVo; + } } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java index d8ff379..08fb83b 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberArchiveService.java @@ -2,6 +2,9 @@ import com.ruoyi.member.domain.pojo.member.MemberArchive; import com.baomidou.mybatisplus.extension.service.IService; +import com.ruoyi.member.domain.vo.MemberArchiveVo; + +import java.util.List; /** * <p> @@ -13,4 +16,10 @@ */ public interface MemberArchiveService extends IService<MemberArchive> { + /** + * 获取用户档案 + * @param userId + * @return + */ + List<MemberArchiveVo> listVoByUserId(Long userId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java index 2ef7521..0dade1c 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java @@ -148,4 +148,35 @@ * @return */ List<MgtMemberPageVo> pageMgtMember(Page page,MgtMemberPageDto merMemberPageDto); + + /** + * 修改会员关联商户 + * @param mgtMemberRelEditDto + */ + void editMemberRelationShop(MgtMemberRelEditDto mgtMemberRelEditDto); + + /** + * 删除会员关联商户 + * @param mgtMemberRelDelDto + */ + void deleteMemberRelationShop(MgtMemberRelDelDto mgtMemberRelDelDto); + + /** + * 修改会员积分 + * @param mgtMemberIntEditDto + */ + void editMemberIntegral(MgtMemberIntEditDto mgtMemberIntEditDto); + + /** + * 会员积分变动 + * @param memberIntegralChangeDto + */ + void memberIntegralChange(MemberIntegralChangeDto memberIntegralChangeDto); + + /** + * 平台获取会员信息 + * @param userId + * @return + */ + MgtMemberGetVo getMgtMemberInfo(Long userId); } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java index dee9233..1b1b5ce 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/util/CodeFactoryUtil.java @@ -51,10 +51,14 @@ * 更具id进行加密+加随机数组成固定长度编码 */ - public static void main(String[] args) { - Long orderId = 1L; - String userNo = getShopNo(orderId); - System.out.println(userNo); + public static void main(String[] args) throws Exception{ + Date date1 = DateUtils.parseDate("2023-05-29","YY-MM-dd"); + Date date2 = DateUtils.parseDate("2023-05-30","YY-MM-dd"); + Date date3 = DateUtils.parseDate("2023-05-31","YY-MM-dd"); + Date date4 = DateUtils.parseDate("2023-05-30 12:00:00","YY-MM-dd"); + System.out.println(date4.compareTo(date1)); + System.out.println(date4.compareTo(date2)); + System.out.println(date4.compareTo(date3)); } /** diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml index 8bea047..1e489eb 100644 --- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml +++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberArchiveMapper.xml @@ -66,4 +66,15 @@ </foreach> </delete> + <select id="listVoByUserId" resultType="com.ruoyi.member.domain.vo.MemberArchiveVo"> + SELECT + tmaf.id fieldId, + tmaf.field_name fieldName, + tma.field_value fieldValue + FROM t_member_archive_fields tmaf + INNER JOIN t_member_archive tma ON tma.field_id = tmaf.id AND tma.user_id = #{userId} AND tma.del_flag = 0 + WHERE tmaf.del_flag = 0 + ORDER BY tmaf.field_sort DESC + </select> + </mapper> diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java new file mode 100644 index 0000000..b06d4ff --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java @@ -0,0 +1,62 @@ +package com.ruoyi.order.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.order.domain.dto.MerOrderPageDto; +import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto; +import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto; +import com.ruoyi.order.domain.vo.MerOrderPageVo; +import com.ruoyi.order.domain.vo.MgtMemberOrderPageVo; +import com.ruoyi.order.domain.vo.MgtMemberOrderTotalVo; +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.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +import static org.reflections.Reflections.log; + +/** + * @author jqs34 + * @ClassName MgtOrderController + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Api(value = "管理台订单相关接口", tags = "管理台订单相关接口", description = "管理台订单相关接口") +@RestController +@RequestMapping("/mgt/order") +public class MgtOrderController { + + @Autowired + private OrderService orderService; + + @RequestMapping(value = "/getMgtMemberOrderTotal", method = RequestMethod.POST) + @ApiOperation(value = "获取会员订单统计") + public R<MgtMemberOrderTotalVo> getMgtMemberOrderTotal(@RequestBody MgtMemberOrderTotalDto mgtMemberOrderTotalDto) { + Long userId = SecurityUtils.getUserId(); + mgtMemberOrderTotalDto.setUserId(userId); + MgtMemberOrderTotalVo mgtMemberOrderTotalVo = orderService.getMgtMemberOrderTotal(mgtMemberOrderTotalDto); + return R.ok(mgtMemberOrderTotalVo); + } + + @RequestMapping(value = "/pageMgtMemberOrder", method = RequestMethod.POST) + @ApiOperation(value = "平台获取用户订单列表") + public R<Page<MgtMemberOrderPageVo>> pageMgtMemberOrder(@RequestBody MgtMemberOrderPageDto mgtMemberOrderPageDto) { + Long userId = SecurityUtils.getUserId(); + mgtMemberOrderPageDto.setUserId(userId); + Page<MgtMemberOrderPageVo> page = new Page<>(); + page.setSize(mgtMemberOrderPageDto.getPageSize()); + page.setCurrent(mgtMemberOrderPageDto.getPageNum()); + List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderService.pageMgtMemberOrder(page,mgtMemberOrderPageDto); + return R.ok(page.setRecords(mgtMemberOrderPageVoList)); + } + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderPageDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderPageDto.java new file mode 100644 index 0000000..4400e3e --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderPageDto.java @@ -0,0 +1,40 @@ +package com.ruoyi.order.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import com.ruoyi.system.api.domain.dto.MgtPageDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author jqs34 + * @ClassName MgtMemberOrderTotalDto + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MgtMemberOrderPageDto extends MgtPageDto { + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "搜索关键词") + private String keyword; + + @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成") + private Integer orderStatus; + + @ApiModelProperty(value = "订单开始日期") + private Date startOrderDate; + + @ApiModelProperty(value = "订单结束日期") + private Date endOrderDate; + + @ApiModelProperty(value = "订单来源1.店铺商品2.平台秒杀活动3.线下创建") + private Integer orderFrom; + + @ApiModelProperty(value = "核销门店id") + private Long shopId; +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderTotalDto.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderTotalDto.java new file mode 100644 index 0000000..06acb79 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtMemberOrderTotalDto.java @@ -0,0 +1,34 @@ +package com.ruoyi.order.domain.dto; + +import com.ruoyi.system.api.domain.dto.MgtBaseDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author jqs34 + * @ClassName MgtMemberOrderTotalDto + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MgtMemberOrderTotalDto extends MgtBaseDto { + + @ApiModelProperty(value = "用户id") + private Long userId; + + @ApiModelProperty(value = "搜索关键词") + private String keyword; + + @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成") + private Integer orderStatus; + + @ApiModelProperty(value = "订单开始日期") + private Date startOrderDate; + + @ApiModelProperty(value = "订单结束日期") + private Date endOrderDate; + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java new file mode 100644 index 0000000..6524455 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java @@ -0,0 +1,60 @@ +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; + +/** + * @author jqs34 + * @ClassName MerMemberUnclearOrder + * @description: TODO + * @date 2023年05月05日 + * @version: 1.0 + */ +@Data +public class MgtMemberOrderPageVo { + + @ApiModelProperty(value = "订单id") + private String orderId; + + @ApiModelProperty("订单编号") + private String orderNo; + + @ApiModelProperty("核销门店id") + private Long shopId; + + @ApiModelProperty("核销门店") + private String shopName; + + @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成") + private Integer orderStatus; + + @ApiModelProperty(value = "订单总价") + private BigDecimal orderMoney; + + @ApiModelProperty(value = "优惠券抵扣") + private BigDecimal discountMoney; + + @ApiModelProperty("应收金额") + private BigDecimal receivableMoney; + + @ApiModelProperty("订单实际支付金额") + private BigDecimal payMoney; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @ApiModelProperty("订单来源") + private Integer orderFrom; + + @ApiModelProperty("订单来源") + private String orderFromDesc; + + @ApiModelProperty("订单商品列表") + private List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList; +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderTotalVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderTotalVo.java new file mode 100644 index 0000000..5ef3bdb --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderTotalVo.java @@ -0,0 +1,32 @@ +package com.ruoyi.order.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author jqs34 + * @ClassName MgtMemberOrderTotalVo + * @description: TODO + * @date 2023年05月30日 + * @version: 1.0 + */ +@Data +public class MgtMemberOrderTotalVo { + + @ApiModelProperty(value = "订单总数") + private Integer orderTotal; + + @ApiModelProperty(value = "订单总金额") + private BigDecimal totalOrderMoney; + + @ApiModelProperty(value = "应收总金额") + private BigDecimal totalReceivableMoney; + + @ApiModelProperty(value = "优惠总金额") + private BigDecimal totalDiscountMoney; + + @ApiModelProperty(value = "支付总金额") + private BigDecimal totalPayMoney; +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsPageVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsPageVo.java new file mode 100644 index 0000000..add9a73 --- /dev/null +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtOrderGoodsPageVo.java @@ -0,0 +1,22 @@ +package com.ruoyi.order.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author jqs34 + * @ClassName MerOrderGoodsVo + * @description: TODO + * @date 2023年05月06日 + * @version: 1.0 + */ +@Data +public class MgtOrderGoodsPageVo { + + @ApiModelProperty("商品名字") + private String goodsName; + + @ApiModelProperty("购买数量") + private Integer buyNum; + +} diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java index ead9be7..ed87d0e 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java @@ -3,11 +3,11 @@ 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.ruoyi.order.domain.vo.AppUserOrderPageVo; -import com.ruoyi.order.domain.vo.MerMemberNoClearOrderVo; -import com.ruoyi.order.domain.vo.MerOrderPageVo; +import com.ruoyi.order.domain.vo.*; import com.ruoyi.system.api.domain.dto.MerPageDto; import org.apache.ibatis.annotations.Param; @@ -56,4 +56,19 @@ * @return */ List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, @Param("userId") Long userId); + + /** + * 获取用户订单统计 + * @param mgtMemberOrderTotalDto + * @return + */ + MgtMemberOrderTotalVo getMgtMemberOrderTotal(@Param("param") MgtMemberOrderTotalDto mgtMemberOrderTotalDto); + + /** + * 分页获取用户订单列表 + * @param page + * @param mgtMemberOrderPageDto + * @return + */ + List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, @Param("param") MgtMemberOrderPageDto mgtMemberOrderPageDto); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index 2c2e93d..793e76b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -32,6 +32,7 @@ import com.ruoyi.order.mapper.order.OrderMapper; import com.ruoyi.order.service.order.OrderService; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -927,4 +928,26 @@ } return merMemberNoClearOrderVoList; } + + /** + * 获取用户订单统计 + * @param mgtMemberOrderTotalDto + * @return + */ + @Override + public MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto){ + MgtMemberOrderTotalVo mgtMemberOrderTotalVo = orderMapper.getMgtMemberOrderTotal(mgtMemberOrderTotalDto); + return mgtMemberOrderTotalVo; + } + + /** + * 分页获取用户订单列表 + * @param page + * @param mgtMemberOrderPageDto + * @return + */ + @Override + public List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto){ + return orderMapper.pageMgtMemberOrder(page, mgtMemberOrderPageDto); + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java index 4b0db4a..f219244 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java @@ -9,6 +9,7 @@ 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; @@ -109,18 +110,32 @@ void createNewOrder(MerNewOrderDto merNewOrderDto); /** - * + * 分页获取商户订单 * @param merOrderPageDto * @return */ List<MerOrderPageVo> pageMerOrder(Page page,MerOrderPageDto merOrderPageDto); /** - * + * 分页商户端用户收银记录 * @param page * @param merMemberNoClearOrderDto * @return */ List<MerMemberNoClearOrderVo> pageMerMemberOrder(Page page, MerMemberNoClearOrderDto merMemberNoClearOrderDto); + /** + * 获取用户订单统计 + * @param mgtMemberOrderTotalDto + * @return + */ + MgtMemberOrderTotalVo getMgtMemberOrderTotal(MgtMemberOrderTotalDto mgtMemberOrderTotalDto); + + /** + * 分页获取用户订单列表 + * @param page + * @param mgtMemberOrderPageDto + * @return + */ + List<MgtMemberOrderPageVo> pageMgtMemberOrder(Page page, MgtMemberOrderPageDto mgtMemberOrderPageDto); } diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index f142769..13fc4d6 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -2,7 +2,7 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.order.mapper.order.OrderMapper"> - <resultMap type="Order" id="OrderResult"> + <resultMap type="com.ruoyi.order.domain.pojo.order.Order" id="OrderResult"> <result property="orderId" column="order_id" /> <result property="delFlag" column="del_flag" /> <result property="orderStatus" column="order_status" /> @@ -69,11 +69,28 @@ </collection> </resultMap> + <resultMap id="mgtOrderResultMap" type="com.ruoyi.order.domain.vo.MgtMemberOrderPageVo"> + <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="merOrderGoodsVoList" ofType="com.ruoyi.order.domain.vo.MerOrderGoodsPageVo"> + <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> - <select id="selectOrderList" parameterType="Order" resultMap="OrderResult"> + <select id="selectOrderList" parameterType="com.ruoyi.order.domain.pojo.order.Order" resultMap="OrderResult"> <include refid="selectOrderVo"/> <where> <if test="orderStatus != null "> and order_status = #{orderStatus}</if> @@ -103,7 +120,7 @@ where order_id = #{orderId} </select> - <insert id="insertOrder" parameterType="Order"> + <insert id="insertOrder" parameterType="com.ruoyi.order.domain.pojo.order.Order"> insert into t_order <trim prefix="(" suffix=")" suffixOverrides=","> <if test="orderId != null">order_id,</if> @@ -155,7 +172,7 @@ </trim> </insert> - <update id="updateOrder" parameterType="Order"> + <update id="updateOrder" parameterType="com.ruoyi.order.domain.pojo.order.Order"> update t_order <trim prefix="SET" suffixOverrides=","> <if test="delFlag != null">del_flag = #{delFlag},</if> @@ -204,8 +221,8 @@ toc.goods_num goodsNum, toc.shop_id shopId, tog.goods_id goodsId, - tg.goods_name goodsName, - tgf.file_url goodsPicture, + tog.goods_name goodsName, + tog.goods_picture goodsPicture, tog.order_goods_id orderGoodsId, tog.goods_type goodsType, tog.buy_num buyNum, @@ -215,8 +232,6 @@ 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 <if test="param.orderStatus != null"> AND toc.order_status = #{param.orderStatus} @@ -255,14 +270,13 @@ toc.receivable_deposit receivableDeposit, toc.pay_money payMoney, toc.order_remark orderRemark, - tg.goods_name goodsName, + tog.goods_name goodsName, tog.goods_type goodsType, tog.buy_num buyNum, toc.create_time createTime, toc.order_from orderFrom 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 <if test="param.memberUserId != null and param.memberUserId != ''"> AND toc.user_id = #{param.memberUserId} @@ -305,4 +319,66 @@ WHERE toc.del_flag = 0 AND toc.user_id = #{userId} AND (toc.order_status = 2 OR toc.order_status = 3) ORDER BY toc.create_time DESC </select> + + <select id="getMgtMemberOrderTotal" resultType="com.ruoyi.order.domain.vo.MgtMemberOrderTotalVo"> + SELECT + COUNT(toc.order_id) orderTotal, + IFNULL(SUM(IFNULL(toc.order_money,0)),0) totalOrderMoney, + IFNULL(SUM(IFNULL(toc.receivable_money,0)),0) totalReceivableMoney, + IFNULL(SUM(IFNULL(toc.discount_money,0)),0) totalDiscountMoney, + IFNULL(SUM(IFNULL(toc.pay_money,0)),0) totalPayMoney + FROM t_order toc + WHERE toc.del_flag = 0 AND toc.user_id = #{param.userId} + <if test="param.orderStatus != null"> + AND toc.order_status = #{param.orderStatus} + </if> + <if test="param.startOrderDate != null and param.startOrderDate != '' "> + AND toc.create_time >= #{param.startOrderDate} + </if> + <if test="param.endOrderDate != null and param.endOrderDate != '' "> + AND toc.create_time <= #{param.endOrderDate} + </if> + <if test="param.keyword != null and param.keyword != ''"> + AND toc.order_no LIKE CONCAT('%',#{param.keyword},'%') + </if> + </select> + + <select id="pageMgtMemberOrder" resultMap="mgtOrderResultMap"> + SELECT + toc.order_id orderId, + toc.order_no orderNo, + toc.order_status orderStatus, + toc.shop_id shopId, + toc.order_money orderGoodsMoney, + toc.discount_money discountMoney, + toc.receivable_money receivableMoney, + toc.pay_money payMoney, + tog.goods_name goodsName, + tog.buy_num buyNum, + toc.create_time createTime, + toc.order_from orderFrom + 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} + <if test="param.orderStatus != null"> + AND toc.order_status = #{param.orderStatus} + </if> + <if test="param.shopId != null and param.shopId != ''"> + AND toc.shop_id = #{param.shopId} + </if> + <if test="param.orderFrom != null and param.orderFrom != ''"> + AND toc.order_from = #{param.orderFrom} + </if> + <if test="param.startOrderDate != null and param.startOrderDate != ''"> + AND toc.create_time >= #{param.startOrderDate} + </if> + <if test="param.endOrderDate != null and param.endOrderDate != ''"> + AND toc.create_time <= #{param.endOrderDate} + </if> + <if test="param.keyword != null and param.keyword != ''"> + AND toc.order_no LIKE CONCAT('%',#{param.keyword},'%') + </if> + ORDER BY toc.create_time DESC + </select> </mapper> diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java index 3ac1476..8578504 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java @@ -1,10 +1,10 @@ package com.ruoyi.system.controller.conslole; import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.system.api.domain.poji.config.SysTag; +import com.ruoyi.system.api.domain.poji.config.Activeness; +import com.ruoyi.system.service.config.ActivenessService; import com.ruoyi.system.service.config.SysTagService; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -23,6 +23,9 @@ @Resource private SysTagService sysTagService; + + @Resource + private ActivenessService activenessService; /** * 获取系统标签 @@ -47,4 +50,16 @@ List<SysTag> sysTagList = sysTagService.listByType(tagType); return R.ok(sysTagList); } + + /** + * 获取活跃度配置 + * @return + */ + @PostMapping("/listActiveness") + public R<List<Activeness>> listActiveness() + { + List<Activeness> activenessList = activenessService.listActiveness(); + return R.ok(activenessList); + } + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/ActivenessMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/ActivenessMapper.java index 2b60b0c..1dc28f8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/ActivenessMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/config/ActivenessMapper.java @@ -1,6 +1,6 @@ package com.ruoyi.system.mapper.config; -import com.ruoyi.system.domain.pojo.config.Activeness; +import com.ruoyi.system.api.domain.poji.config.Activeness; import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java index d27d103..1ff81a9 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/ActivenessService.java @@ -1,7 +1,9 @@ package com.ruoyi.system.service.config; -import com.ruoyi.system.domain.pojo.config.Activeness; +import com.ruoyi.system.api.domain.poji.config.Activeness; import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; /** * <p> @@ -13,4 +15,10 @@ */ public interface ActivenessService extends IService<Activeness> { + /** + * 获取活跃度list + * @return + */ + List<Activeness> listActiveness(); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java index 90cbc32..f2b9040 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/ActivenessServiceImpl.java @@ -1,10 +1,14 @@ package com.ruoyi.system.service.impl.config; -import com.ruoyi.system.domain.pojo.config.Activeness; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.ruoyi.system.api.domain.poji.config.Activeness; import com.ruoyi.system.mapper.config.ActivenessMapper; import com.ruoyi.system.service.config.ActivenessService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; /** * <p> @@ -17,4 +21,17 @@ @Service public class ActivenessServiceImpl extends ServiceImpl<ActivenessMapper, Activeness> implements ActivenessService { + @Resource + private ActivenessMapper activenessMapper; + + /** + * 获取活跃度list + * @return + */ + @Override + public List<Activeness> listActiveness(){ + List<Activeness> activenessList = activenessMapper.selectList(new LambdaQueryWrapper<Activeness>().eq(Activeness::getDelFlag, 0)); + return activenessList; + } + } -- Gitblit v1.7.1