From 585ff1cd29e9875f5f2a0fa2b0fdc876c5c6301f Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期一, 26 一月 2026 18:26:31 +0800
Subject: [PATCH] 小程序   接口开发

---
 server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java |  216 ++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 201 insertions(+), 15 deletions(-)

diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java
index 3778d0d..2072e72 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/NoticeServiceImpl.java
@@ -11,11 +11,10 @@
 import com.doumee.dao.business.NoticeMapper;
 import com.doumee.dao.business.join.MemberJoinMapper;
 import com.doumee.dao.business.join.NoticeJoinMapper;
-import com.doumee.dao.business.model.Member;
-import com.doumee.dao.business.model.Notice;
-import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.business.model.*;
 import com.doumee.dao.web.dto.NoticeCardDTO;
 import com.doumee.dao.system.model.SystemUser;
+import com.doumee.dao.web.request.CouponNoticeRequest;
 import com.doumee.service.business.NoticeService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -30,6 +29,8 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -216,24 +217,30 @@
 
     @Override
     public PageData<NoticeCardDTO> findNoticeCardDTOPage(PageWrap<Notice> pageWrap) {
-        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
         IPage<Notice> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         LambdaQueryWrapper<Notice> queryWrapper = new LambdaQueryWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        queryWrapper.eq(Notice::getType,pageWrap.getModel().getType())
-                    .eq(Notice::getObjMemberId,loginUserInfo.getMemberId());
+
+        Notice notice = pageWrap.getModel();
+
+        queryWrapper.ne(Objects.nonNull(notice.getQueryType())&&Constants.equalsInteger(notice.getQueryType(),Constants.ZERO),
+                        Notice::getObjType,Constants.TWO)
+                    .eq(Objects.nonNull(notice.getQueryType())&&Constants.equalsInteger(notice.getQueryType(),Constants.ONE),
+                        Notice::getObjType,Constants.TWO)
+                    .eq(Notice::getMemberId,notice.getMemberId())
+                .orderByAsc(Notice::getStatus)
+                .orderByDesc(Notice::getId)
+        ;
         IPage<Notice> noticeIPage = noticeMapper.selectPage(page, queryWrapper);
-
+        List<NoticeCardDTO> noticeCardDTOs = new ArrayList<>();
         if (CollectionUtils.isEmpty(noticeIPage.getRecords())){
-            return PageData.from(new Page<>());
+            noticeCardDTOs = noticeIPage.getRecords().stream().map(s -> {
+                NoticeCardDTO noticeCardDTO = new NoticeCardDTO();
+                BeanUtils.copyProperties(s, noticeCardDTO);
+                return noticeCardDTO;
+
+            }).collect(Collectors.toList());
         }
-        List<NoticeCardDTO> noticeCardDTOs = noticeIPage.getRecords().stream().map(s -> {
-            NoticeCardDTO noticeCardDTO = new NoticeCardDTO();
-            BeanUtils.copyProperties(s, noticeCardDTO);
-            return noticeCardDTO;
-
-        }).collect(Collectors.toList());
-
         PageData<NoticeCardDTO> pageData = new PageData<>();
         pageData.setPage(pageWrap.getPage());
         pageData.setCapacity(pageWrap.getCapacity());
@@ -242,4 +249,183 @@
         return pageData;
     }
 
