From 4eac422e52a4d28fb651b75d0f054697c7a2c0fa Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 09 二月 2026 15:14:13 +0800
Subject: [PATCH] 优化
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java | 265 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 265 insertions(+), 0 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java
new file mode 100644
index 0000000..83a47a4
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/InviteRecordServiceImpl.java
@@ -0,0 +1,265 @@
+package com.doumee.service.business.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.GeneratePicUtil;
+import com.doumee.core.utils.Utils;
+import com.doumee.core.utils.aliyun.ALiYunUtil;
+import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.IntegralMapper;
+import com.doumee.dao.business.InviteRecordMapper;
+import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.ShopMapper;
+import com.doumee.dao.business.join.IntegralJoinMapper;
+import com.doumee.dao.business.model.Integral;
+import com.doumee.dao.business.model.InviteRecord;
+import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.web.dto.IntegralDTO;
+import com.doumee.dao.web.dto.IntegralRecordDTO;
+import com.doumee.dao.web.request.DealIntegralRequest;
+import com.doumee.dao.web.response.IntegralDataResponse;
+import com.doumee.dao.web.response.InviteInfoResponse;
+import com.doumee.service.business.IntegralService;
+import com.doumee.service.business.InviteRecordService;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.util.TextUtils;
+import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.awt.image.BufferedImage;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * 鐢ㄦ埛閭�璇疯褰�
+ * @author 姹熻箘韫�
+ * @date 2026骞�1鏈�20鏃�09:32:12
+ */
+@Service
+public class InviteRecordServiceImpl implements InviteRecordService {
+
+ @Autowired
+ private InviteRecordMapper inviteRecordMapper;
+
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
+
+ @Override
+ public InviteInfoResponse getInviteInfo(Integer memberId){
+ InviteInfoResponse inviteInfoResponse = new InviteInfoResponse();
+ inviteInfoResponse.setInviteNum(Constants.ZERO);
+ inviteInfoResponse.setNum(0l);
+ inviteInfoResponse.setInviteRule(systemDictDataBiz.queryByCode(Constants.ORDER_SET,Constants.INVITE_RULE).getCode());
+
+ List<InviteRecord> inviteRecordList = inviteRecordMapper.selectJoinList(InviteRecord.class,
+ new MPJLambdaWrapper<InviteRecord>()
+ .selectAll(InviteRecord.class)
+ .selectAs(Member::getNickname,InviteRecord::getMemberName)
+ .selectAs(Member::getImgurl,InviteRecord::getImgUrl)
+ .leftJoin(Member.class,Member::getId,InviteRecord::getMemberId)
+ .eq(InviteRecord::getIsdeleted,Constants.ZERO)
+ .eq(InviteRecord::getMemberId,memberId)
+ .orderByDesc(InviteRecord::getId)
+ );
+
+ if (CollectionUtils.isNotEmpty(inviteRecordList)) {
+ inviteInfoResponse.setInviteRecordList(inviteRecordList);
+ inviteInfoResponse.setInviteNum(inviteRecordList.size());
+ BigDecimal num = BigDecimal.ZERO;
+ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode();
+ for (InviteRecord inviteRecord:inviteRecordList) {
+ if(StringUtils.isNotBlank(inviteRecord.getImgUrl())){
+ inviteRecord.setImgUrl(path + inviteRecord.getImgUrl());
+ }
+ num = num.add(inviteRecord.getRewardIntegral());
+ }
+ inviteInfoResponse.setNum(num.longValue());
+ }
+
+ return inviteInfoResponse;
+ }
+
+
+ @Override
+ public String createShareImg(Integer memberId) throws Exception {
+ String imgUrl = systemDictDataBiz.queryByCode(Constants.ORDER_SET,Constants.INVITE_IMG_URL).getCode();
+ BufferedImage img1 = GeneratePicUtil.transfromToImage(imgUrl,imgUrl.substring(imgUrl.lastIndexOf(".") + 1));
+ if (img1 == null) {
+ return imgUrl;
+ }
+ String url = null;
+ String scene = "m_" + memberId;
+ //鍐呭鍒嗕韩娴锋姤鍥剧墖
+ InputStream mpCode = Constants.generateWxMiniImgStream(
+ scene,
+ "",
+ false);//灏忕▼搴�
+ InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
+ img1
+ , mpCode);
+ ALiYunUtil obs = new ALiYunUtil(
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode()
+ ,systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(), systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode());
+ String shareFolder = systemDictDataBiz.queryByCode(Constants.RESOURCE_PATH, Constants.SHARES_FILE).getCode();
+ String key = DateUtil.getNowShortDate() + "/" + UUID.randomUUID().toString() + ".jpg";
+ String fileName = shareFolder + key;
+ if (obs.uploadOnlineObject(inputStream,systemDictDataBiz.queryByCode(Constants.OSS, Constants.BUCKETNAME).getCode(), key,null)) {
+ url = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() + fileName;
+ }
+ return url;
+
+
+ }
+
+ @Override
+ public Integer create(InviteRecord inviteRecord) {
+ inviteRecordMapper.insert(inviteRecord);
+ return inviteRecord.getId();
+ }
+
+ @Override
+ public void deleteById(Integer id) {
+ inviteRecordMapper.deleteById(id);
+ }
+
+ @Override
+ public void delete(InviteRecord inviteRecord) {
+ UpdateWrapper<InviteRecord> deleteWrapper = new UpdateWrapper<>(inviteRecord);
+ inviteRecordMapper.delete(deleteWrapper);
+ }
+
+ @Override
+ public void deleteByIdInBatch(List<Integer> ids) {
+ if (CollectionUtils.isEmpty(ids)) {
+ return;
+ }
+ inviteRecordMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void updateById(InviteRecord inviteRecord) {
+ inviteRecordMapper.updateById(inviteRecord);
+ }
+
+ @Override
+ public void updateByIdInBatch(List<InviteRecord> inviteRecords) {
+ if (CollectionUtils.isEmpty(inviteRecords)) {
+ return;
+ }
+ for (InviteRecord inviteRecord: inviteRecords) {
+ this.updateById(inviteRecord);
+ }
+ }
+
+ @Override
+ public InviteRecord findById(Integer id) {
+ return inviteRecordMapper.selectById(id);
+ }
+
+ @Override
+ public InviteRecord findOne(InviteRecord inviteRecord) {
+ QueryWrapper<InviteRecord> wrapper = new QueryWrapper<>(inviteRecord).last("limit 1");
+ return inviteRecordMapper.selectOne(wrapper);
+ }
+
+ @Override
+ public List<InviteRecord> findList(InviteRecord inviteRecord) {
+ QueryWrapper<InviteRecord> wrapper = new QueryWrapper<>(inviteRecord);
+ return inviteRecordMapper.selectList(wrapper);
+ }
+
+ @Override
+ public PageData<InviteRecord> findPage(PageWrap<InviteRecord> pageWrap) {
+ IPage<InviteRecord> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ MPJLambdaWrapper<InviteRecord> queryWrapper = new MPJLambdaWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ queryWrapper.selectAll(InviteRecord.class )
+ .select("t1.name",InviteRecord::getRecName)
+ .select("t1.nickname",InviteRecord::getRecNickname)
+ .select("t1.phone",InviteRecord::getRecPhone)
+ .select("t2.name",InviteRecord::getMemberName)
+ .select("t2.nickname",InviteRecord::getMemberNickname)
+ .select("t2.open_id",InviteRecord::getOpenid)
+ .select("t2.phone",InviteRecord::getMemberPhone)
+ .leftJoin(Member.class,Member::getId,InviteRecord::getInviteId)
+ .leftJoin(Member.class,Member::getId,InviteRecord::getMemberId) ;
+ pageWrap.getModel().setIsdeleted(Constants.ZERO);
+ queryWrapper.eq(pageWrap.getModel().getId() != null,InviteRecord::getId, pageWrap.getModel().getId());
+ queryWrapper.eq(pageWrap.getModel().getCreator() != null,InviteRecord::getCreator, pageWrap.getModel().getCreator());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.ge(InviteRecord::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+ queryWrapper.le(InviteRecord::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+ }
+ queryWrapper.eq(pageWrap.getModel().getEditor() != null,InviteRecord::getEditor, pageWrap.getModel().getEditor());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.ge(InviteRecord::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+ queryWrapper.le(InviteRecord::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+ }
+ queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getRecName()),w->{
+ w.like("t1.name",pageWrap.getModel().getRecName()).or()
+ .like("t1.phone",pageWrap.getModel().getRecName()).or()
+ .like("t1.nickname",pageWrap.getModel().getRecName());
+ });
+ queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),w->{
+ w.like("t2.name",pageWrap.getModel().getMemberName()).or()
+ .like("t2.phone",pageWrap.getModel().getMemberName()).or()
+ .like("t2.nickname",pageWrap.getModel().getMemberName());
+ });
+ queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,InviteRecord::getIsdeleted, pageWrap.getModel().getIsdeleted());
+ queryWrapper.eq(pageWrap.getModel().getRemark() != null,InviteRecord::getRemark, pageWrap.getModel().getRemark());
+ queryWrapper.eq(pageWrap.getModel().getInviteId() != null,InviteRecord::getInviteId, pageWrap.getModel().getInviteId());
+ queryWrapper.eq(pageWrap.getModel().getMemberId() != null,InviteRecord::getMemberId, pageWrap.getModel().getMemberId());
+ queryWrapper.eq(pageWrap.getModel().getPhone() != null,InviteRecord::getPhone, pageWrap.getModel().getPhone());
+ queryWrapper.eq(pageWrap.getModel().getFirstOrderStatus() != null,InviteRecord::getFirstOrderStatus, pageWrap.getModel().getFirstOrderStatus());
+ if (pageWrap.getModel().getId() != null) {
+ queryWrapper.ge(InviteRecord::getFirstFinishDate, Utils.Date.getStart(pageWrap.getModel().getFirstFinishDate()));
+ queryWrapper.le(InviteRecord::getFirstFinishDate, Utils.Date.getEnd(pageWrap.getModel().getFirstFinishDate()));
+ }
+ queryWrapper.eq(pageWrap.getModel().getRewardIntegral() != null,InviteRecord::getRewardIntegral, pageWrap.getModel().getRewardIntegral());
+
+ queryWrapper.orderByDesc(InviteRecord::getCreateDate);
+ IPage<InviteRecord> result =inviteRecordMapper.selectPage(page, queryWrapper);
+ if(result!=null && result.getRecords()!=null){
+ for(InviteRecord model : result.getRecords()){
+ model.setMemberName(StringUtils.defaultString(model.getMemberNickname(),"")+" / "
+ +StringUtils.defaultString(model.getMemberName(),"-")+" / "
+ +StringUtils.defaultString(model.getMemberPhone(),"-"));
+ model.setRecName(StringUtils.defaultString(model.getRecNickname(),"")+" / "
+ +StringUtils.defaultString(model.getRecName(),"-")+" / "
+ +StringUtils.defaultString(model.getRecPhone(),"-"));
+ }
+ }
+ return PageData.from(result);
+ }
+
+ @Override
+ public long count(InviteRecord inviteRecord) {
+ QueryWrapper<InviteRecord> wrapper = new QueryWrapper<>(inviteRecord);
+ return inviteRecordMapper.selectCount(wrapper);
+ }
+
+
+
+
+}
--
Gitblit v1.9.3