+
+    /**
+     *
+     * @param type 0娑堣垂鑰咃紱1=缁忛攢鍟嗭紱
+     * @param objType 0鍟嗗煄璁㈠崟 1绉垎娴佹按 2浜掑姩璇勪环 3浼樻儬鍒�
+     *
+     */
+
+    public void saveNoticeInfo(Integer type,Integer objType,Integer memberId
+        ,String title,String content,Integer objId){
+        Notice notice = new Notice();
+        notice.setCreateDate(new Date());
+        notice.setIsdeleted(Constants.ZERO);
+        notice.setTitle(title);
+        notice.setContent(content);
+        notice.setType(type);
+        notice.setObjType(objType);
+        notice.setObjId(objId);
+        notice.setMemberId(memberId);
+        notice.setStatus(Constants.ZERO);
+        noticeMapper.insert(notice);
+    }
+
+
+    /**
+     * 绉垎鍙樺姩娑堟伅绫诲瀷
+     * @param integralObjType  绉垎鍙樺姩绫诲瀷
+     * @param memberId 鐢ㄦ埛涓婚敭/鍟嗘埛涓婚敭
+     * @param integral 鍙樺姩绉垎/鐜伴噾鍊�
+     * @param objId 鍏宠仈瀵硅薄涓婚敭 - 绉垎娴佹按鍙樺姩璁板綍涓婚敭
+     * @param param1 param2
+     */
+    @Override
+    public void saveMemberIntegralNotice(Constants.IntegralObjType integralObjType,Integer type,
+                                         Integer memberId,
+                                         BigDecimal integral,
+                                         Integer objId,String param1){
+        String title = integralObjType.getName();
+        String info = integralObjType.getNoteinfo();
+        info = info.replace("${param}",integral.toString()).replace("${param1}",param1);
+        this.saveNoticeInfo(
+                type,
+                Constants.ONE,
+                memberId,
+                title,
+                info,
+                objId
+        );
+    }
+
+    /**
+     * 鍙戞斁浼樻儬鍒� 绔欏唴淇�
+     * @param memberId
+     * @param couponList
+     */
+    @Override
+    public void couponNotice(Integer memberId,List<CouponNoticeRequest> couponList){
+        String noticeInfo = "鎭枩鎮ㄨ幏寰�${param}";
+        //鎭枩鎮ㄨ幏寰� 婊�50鍑�10鎶垫墸鍒�
+        String replaceInfo = "";
+        //鏁寸悊浼樻儬鍒稿唴瀹�
+        for (CouponNoticeRequest c:couponList) {
+            MemberCoupon mc = c.getMemberCoupon();
+            String info = Constants.equalsInteger(mc.getCouponType(),Constants.ZERO)?
+                    "婊�"+mc.getLimitPrice()+"鍏冨噺"+mc.getPrice()+"鍏冩姷鎵e埜*"+c.getNum():
+                    "婊�"+mc.getLimitPrice()+"鍏冧韩"+mc.getPrice()+"鎶樺埜";
+            replaceInfo = replaceInfo + (StringUtils.isBlank(replaceInfo)?
+                    info:","+info);
+        }
+        noticeInfo.replace("${param}",replaceInfo);
+
+        this.saveNoticeInfo(
+                Constants.ZERO,
+                Constants.ONE,
+                memberId,
+                "鑾峰緱绯荤粺鍙戞斁鐨勪紭鎯犲埜",
+                noticeInfo,
+                null
+        );
+    }
+
+
+    /**
+     * 绉垎杩囨湡 绔欏唴娑堟伅
+     * @param memberId
+     * @param integral
+     * @param expireDateNum
+     */
+    @Override
+    public void expireNotice(Integer memberId, BigDecimal integral,Integer expireDateNum){
+        //鎮ㄦ湁1000绉垎30澶╁悗杩囨湡锛岃灏藉揩浣跨敤
+        String noticeInfo = "鎮ㄦ湁${param}绉垎鍗冲皢杩囨湡锛岃灏藉揩浣跨敤";
+        if(integral.compareTo(BigDecimal.ZERO)<=Constants.ZERO){
+            return;
+        }
+        noticeInfo.replace("${param}",integral.toString());
+        this.saveNoticeInfo(
+                Constants.ZERO,
+                Constants.ONE,
+                memberId,
+                "鎮ㄧ殑绉垎灏嗗湪"+expireDateNum+"澶╁悗娓呯┖锛岃灏藉揩浣跨敤",
+                noticeInfo,
+                null
+        );
+    }
+
+
+    /**
+     * 璇勮娑堟伅 绔欏唴淇�
+     * @param memberId
+     * @param objId
+     * @param memberName
+     */
+    @Override
+    public void commonNotice(Integer memberId, Integer objId,String memberName ){
+        //鎮ㄦ湁1000绉垎30澶╁悗杩囨湡锛岃灏藉揩浣跨敤
+        String noticeInfo = "${param}鍥炲浜嗘偍鐨勮瘎璁�";
+        noticeInfo.replace("${param}",memberName);
+        this.saveNoticeInfo(
+                Constants.ZERO,
+                Constants.TWO,
+                memberId,
+                noticeInfo,
+                noticeInfo,
+                objId
+        );
+    }
+
+    /**
+     * 璁㈠崟鏀粯鎴愬姛 鍙戦�佹秷鎭�
+     * @param shopId
+     * @param objId
+     * @param receiveType
+     */
+    @Override
+    public void orderPayNotice(Integer shopId, Integer objId,Integer receiveType){
+        if(Constants.equalsInteger(receiveType,Constants.ZERO)){
+            return;
+        }
+        //鎮ㄦ湁鏂扮殑銆愬彂璐ф柟寮忋�戣鍗曞緟澶勭悊
+        String noticeInfo = "鎮ㄦ湁鏂扮殑${param}璁㈠崟寰呭鐞�";
+        noticeInfo.replace("${param}",Constants.equalsInteger(receiveType,Constants.ZERO)?"鐗╂祦鍙戣揣":"闂ㄥ簵鑷彁");
+        this.saveNoticeInfo(
+                Constants.ONE,
+                Constants.ZERO,
+                shopId,
+                noticeInfo,
+                noticeInfo,
+                objId
+        );
+    }
+
+
+    /**
+     * 璁㈠崟鍙栨秷 鍙戦�佺珯鍐呬俊
+     * @param shopId
+     * @param objId
+     * @param orderNo
+     */
+    @Override
+    public void orderCancelNotice(Integer shopId, Integer objId,String orderNo){
+        // 鎮ㄧ殑璁㈠崟{璁㈠崟鍙穧锛屽凡鐢卞鎴锋墜鍔ㄥ彇娑堬紝璇风煡鎮�
+        String noticeInfo = " 鎮ㄧ殑璁㈠崟${param}锛屽凡鐢卞鎴锋墜鍔ㄥ彇娑堬紝璇风煡鎮�";
+        noticeInfo.replace("${param}",orderNo);
+        this.saveNoticeInfo(
+                Constants.ONE,
+                Constants.ZERO,
+                shopId,
+                noticeInfo,
+                noticeInfo,
+                objId
+        );
+    }
+
+
+
+
+
+
 }

--
Gitblit v1.9.3