From 2cfceadff437135a255990ab9698788a48adb636 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期二, 16 十二月 2025 09:54:00 +0800
Subject: [PATCH] 小程序 用户端接口开发
---
server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java | 3
server/dmmall_service/src/main/java/com/doumee/service/business/MemberCouponService.java | 10
server/dmmall_service/src/main/java/com/doumee/dao/web/dto/CouponDTO.java | 14
server/dmmall_service/src/main/java/com/doumee/dao/web/response/HomeInfoResponse.java | 36 ++
server/dmmall_web/src/main/java/com/doumee/api/web/mall/PaymentCallback.java | 4
server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java | 2
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 77 ++++
server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java | 12
server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java | 23 +
server/dmmall_service/src/main/java/com/doumee/dao/web/response/MemberCouponResponse.java | 85 +++++
server/dmmall_service/src/main/java/com/doumee/dao/web/request/UpdMobileRequest.java | 29 +
server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java | 4
server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java | 10
server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java | 36 ++
server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/MemberOrderResponse.java | 24 +
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java | 3
server/dmmall_web/src/main/java/com/doumee/api/web/mall/HomeApi.java | 70 ++++
server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java | 25 +
server/dmmall_service/src/main/java/com/doumee/dao/business/model/Integral.java | 28
server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java | 9
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 266 +++++++++++++++
server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java | 45 ++
server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/DealOrderRequest.java | 4
server/dmmall_service/src/main/java/com/doumee/core/constants/ResponseStatus.java | 2
server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderDetailMapper.java | 3
server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderMapper.java | 12
server/dmmall_service/src/main/java/com/doumee/dao/web/request/OrderCancelRequest.java | 26 +
server/dmmall_service/src/main/java/com/doumee/dao/business/model/ShopGoodsRelation.java | 5
server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/MemberOrderRequest.java | 2
server/dmmall_web/src/main/java/com/doumee/api/web/mall/OrderApi.java | 61 +++
30 files changed, 868 insertions(+), 62 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/core/constants/ResponseStatus.java b/server/dmmall_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
index b686a17..c60c7be 100644
--- a/server/dmmall_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
+++ b/server/dmmall_service/src/main/java/com/doumee/core/constants/ResponseStatus.java
@@ -13,7 +13,7 @@
public enum ResponseStatus {
// 400寮�澶磋〃绀哄弬鏁伴敊璇�
BAD_REQUEST(4000, "鍙傛暟閿欒"),
- DATA_EMPTY(4001, "鎵句笉鍒扮洰鏍囨暟鎹�"),
+ DATA_EMPTY(4001, "鎵句笉鍒扮洰鏍囨暟鎹垨鏁版嵁宸插垹闄�"),
DATA_EXISTS(4002, "璁板綍宸插瓨鍦�"),
PWD_INCORRECT(4003, "瀵嗙爜涓嶆纭�"),
VERIFICATION_CODE_INCORRECT(4004, "楠岃瘉鐮佷笉姝g‘鎴栧凡杩囨湡"),
diff --git a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
index ccd5f1d..22dd131 100644
--- a/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmmall_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -562,8 +562,8 @@
*/
public enum OrderStatus{
WAIT_PAY(0, "寰呮敮浠�", "寰呮敮浠�"),
- PAY_DONE(1, "寰呭彂璐�", "宸叉敮浠樺緟鍙戣揣"),
- WAIT_RECEIVE(2, "寰呮敹璐�/寰呰嚜鎻�", "宸插彂璐у緟鏀惰揣/寰呰嚜鎻�"),
+ PAY_DONE(1, "寰呭彂璐�/寰呰嚜鎻�", "宸叉敮浠樺緟鍙戣揣/寰呰嚜鎻�"),
+ WAIT_RECEIVE(2, "寰呮敹璐�", "宸插彂璐у緟鏀惰揣"),
DONE(3, "浜ゆ槗瀹屾垚", "浜ゆ槗瀹屾垚"),
CLOSE(4, "宸插叧闂�", "宸插叧闂�"),
PART_DONE(5, "閮ㄥ垎鍙戣揣", "閮ㄥ垎鍙戣揣"),
@@ -838,7 +838,10 @@
EXCHANGE_CARD(11,"鍗″厖鍊�","鍗″厖鍊�",0),
SYSTEM_RECHARGE(12,"骞冲彴鍏呭��","骞冲彴鍏呭��",0),
SYSTEM_DEDUCT(13,"骞冲彴鎵f","骞冲彴鎵f",0),
- SHOP_ORDER_CANCEL(14,"浣欓鎶垫墸鍟嗗搧閫�杩�","浣欓鎶垫墸鍟嗗搧閫�杩�",0)
+ SHOP_ORDER_CANCEL(14,"浣欓鎶垫墸鍟嗗搧閫�杩�","浣欓鎶垫墸鍟嗗搧閫�杩�",0),
+ SHOP_ORDER_SETTLEMENT(15,"涓嬪崟缁撶畻閲戦","涓嬪崟缁撶畻閲戦",0), //缁忛攢鍟嗕笅鍗曠粨绠楅噾棰�
+ SHOP_ORDER_CANCEL_SETTLEMENT(16,"鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕","鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕",0), //鍙栨秷璁㈠崟缁撶畻閲戦杩旇繕
+ SHOP_YEAR_SETTLEMENT(17,"骞村害缁撶畻","骞村害缁撶畻",0) //骞村害缁撶畻
;
// 鎴愬憳鍙橀噺
private String name;
@@ -1111,7 +1114,6 @@
this.type = type;
}
}
-
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderDetailMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderDetailMapper.java
index 809261b..2c27f57 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderDetailMapper.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderDetailMapper.java
@@ -8,6 +8,7 @@
import com.doumee.dao.web.response.OrderCommentResponse;
import com.doumee.dao.web.response.OrderDetailResponse;
import com.doumee.dao.web.response.goods.MemberOrderDetailResponse;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -17,7 +18,7 @@
* @author 姹熻箘韫�
* @date 2023/03/21 15:48
*/
-public interface GoodsorderDetailMapper extends BaseMapper<GoodsorderDetail> {
+public interface GoodsorderDetailMapper extends MPJJoinMapper<GoodsorderDetail> {
@Select(" select o.* , g.STATUS , g.PRICE as titlePrice " +
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
index e7745fe..af4c3a6 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/GoodsorderMapper.java
@@ -23,18 +23,18 @@
@Select(" select g.CODE AS code , g.id as orderId , g.CREATE_DATE as createDate , g.TYPE as orderType , g.STATUS as orderStatus , g.IS_COMMENT as isComment , g.PAY_STATUS as payStatus ," +
" g.COUPON_PRICE as couponPrice , g.price , g.LINKNAME as linkName , g.LINKPHONE as linkPhone , g.LINKADDR as linkAddress , " +
- "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " +
- " , g.MEMBER_INFO " +
- " from goodsorder g " +
+ "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.INTEGRAL_PRICE as integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " +
+ " , g.MEMBER_INFO , g.RECEIVE_TYPE as receiveType, s.name as shopName ,s.id as shopId ,g.exchange_code as exchangeCode " +
+ " from goodsorder g left join shop s on g.PICK_UP_SHOP_ID = s.id " +
" ${ew.customSqlSegment} ")
IPage<MemberOrderResponse> goodsOrderPage(IPage<MemberOrderResponse> page, @Param(Constants.WRAPPER) Wrapper wrapper);
@Select(" select g.CODE AS code , g.id as orderId , g.CREATE_DATE as createDate , g.TYPE as orderType , g.STATUS as orderStatus , g.IS_COMMENT as isComment , g.PAY_STATUS as payStatus ," +
" g.COUPON_PRICE as couponPrice , g.price , g.LINKNAME as linkName , g.LINKPHONE as linkPhone , g.LINKADDR as linkAddress , " +
- "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " +
- " , g.MEMBER_INFO " +
- " from goodsorder g " +
+ "g.KD_DATE as kdDate , g.KD_NAME as kdName , g.KD_CODE as kdCode , g.INTEGRAL_PRICE as integral , SUBDATE(g.CREATE_DATE,interval - 15 minute) as cancelDate , g.PAY_DATE AS payDate , g.DONE_DATE as doneDate " +
+ " , g.MEMBER_INFO , g.RECEIVE_TYPE as receiveType, s.name as shopName ,s.id as shopId,g.exchange_code as exchangeCode " +
+ " from goodsorder g left join shop s on g.PICK_UP_SHOP_ID = s.id " +
" where g.id = #{id} ")
MemberOrderResponse goodsOrderDetail(@Param("id") Integer id);
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java
index 7d8b794..f607b6e 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/MemberCouponMapper.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.doumee.dao.business.model.MemberCoupon;
import com.doumee.dao.web.dto.CouponDTO;
+import com.doumee.dao.web.response.MemberCouponResponse;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -19,7 +20,6 @@
@Select(" select m.* " +
" from member_coupon m " +
" ${ew.customSqlSegment} ")
- IPage<CouponDTO> memberCouponPage(IPage<CouponDTO> page, @Param(Constants.WRAPPER) Wrapper wrapper);
-
+ IPage<MemberCouponResponse> memberCouponPage(IPage<CouponDTO> page, @Param(Constants.WRAPPER) Wrapper wrapper);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
index 5c90105..4bcd2be 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/ShopMapper.java
@@ -2,6 +2,10 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doumee.dao.business.model.Shop;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.math.BigDecimal;
/**
* @author 姹熻箘韫�
@@ -9,4 +13,23 @@
*/
public interface ShopMapper extends BaseMapper<Shop> {
+
+ /**
+ * 娣诲姞绉垎
+ * @param memberId
+ * @param integral
+ */
+ @Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) + #{integral} , TOTAL_INTEGRAL = ifNull(TOTAL_INTEGRAL,0) + #{titleIntegral} , EDIT_DATE = now() where id = #{shopId} ")
+ void addIntegral(@Param("shopId") Integer shopId , @Param("integral") BigDecimal integral , @Param("titleIntegral")BigDecimal titleIntegral);
+
+ /**
+ * 鍑忓皯绉垎
+ * @param memberId
+ * @param integral
+ */
+ @Select(" update shop set INTEGRAL = ifNull( INTEGRAL,0) - #{integral} , EDIT_DATE = now() where id = #{shopId} ")
+ void subtractIntegral(@Param("shopId") Integer shopId , @Param("integral")BigDecimal integral);
+
+
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
index d7f80f7..9005c29 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Goodsorder.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
@@ -196,6 +197,8 @@
@ApiModelProperty(value = "鍒嗛攢鍟嗛摵涓婚敭 shop锛歩d", example = "1")
private Integer distributionShopId;
+ @ApiModelProperty(value = "鏍搁攢鐮�", example = "1")
+ private String exchangeCode;
@ApiModelProperty(value = "鏂囦欢鍦板潃")
@TableField(exist = false)
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
index 3e449da..d1db85a 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/GoodsorderDetail.java
@@ -98,6 +98,8 @@
@ApiModelProperty(value = "绉垎鎶垫墸閲戦", example = "1")
private BigDecimal integralDeduct;
+ @ApiModelProperty(value = "缁忛攢鍟嗙粨绠楅噾棰�", example = "1")
+ private BigDecimal shopSettlement;
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Integral.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Integral.java
index 6044b72..e770a0e 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Integral.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/Integral.java
@@ -77,6 +77,8 @@
@ApiModelProperty(value = "浜ゆ槗鍗曞彿")
private String orderCode;
+ @ApiModelProperty(value = "鐢ㄦ埛绫诲瀷锛�0=娑堣垂鑰咃紱1=缁忛攢鍟嗭紱")
+ private Integer userType;
@ApiModelProperty(value = "鐢ㄦ埛鏄电О")
@ExcelColumn(name="鐢ㄦ埛",index =1,width = 10)
@@ -111,18 +113,18 @@
- public static Integral createIntegral(Integer memberId, Constants.INTEGRAL_TYPE integralType,Integer objId){
- Integral integral = new Integral();
- integral.setCreator(memberId);
- integral.setCreateDate(new Date());
- integral.setIsdeleted(Constants.ZERO);
- integral.setMemberId(memberId);
- integral.setTitle(integralType.getName());
- integral.setObjId(objId);
- integral.setObjType(integralType.getKey());
- integral.setType(integralType.getType());
-
- return integral;
- }
+// public static Integral createIntegral(Integer memberId, Constants.INTEGRAL_TYPE integralType,Integer objId){
+// Integral integral = new Integral();
+// integral.setCreator(memberId);
+// integral.setCreateDate(new Date());
+// integral.setIsdeleted(Constants.ZERO);
+// integral.setMemberId(memberId);
+// integral.setTitle(integralType.getName());
+// integral.setObjId(objId);
+// integral.setObjType(integralType.getKey());
+// integral.setType(integralType.getType());
+//
+// return integral;
+// }
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/ShopGoodsRelation.java b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/ShopGoodsRelation.java
index cf373ba..593640d 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/business/model/ShopGoodsRelation.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/business/model/ShopGoodsRelation.java
@@ -64,4 +64,9 @@
@ExcelColumn(name="渚涜揣浠�")
private BigDecimal price;
+ @ApiModelProperty(value = "鍚敤0 绂佺敤1", example = "1")
+ @ExcelColumn(name="鍚敤0 绂佺敤1")
+ private Integer status;
+
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/dto/CouponDTO.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/dto/CouponDTO.java
index 5289837..158db3f 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/dto/CouponDTO.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/dto/CouponDTO.java
@@ -66,4 +66,18 @@
@ApiModelProperty(value = "浼樻儬鍒哥姸鎬�")
private String couponStatus;
+
+ @ApiModelProperty(value = "浼樻儬鍒哥被鍨嬶細0=婊″噺鍒革紱1=鎶樻墸鍒革紱")
+ private Integer couponType;
+
+ @ApiModelProperty(value = "閫傜敤绫诲瀷锛�0=鍏ㄥ満;1=鍝佺被锛�2=鎸囧畾鍟嗗搧")
+ private Integer applyType;
+
+ @ApiModelProperty(value = "閫傜敤鍏宠仈瀵硅薄淇℃伅涓婚敭")
+ private String applyIds;
+
+ @ApiModelProperty(value = "鎶樻墸鍗锋弧鍑忎笂闄愰噾棰�")
+ private BigDecimal maxPrice;
+
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java
index c10c574..fdf20f0 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/DealIntegralRequest.java
@@ -34,4 +34,7 @@
@ApiModelProperty(value = "鏀舵敮绫诲瀷 0鏀跺叆 1鏀嚭")
private Integer dealType;
+
+
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/OrderCancelRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/OrderCancelRequest.java
new file mode 100644
index 0000000..64a77cd
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/OrderCancelRequest.java
@@ -0,0 +1,26 @@
+package com.doumee.dao.web.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/3/23 9:50
+ */
+@Data
+@ApiModel("璁㈠崟鍙栨秷璇锋眰绫�")
+public class OrderCancelRequest {
+
+ @ApiModelProperty(value = "璁㈠崟涓婚敭",example = "0")
+ private Integer orderId;
+
+ @ApiModelProperty(value = "鍙栨秷鍘熷洜")
+ private String cancelInfo;
+
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭",hidden = true)
+ private Integer memberId;
+
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/UpdMobileRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/UpdMobileRequest.java
new file mode 100644
index 0000000..9933a0f
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/UpdMobileRequest.java
@@ -0,0 +1,29 @@
+package com.doumee.dao.web.request;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/3/23 9:50
+ */
+@Data
+@ApiModel("鎵嬫満鎹㈢粦璇锋眰绫�")
+public class UpdMobileRequest {
+
+ @ApiModelProperty(value = "楠岃瘉鐮�",example = "0")
+ private String code;
+
+ @ApiModelProperty(value = "鎵嬫満鍙�")
+ private String phone;
+
+ @ApiModelProperty(value = "鐢ㄦ埛涓婚敭",hidden = true)
+ private Integer memberId;
+
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/DealOrderRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/DealOrderRequest.java
index 90a98fc..5cd8442 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/DealOrderRequest.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/DealOrderRequest.java
@@ -17,6 +17,9 @@
@ApiModelProperty(value = "璁㈠崟涓婚敭")
private Integer orderId;
+ @ApiModelProperty(value = "璁㈠崟鏍搁攢鐮�")
+ private String exchangeCode;
+
@ApiModelProperty(value = "鏀惰揣鍦板潃涓婚敭锛堟洿鏂拌鍗曟敹璐у湴鍧�浣跨敤锛�")
private Integer addressId;
@@ -26,6 +29,7 @@
@ApiModelProperty(value = "璁㈠崟璇勪环淇℃伅锛堣鍗曡瘎浠蜂笟鍔′娇鐢級")
private String commentInfo;
+ @ApiModelProperty(hidden = true)
private Integer memberId;
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/MemberOrderRequest.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/MemberOrderRequest.java
index 6954c38..9ab2647 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/MemberOrderRequest.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/request/goods/MemberOrderRequest.java
@@ -23,7 +23,7 @@
@ApiModelProperty(value = "璁㈠崟绫诲瀷 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄", example = "1")
private Integer orderType;
- @ApiModelProperty(value = "鐘舵�� 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚", example = "1")
+ @ApiModelProperty(value = "鐘舵�� 0寰呮敮浠� 1寰呭彂璐�/鑷彁 2寰呮敹璐� 3浜ゆ槗瀹屾垚", example = "1")
private Integer orderStatus;
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/HomeInfoResponse.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/HomeInfoResponse.java
new file mode 100644
index 0000000..0b43aa3
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/HomeInfoResponse.java
@@ -0,0 +1,36 @@
+package com.doumee.dao.web.response;
+
+import com.doumee.dao.business.model.Member;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.math3.analysis.function.Log;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/12/15 14:46
+ */
+@Data
+public class HomeInfoResponse {
+
+ @ApiModelProperty(value = "鐢ㄦ埛淇℃伅")
+ private Member member;
+
+ @ApiModelProperty(value = "璐墿杞﹀晢鍝佺绫�")
+ private Long cartTypeNum;
+
+ @ApiModelProperty(value = "浼樻儬鍒告暟閲�")
+ private Long couponNum;
+
+ @ApiModelProperty(value = "鏀惰棌鏁伴噺")
+ private Long collectNum;
+
+ @ApiModelProperty(value = "寰呬粯娆炬暟閲�")
+ private Long waitPayNum;
+
+ @ApiModelProperty(value = "寰呮敹璐ф暟閲�")
+ private Long waitReceiveNum;
+
+
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/MemberCouponResponse.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/MemberCouponResponse.java
new file mode 100644
index 0000000..95c8fad
--- /dev/null
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/MemberCouponResponse.java
@@ -0,0 +1,85 @@
+package com.doumee.dao.web.response;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel("鐢ㄦ埛浼樻儬鍒镐俊鎭�")
+public class MemberCouponResponse {
+
+
+ @ApiModelProperty(value = "id")
+ private Integer id;
+
+ @ApiModelProperty(value = "浼樻儬鍒稿悕绉�")
+ private String name;
+
+ @ApiModelProperty(value = "澶囨敞")
+ private String remark;
+
+ @ApiModelProperty(value = "鍟嗗缂栫爜锛堝叧鑱攕hop琛級")
+ private Integer shopId;
+
+ @ApiModelProperty(value = "绫诲瀷0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒� ")
+ private Integer type;
+
+ @ApiModelProperty(value = "婊¢锛堝厓锛�")
+ private BigDecimal limitPrice;
+
+ @ApiModelProperty(value = "浼樻儬閲戦锛堝厓锛�")
+ private BigDecimal price;
+
+ @ApiModelProperty(value = "寮�濮嬫椂闂�")
+ private Date startDate;
+
+ @ApiModelProperty(value = "缁撴潫鏃堕棿")
+ private Date endDate;
+
+ @ApiModelProperty(value = "棰嗗彇鍚庢湁鏁堝ぉ鏁�")
+ private Integer validDays;
+
+ @ApiModelProperty(value = "棰嗗彇鏂瑰紡 0棰嗗彇 1鍏戞崲")
+ private Integer getMethod;
+
+ @ApiModelProperty(value = "鍏戞崲鎵�闇�鍜栬眴閲戦")
+ private BigDecimal integral;
+
+ @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤")
+ private Integer status;
+
+ @ApiModelProperty(value = "鍙戞斁鎬婚噺")
+ private Integer num;
+
+ @ApiModelProperty(value = "棰嗗彇鎬婚噺")
+ private Integer drawNum;
+
+ @ApiModelProperty(value = "璇存槑")
+ private String info;
+
+ @ApiModelProperty(value = "棰嗗彇鐘舵�� ")
+ private String drawStatus;
+
+ @ApiModelProperty(value = "浼樻儬鍒哥姸鎬�")
+ private String couponStatus;
+
+ @ApiModelProperty(value = "浼樻儬鍒哥被鍨嬶細0=婊″噺鍒革紱1=鎶樻墸鍒革紱")
+ private Integer couponType;
+
+ @ApiModelProperty(value = "閫傜敤绫诲瀷锛�0=鍏ㄥ満;1=鍝佺被锛�2=鎸囧畾鍟嗗搧")
+ private Integer applyType;
+
+ @ApiModelProperty(value = "閫傜敤鍏宠仈瀵硅薄淇℃伅涓婚敭")
+ private String applyIds;
+
+ @ApiModelProperty(value = "鎶樻墸鍗锋弧鍑忎笂闄愰噾棰�")
+ private BigDecimal maxPrice;
+
+ @ApiModelProperty(value = "閫傜敤鍏宠仈瀵硅薄淇℃伅")
+ private List<String> relationInfoList;
+
+}
diff --git a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/MemberOrderResponse.java b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/MemberOrderResponse.java
index 964a733..efb7ddb 100644
--- a/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/MemberOrderResponse.java
+++ b/server/dmmall_service/src/main/java/com/doumee/dao/web/response/goods/MemberOrderResponse.java
@@ -1,5 +1,7 @@
package com.doumee.dao.web.response.goods;
+import com.doumee.dao.business.model.MemberCoupon;
+import com.doumee.dao.business.model.Shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -33,7 +35,16 @@
@ApiModelProperty(value = "璁㈠崟绫诲瀷 0骞冲彴鍟嗗煄 1鍜栬眴鍟嗗煄 2鍜栧暋璁″垝缂栫爜", example = "1")
private Integer orderType;
- @ApiModelProperty(value = "鐘舵�� 0寰呮敮浠� 1寰呭彂璐� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣", example = "1")
+ @ApiModelProperty(value = "鏀惰揣绫诲瀷锛�0=蹇�掗厤閫侊紱1=闂ㄥ簵鑷彁锛�", example = "1")
+ private Integer receiveType;
+
+ @ApiModelProperty(value = "鑷彁缁忛攢鍟嗕富閿�", example = "1")
+ private Integer shopId;
+
+ @ApiModelProperty(value = "缁忛攢鍟嗗悕绉�", example = "1")
+ private String shopName;
+
+ @ApiModelProperty(value = "鐘舵�� 0寰呮敮浠� 1寰呭彂璐�/寰呰嚜鎻� 2寰呮敹璐� 3浜ゆ槗瀹屾垚 4宸插叧闂� 5閮ㄥ垎鍙戣揣", example = "1")
private Integer orderStatus;
@ApiModelProperty(value = "鏄惁宸茶瘎浠� 0鏈瘎浠� 1宸茶瘎浠�", example = "1")
@@ -72,6 +83,8 @@
@ApiModelProperty(value = "瀹屾垚鏃堕棿", example = "1")
private Date doneDate;
+ @ApiModelProperty(value = "鏍搁攢鐮�", example = "1")
+ private String exchangeCode;
@ApiModelProperty(value = "鎶垫墸閲戦", example = "1")
private BigDecimal integral;
@@ -86,4 +99,13 @@
@ApiModelProperty(value = "璁㈠崟鏄庣粏淇℃伅", example = "1")
private List<MemberOrderDetailResponse> memberOrderDetailResponseList;
+
+ @ApiModelProperty(value = "缁忛攢鍟嗕俊鎭�", example = "1")
+ private Shop shopInfo;
+
+ @ApiModelProperty(value = "浼樻儬鍒镐俊鎭�", example = "1")
+ private MemberCoupon memberCoupon;
+
+
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java
index aafeadc..5426d39 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -5,14 +5,18 @@
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.model.Shop;
+import com.doumee.dao.web.request.OrderCancelRequest;
import com.doumee.dao.web.request.OrderPayRequest;
import com.doumee.dao.web.request.PayDetailRequest;
+import com.doumee.dao.web.request.ShopOrderPayRequest;
import com.doumee.dao.web.request.goods.DealOrderRequest;
import com.doumee.dao.web.request.goods.MemberOrderRequest;
import com.doumee.dao.web.request.goods.OrderCommentRequest;
+import com.doumee.dao.web.response.HomeInfoResponse;
import com.doumee.dao.web.response.MyPageResponse;
import com.doumee.dao.web.response.goods.MemberOrderResponse;
import com.doumee.dao.web.response.goods.PayResponse;
+import com.doumee.service.business.impl.MemberCouponServiceImpl;
import java.math.BigDecimal;
import java.util.List;
@@ -123,7 +127,7 @@
* @param orderPayRequest
* @return
*/
- PayResponse orderPay(OrderPayRequest orderPayRequest);
+ PayResponse orderPay(ShopOrderPayRequest orderPayRequest, MemberCouponServiceImpl memberCouponService);
/**
* 閲嶆柊鏀粯
@@ -147,13 +151,20 @@
void updAddress(DealOrderRequest updAddressRequest);
/**
- * 鍙栨秷璁㈠崟
+ * 鍙栨秷璁㈠崟 - 鍘嗗彶鐗堟湰
* @param orderId
* @param optUserId
* @param cancelInfo
*/
void cancelOrder(Integer orderId,Integer optUserId,String cancelInfo);
+ /**
+ * 璁㈠崟鍙栨秷 - 鏂�
+ * @param orderId
+ * @param optUserId
+ * @param cancelInfo
+ */
+ void cancelOrderNew(Integer orderId,Integer optUserId,String cancelInfo);
/**
* 鍌彂璐�
@@ -170,6 +181,14 @@
*/
void affirmOrder(Integer orderId,Integer memberId);
+ void orderWriteOff(String exchangeCode,Integer memberId);
+
+ /**
+ * 璁㈠崟鍒犻櫎
+ * @param orderId
+ * @param memberId
+ */
+ void delOrder(Integer orderId,Integer memberId);
/**
* 璁㈠崟璇︽儏
@@ -202,4 +221,6 @@
void resetOrderCodes();
void refreshOrderCodes();
+
+ HomeInfoResponse getHomeInfo(int memberId);
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
index 443fc8d..cf58289 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/IntegralService.java
@@ -115,10 +115,17 @@
*/
PageData<IntegralDTO> findIntegralDTOPage(PageWrap<IntegralDTO> pageWrap,Integer memberId);
/**
- * 鏇存柊绉垎淇℃伅
+ * 鏇存柊娑堣垂鑰呯Н鍒�
* @param dealIntegralRequest 瀹炰綋瀵硅薄
* @return Integer
*/
Integer dealIntegral(DealIntegralRequest dealIntegralRequest);
+ /**
+ * 鏇存柊缁忛攢鍟嗕綑棰�
+ * @param dealIntegralRequest
+ * @return
+ */
+ Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest);
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/MemberCouponService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/MemberCouponService.java
index 80e3418..82cbb63 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/MemberCouponService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/MemberCouponService.java
@@ -7,6 +7,7 @@
import com.doumee.dao.web.dto.CouponDTO;
import com.doumee.dao.web.dto.MemberCouponDTO;
import com.doumee.dao.web.request.PayDetailRequest;
+import com.doumee.dao.web.response.MemberCouponResponse;
import java.math.BigDecimal;
import java.util.List;
@@ -111,9 +112,14 @@
* @param couponType
* @return
*/
- IPage<CouponDTO> memberCouponPage(IPage pages, BigDecimal price, Integer memberId, Integer couponType);
+ IPage<MemberCouponResponse> memberCouponPage(IPage pages, BigDecimal price, Integer memberId, Integer couponType, Integer status);
-
+ /**
+ * 浼氬憳浼樻儬鍒歌鎯�
+ * @param id
+ * @return
+ */
+ MemberCouponResponse getMemberCouponDetail(Integer id);
/**
* 鍙敤浼樻儬鍒告暟閲�
* @param price
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java b/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java
index ed01544..74b10eb 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -7,6 +7,7 @@
import com.doumee.dao.system.dto.MemberRechargeDTO;
import com.doumee.dao.web.dto.MemberOwnDTO;
import com.doumee.dao.web.dto.shop.Position;
+import com.doumee.dao.web.request.UpdMobileRequest;
import com.doumee.dao.web.request.UpdateMemberRequest;
import com.doumee.dao.web.request.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
@@ -144,8 +145,17 @@
*/
Member updateMember(UpdateMemberRequest updateMemberRequest);
+ /**
+ * 楠岃瘉鎵嬫満鍙�
+ * @param request
+ */
+ void verifyUserPhone(UpdMobileRequest request);
-
+ /**
+ * 鎹㈢粦鎵嬫満鍙�
+ * @param request
+ */
+ void updateUserPhone(UpdMobileRequest request);
MemberOwnDTO getMemberOwnDTO(Integer memberId);
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index c026e4b..c5e1955 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -20,14 +20,12 @@
import com.doumee.dao.business.join.PlanorderDetailJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.web.dto.CouponDTO;
-import com.doumee.dao.web.request.DealIntegralRequest;
-import com.doumee.dao.web.request.OrderPayRequest;
-import com.doumee.dao.web.request.PayDetailRequest;
-import com.doumee.dao.web.request.ShopOrderPayRequest;
+import com.doumee.dao.web.request.*;
import com.doumee.dao.web.request.goods.MemberOrderRequest;
import com.doumee.dao.web.request.goods.DealOrderRequest;
import com.doumee.dao.web.request.goods.OrderCommentRequest;
import com.doumee.dao.web.request.goods.OrderGoodsCommentRequest;
+import com.doumee.dao.web.response.HomeInfoResponse;
import com.doumee.dao.web.response.MyPageResponse;
import com.doumee.dao.web.response.goods.*;
import com.doumee.service.business.AreasService;
@@ -78,7 +76,8 @@
private ActivitySignMapper activitySignMapper;
@Autowired
private AftersaleMapper aftersaleMapper;
-
+ @Autowired
+ private ShopGoodsRelationMapper shopGoodsRelationMapper;
@Autowired
private MemberMapper memberMapper;
@@ -98,7 +97,13 @@
private ShopMapper shopMapper;
@Autowired
+ private ShopGoodsRelationMapper relationMapper;
+
+ @Autowired
private MemberCouponMapper memberCouponMapper;
+
+ @Autowired
+ private CollectMapper collectMapper;
@Autowired
private WxMiniUtilService wxMiniUtilService;
@@ -529,7 +534,6 @@
/****************************************绉诲姩绔帴鍙e紑濮�********************************************************************/
- @Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public PayResponse orderPay(OrderPayRequest orderPayRequest){
Member member = memberMapper.selectById(orderPayRequest.getMemberId());
@@ -710,6 +714,7 @@
+ @Override
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public PayResponse orderPay(ShopOrderPayRequest orderPayRequest,MemberCouponServiceImpl memberCouponService){
Member member = memberMapper.selectById(orderPayRequest.getMemberId());
@@ -750,7 +755,6 @@
if(Objects.isNull(shop)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"璇烽�夋嫨姝g‘鐨勮嚜鎻愰棬搴楋紒");
}
- //鍒ゆ柇闂ㄥ簵鏄惁璁剧疆鍟嗗搧鐨勪环鏍间俊鎭�
//鏍规嵁閫夋嫨鍟嗘埛杩涜浼氬憳涓庡晢鎴蜂俊鎭粦瀹�
@@ -760,7 +764,6 @@
.eq(Member::getId,member.getId())
);
}
-
goodsorder.setPickUpShopId(shop.getId());
goodsorder.setDistributionShopId(shop.getId());
if(Objects.isNull(member.getBindShopId())){
@@ -780,6 +783,7 @@
goodsorder.setPrice(orderPayConfirmResponse.getPayAmount());
goodsorder.setTotalPrice(orderPayConfirmResponse.getAmount());
goodsorder.setUseIntegral(orderPayConfirmResponse.getDeductIntegral());
+ goodsorder.setIntegral(goodsorder.getUseIntegral());
goodsorder.setIntegralPrice(orderPayConfirmResponse.getIntegralAmount());
if(Objects.nonNull(orderPayConfirmResponse.getMemberCoupon())){
@@ -839,6 +843,21 @@
goodsOrderDetail.setCouponDeduct(payDetailRequest.getCouponDeductCash());
goodsOrderDetail.setIntegralDeduct(payDetailRequest.getIntegralDeductCash());
goodsOrderDetail.setOrderId(goodsorder.getId());
+
+ //鍒ゆ柇闂ㄥ簵鏄惁璁剧疆鍟嗗搧鐨勪环鏍间俊鎭�
+ if(Objects.nonNull(goodsorder.getDistributionShopId())){
+ ShopGoodsRelation shopGoodsRelation = relationMapper.selectOne(new QueryWrapper<ShopGoodsRelation>().lambda()
+ .eq(ShopGoodsRelation::getIsdeleted,Constants.ZERO) .eq(ShopGoodsRelation::getShopId,goodsorder.getDistributionShopId())
+ .eq(ShopGoodsRelation::getStatus,Constants.ZERO)
+ .eq(ShopGoodsRelation::getIsdeleted,Constants.ZERO)
+ .eq(ShopGoodsRelation::getGoodsSkuId,goodsOrderDetail.getGoodsSkuId())
+ .last(" limit 1 ")
+ );
+ if(Objects.isNull(shopGoodsRelation)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝鍏宠仈缁忛攢鍟嗘湭缁戝畾["+goods.getName()+"]鍟嗗搧锛岃鑱旂郴绠$悊鍛橈紒");
+ }
+ goodsOrderDetail.setShopSettlement(shopGoodsRelation.getPrice());
+ }
goodsOrderDetailList.add(goodsOrderDetail);
//鍒犻櫎璐墿杞﹀晢鍝�
shopcartMapper.delete(new QueryWrapper<Shopcart>().lambda()
@@ -847,12 +866,18 @@
);
}
//绉垎鍙樺姩璁板綍
- Integral integral =Integral.createIntegral(member.getId(),Constants.INTEGRAL_TYPE.ORDER_PAY,goodsorder.getId());
- integral.setNum(goodsorder.getUseIntegral());
- integral.setTotalNum(member.getIntegral().subtract(goodsorder.getUseIntegral()));
- integralMapper.insert(integral);
- //鏇存柊鐢ㄦ埛绉垎
- memberMapper.subtractIntegral(member.getId(),goodsorder.getUseIntegral());
+ if(goodsorder.getUseIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+ //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
+ DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+ dealIntegralRequest.setIntegralNum(goodsorder.getUseIntegral());
+ dealIntegralRequest.setDealType(Constants.ONE);
+ dealIntegralRequest.setMemberId(member.getId());
+ dealIntegralRequest.setObjId(goodsorder.getId());
+ dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+ dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER);
+ integralService.dealIntegral(dealIntegralRequest);
+ }
+
if(goodsorder.getPrice().compareTo(orderPayRequest.getTitlePrice())!=Constants.ZERO){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍟嗗搧浠锋牸鍙戠敓鍙樺寲锛岃鍒锋柊鍚庨噸鏂版敮浠橈紒");
}
@@ -962,6 +987,9 @@
j.setImgUrl(fullUrl + j.getImgUrl());
});
memberOrderResponse.setMemberOrderDetailResponseList(memberOrderDetailResponseList);
+ if(Constants.equalsInteger(memberOrderResponse.getReceiveType(),Constants.ONE)){
+ memberOrderResponse.setShopInfo(shopMapper.selectById(memberOrderResponse.getShopId()));
+ }
return memberOrderResponse;
}
@@ -1079,6 +1107,88 @@
}
}
}
+
+
+ @Override
+ @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+ public void cancelOrderNew(Integer orderId,Integer optUserId,String cancelInfo){
+ if(Objects.isNull(orderId)){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Goodsorder goodsorder = goodsorderMapper.selectById(orderId);
+ if(Objects.isNull(goodsorder)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!(Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_PAY.getKey())
+ || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
+ || Constants.equalsInteger(goodsorder.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey()) )){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鍙栨秷澶辫触锛氳鍗曠姸鎬佸凡娴佽浆锛�");
+ }
+ if(goodsorder.getPrice().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+ //寰俊鐜伴噾閫�娆�
+ String refundCode = WxMiniUtilService.wxRefund(goodsorder.getCode().toString(), goodsorder.getPrice(), goodsorder.getPrice());
+ Fund fund = new Fund();
+ fund.setOrderCode(refundCode);
+ fund.setCreateDate(new Date());
+ fund.setIsdeleted(Constants.ZERO);
+ fund.setRemark(goodsorder.getId().toString());
+ fund.setMemberId(goodsorder.getCreator());
+ fund.setTitle("璁㈠崟鍙栨秷");
+ fund.setContent(StringUtils.isBlank(cancelInfo)?"鐢ㄦ埛涓诲姩鍙栨秷":cancelInfo);
+ fund.setObjId(goodsorder.getId());
+ fund.setObjType(Constants.ONE);
+ fund.setType(Constants.ONE);
+ fund.setNum(goodsorder.getPrice());
+ fundMapper.insert(fund);
+ }
+ if(goodsorder.getIntegral().compareTo(BigDecimal.ZERO)>Constants.ZERO){
+ //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
+ DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+ dealIntegralRequest.setIntegralNum(goodsorder.getIntegral());
+ dealIntegralRequest.setDealType(Constants.ZERO);
+ dealIntegralRequest.setMemberId(goodsorder.getMemberId());
+ dealIntegralRequest.setObjId(goodsorder.getId());
+ dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+ dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_CANCEL);
+ integralService.dealIntegral(dealIntegralRequest);
+ }
+ //璁㈠崟淇℃伅鍙栨秷
+ goodsorder.setStatus(Constants.OrderStatus.CLOSE.getKey());
+ goodsorder.setCancelDate(new Date());
+ goodsorder.setCancelInfo(StringUtils.isBlank(cancelInfo)?"鐢ㄦ埛涓诲姩鍙栨秷":cancelInfo);
+ goodsorder.setCancelUser(optUserId);
+ goodsorderMapper.updateById(goodsorder);
+ String goodsName = "";
+ List<GoodsorderDetail> goodsorderDetailList = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().eq("ORDER_ID",goodsorder.getId()));
+ if(!Objects.isNull(goodsorderDetailList)&&goodsorderDetailList.size()>Constants.ZERO){
+ for (GoodsorderDetail goodsorderDetail:goodsorderDetailList) {
+ GoodsSku goodsSku = goodsSkuMapper.selectById(goodsorderDetail.getGoodsSkuId());
+ if(StringUtils.isBlank(goodsName)){
+ Goods goods = goodsMapper.selectById(goodsSku.getGoodsId());
+ goodsName = goods.getName();
+ }
+ if(!Objects.isNull(goodsSku)){
+ goodsSku.setStock(goodsSku.getStock().add(new BigDecimal(Constants.formatIntegerNum(goodsorderDetail.getGoodsNum()))));
+ goodsSkuMapper.updateById(goodsSku);
+ }
+ }
+ }
+
+ //SendWxMessage.orderCancel(goodsorder,memberMapper.selectById(goodsorder.getMemberId()),goodsName);
+
+ //鏌ヨ浼樻儬鍒镐俊鎭褰�
+ if(!Objects.isNull(goodsorder.getCouponId())){
+ MemberCoupon memberCoupon = memberCouponMapper.selectById(goodsorder.getCouponId());
+ if(!Objects.isNull(memberCoupon)){
+ memberCoupon.setStatus(Constants.ZERO);
+ memberCouponMapper.updateById(memberCoupon);
+ }
+ }
+ }
+
+
+
+
public BigDecimal getDeductAmount(List<PayDetailRequest> requestList){
List<MemberCoupon> memberCouponList = new ArrayList<>();
@@ -1295,6 +1405,21 @@
orderUrgeMapper.insert(orderUrge);
}
+ @Override
+ public void delOrder(Integer orderId,Integer memberId){
+ Goodsorder goodsorder = goodsorderMapper.selectById(orderId);
+ if(!goodsorder.getMemberId().equals(memberId)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氱敤鎴蜂俊鎭尮閰嶅け璐ワ紒");
+ }
+ if(!goodsorder.getStatus().equals(Constants.OrderStatus.CLOSE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氬綋鍓嶈鍗曠姸鎬侊紝鏃犳硶杩涜璇ユ搷浣滐紒");
+ }
+ goodsorder.setIsdeleted(Constants.ONE);
+ goodsorder.setEditDate(new Date());
+ goodsorderMapper.updateById(goodsorder);
+ }
+
+
/**
* 璁㈠崟纭鏀惰揣
@@ -1307,6 +1432,9 @@
if(!goodsorder.getMemberId().equals(memberId)){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氱敤鎴蜂俊鎭尮閰嶅け璐ワ紒");
}
+ if(Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳嚜鎻愯鍗曪紝鏃犳硶杩涜璇ユ搷浣滐紒");
+ }
if(!goodsorder.getStatus().equals(Constants.OrderStatus.WAIT_RECEIVE.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳鍗曟湭鍙戣揣锛屾棤娉曡繘琛岀‘璁わ紒");
}
@@ -1316,7 +1444,69 @@
goodsorder.setStatus(Constants.OrderStatus.DONE.getKey());
goodsorder.setDoneDate(new Date());
goodsorderMapper.updateById(goodsorder);
+ //缁忛攢鍟嗗垎閿� 娣诲姞鍒嗛攢閲戦璁板綍
+ this.addShopIntegral(goodsorder);
}
+
+ /**
+ * 璁㈠崟鏍搁攢
+ * @param code
+ * @param memberId
+ */
+ @Override
+ public void orderWriteOff(String exchangeCode,Integer memberId){
+ Goodsorder goodsorder = goodsorderMapper.selectOne(new QueryWrapper<Goodsorder>().lambda()
+ .eq(Goodsorder::getExchangeCode,exchangeCode)
+ .eq(Goodsorder::getIsdeleted,Constants.ZERO).last("limit 1 "));
+ if(Objects.isNull(goodsorder)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ if(!Constants.equalsInteger(goodsorder.getReceiveType(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氶厤閫佽鍗曪紝鏃犳硶杩涜璇ユ搷浣滐紒");
+ }
+ if(!goodsorder.getStatus().equals(Constants.OrderStatus.PAY_DONE.getKey())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎿嶄綔澶辫触锛氳鍗曠姸鎬佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔锛�");
+ }
+ Shop shop = shopMapper.selectById(goodsorder.getPickUpShopId());/*selectOne(new QueryWrapper<Shop>().lambda().eq(Shop::getMemberId,memberId)
+ .eq(Shop::getIsdeleted,Constants.ZERO).last("limit 1 ")
+ );*/
+ if(Objects.isNull(shop)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌璁㈠崟鍏宠仈缁忛攢鍟嗕俊鎭�,璇疯仈绯荤鐞嗗憳");
+ }
+ if(!Constants.equalsInteger(shop.getMemberId(),memberId)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"["+shop.getName()+"]闈炴偍缁戝畾鐨勭粡閿�鍟嗭紝鏃犳硶杩涜璇ユ搷浣滐紒");
+ }
+ goodsorder.setStatus(Constants.OrderStatus.DONE.getKey());
+ goodsorder.setDoneDate(new Date());
+ goodsorderMapper.updateById(goodsorder);
+ //缁忛攢鍟嗗垎閿� 娣诲姞鍒嗛攢閲戦璁板綍
+ this.addShopIntegral(goodsorder);
+ }
+
+
+ public void addShopIntegral(Goodsorder goodsorder){
+ if(Objects.isNull(goodsorder.getDistributionShopId())){
+ return;
+ }
+ List<GoodsorderDetail> detailList = goodsorderDetailMapper.selectList(new QueryWrapper<GoodsorderDetail>().lambda()
+ .eq(GoodsorderDetail::getOrderId,goodsorder.getId())
+ .isNotNull(GoodsorderDetail::getShopSettlement)
+ );
+ if(CollectionUtils.isNotEmpty(detailList)){
+ BigDecimal settlement = detailList.stream().map(i->i.getShopSettlement()).reduce(BigDecimal.ZERO,BigDecimal::add);
+ //鏇存柊浣欓淇℃伅 娣诲姞绉垎鍙樺姩璁板綍
+ DealIntegralRequest dealIntegralRequest = new DealIntegralRequest();
+ dealIntegralRequest.setIntegralNum(settlement);
+ dealIntegralRequest.setDealType(Constants.ZERO);
+ dealIntegralRequest.setMemberId(goodsorder.getDistributionShopId());
+ dealIntegralRequest.setObjId(goodsorder.getId());
+ dealIntegralRequest.setOrderCode(goodsorder.getCode().toString());
+ dealIntegralRequest.setIntegralObjType(Constants.IntegralObjType.SHOP_ORDER_SETTLEMENT);
+ integralService.dealShopIntegral(dealIntegralRequest);
+ }
+ }
+
+
@Override
@@ -1533,4 +1723,52 @@
+
+ @Override
+ public HomeInfoResponse getHomeInfo(int memberId){
+ HomeInfoResponse homeInfoResponse = new HomeInfoResponse();
+ Member member = memberMapper.selectById(memberId);
+ if(Objects.isNull(member)){
+ return homeInfoResponse;
+ }
+ homeInfoResponse.setMember(member);
+ homeInfoResponse.setWaitReceiveNum(
+ goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>().lambda().eq(Goodsorder::getIsdeleted,Constants.ZERO)
+ .eq(Goodsorder::getMemberId,member.getId())
+ .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey()))
+ );
+ homeInfoResponse.setWaitPayNum(
+ goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>().lambda().eq(Goodsorder::getIsdeleted,Constants.ZERO)
+ .eq(Goodsorder::getMemberId,member.getId())
+ .eq(Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey()))
+ );
+ homeInfoResponse.setCartTypeNum(
+ shopcartMapper.selectCount(new QueryWrapper<Shopcart>().lambda()
+ .eq(Shopcart::getIsdeleted,Constants.ZERO)
+ .eq(Shopcart::getMemberId,member.getId()))
+ );
+ homeInfoResponse.setCouponNum(
+ memberCouponMapper.selectCount(new QueryWrapper<MemberCoupon>().lambda()
+ .eq(MemberCoupon::getIsdeleted,Constants.ZERO)
+ .eq(MemberCoupon::getMemberId,member.getId())
+ .eq(MemberCoupon::getStatus,Constants.ZERO)
+ .apply(" end_date >now() ")
+ )
+ );
+ homeInfoResponse.setCollectNum(
+ collectMapper.selectCount(new QueryWrapper<Collect>().lambda()
+ .eq(Collect::getIsdeleted,Constants.ZERO)
+ .eq(Collect::getMemberId,member.getId())
+ )
+ );
+
+ return homeInfoResponse;
+
+
+ }
+
+
+
+
+
}
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
index 5ed3b67..d53622a 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/IntegralServiceImpl.java
@@ -10,10 +10,12 @@
import com.doumee.core.utils.Utils;
import com.doumee.dao.business.IntegralMapper;
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.Fund;
import com.doumee.dao.business.model.Integral;
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.request.DealIntegralRequest;
import com.doumee.service.business.AreasService;
@@ -58,6 +60,9 @@
@Autowired
private MemberMapper memberMapper;
+
+ @Autowired
+ private ShopMapper shopMapper;
@Transactional(rollbackFor = {Exception.class, BusinessException.class})
@Override
@@ -150,6 +155,7 @@
integral.setNum(dealIntegralRequest.getIntegralNum());
integral.setTotalNum(dealIntegralRequest.getDealType().equals(Constants.ZERO)? member.getIntegral().add(integral.getNum()):member.getIntegral().subtract(integral.getNum()));
integral.setOrderCode(dealIntegralRequest.getOrderCode());
+ integral.setUserType(Constants.ZERO);
integralMapper.insert(integral);
if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
memberMapper.addIntegral(member.getId(),dealIntegralRequest.getIntegralNum(),
@@ -160,7 +166,35 @@
return integral.getId();
}
-
+ @Override
+ @Transactional(rollbackFor = {Exception.class, BusinessException.class})
+ public Integer dealShopIntegral(DealIntegralRequest dealIntegralRequest) {
+ Shop shop = shopMapper.selectById(dealIntegralRequest.getMemberId());
+ if(Objects.isNull(shop)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍟嗘埛淇℃伅");
+ }
+ Integral integral = new Integral();
+ integral.setMemberId(shop.getId());
+ integral.setCreateDate(new Date());
+ integral.setIsdeleted(Constants.ZERO);
+ integral.setTitle(dealIntegralRequest.getIntegralObjType().getName());
+ integral.setContent(dealIntegralRequest.getIntegralObjType().getNoteinfo());
+ integral.setObjId(dealIntegralRequest.getObjId());
+ integral.setObjType(dealIntegralRequest.getIntegralObjType().getKey());
+ integral.setType(dealIntegralRequest.getDealType());
+ integral.setNum(dealIntegralRequest.getIntegralNum());
+ integral.setTotalNum(dealIntegralRequest.getDealType().equals(Constants.ZERO)? shop.getIntegral().add(integral.getNum()):shop.getIntegral().subtract(integral.getNum()));
+ integral.setOrderCode(dealIntegralRequest.getOrderCode());
+ integral.setUserType(Constants.ONE);
+ integralMapper.insert(integral);
+ if(dealIntegralRequest.getDealType().equals(Constants.ZERO)){
+ shopMapper.addIntegral(shop.getId(),dealIntegralRequest.getIntegralNum(),
+ dealIntegralRequest.getIntegralObjType().getAddTitle()==Constants.ZERO?dealIntegralRequest.getIntegralNum():BigDecimal.ZERO);
+ }else{
+ shopMapper.subtractIntegral(shop.getId(),dealIntegralRequest.getIntegralNum());
+ }
+ return integral.getId();
+ }
@Override
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
index 7b10f17..83df9aa 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberCouponServiceImpl.java
@@ -14,6 +14,7 @@
import com.doumee.dao.web.dto.CouponDTO;
import com.doumee.dao.web.dto.MemberCouponDTO;
import com.doumee.dao.web.request.PayDetailRequest;
+import com.doumee.dao.web.response.MemberCouponResponse;
import com.doumee.dao.web.response.goods.OrderGoodsCalculateResponse;
import com.doumee.service.business.MemberCouponService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -24,6 +25,7 @@
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -52,6 +54,10 @@
@Autowired
private MemberCouponJoinMapper memberCouponJoinMapper;
+
+ @Autowired
+ private LabelsMapper labelsMapper;
+
@Autowired
private CouponMapper couponMapper;
@@ -202,11 +208,13 @@
* @return
*/
@Override
- public IPage<CouponDTO> memberCouponPage(IPage pages, BigDecimal price, Integer memberId,Integer couponType) {
- IPage<CouponDTO> page = memberCouponMapper.memberCouponPage(pages,new QueryWrapper<CouponDTO>()
+ public IPage<MemberCouponResponse> memberCouponPage(IPage pages, BigDecimal price, Integer memberId,Integer couponType,Integer status) {
+ IPage<MemberCouponResponse> page = memberCouponMapper.memberCouponPage(pages,new QueryWrapper<MemberCouponResponse>()
.eq("m.MEMBER_ID",memberId)
.eq("m.TYPE",Constants.ONE)
- .eq("m.STATUS",Constants.ZERO)
+ .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.ZERO),"m.STATUS = 0 and m.END_DATE >= now()" )
+ .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.ONE),"m.STATUS = 1" )
+ .apply(Objects.nonNull(status)&&Constants.equalsInteger(status,Constants.TWO),"m.STATUS = 0 and m.END_DATE < now() " )
.eq("TYPE",couponType)
.apply(!Objects.isNull(price)," m.LIMIT_PRICE >= "+price+" ")
.apply(" now() between m.START_DATE and m.END_DATE ")
@@ -216,6 +224,37 @@
}
+ @Override
+ public MemberCouponResponse getMemberCouponDetail(Integer id){
+ MemberCoupon memberCoupon = memberCouponJoinMapper.selectById(id);
+ if(Objects.isNull(memberCoupon)){
+ throw new BusinessException(ResponseStatus.DATA_EMPTY);
+ }
+ MemberCouponResponse memberCouponResponse = new MemberCouponResponse();
+ BeanUtils.copyProperties(memberCoupon,memberCouponResponse);
+ if(StringUtils.isNotBlank(memberCouponResponse.getApplyIds())){
+ if(Constants.equalsInteger(memberCouponResponse.getApplyType(),Constants.ONE)){
+ List<Labels> labelsList = labelsMapper.selectList(new QueryWrapper<Labels>().lambda()
+ .eq(Labels::getIsdeleted,Constants.ZERO)
+ .eq(Labels::getType,Constants.LabelsType.GOODSTYPE.getKey())
+ .apply(" find_in_set( id , '"+memberCouponResponse.getApplyIds()+"' ) ")
+ );
+ if(CollectionUtils.isNotEmpty(labelsList)){
+ memberCouponResponse.setRelationInfoList(labelsList.stream().map(i->i.getName()).collect(Collectors.toList()));
+ }
+ }else if(Constants.equalsInteger(memberCouponResponse.getApplyType(),Constants.TWO)){
+ List<Goods> labelsList = goodsMapper.selectList(new QueryWrapper<Goods>().lambda()
+ .eq(Goods::getIsdeleted,Constants.ZERO)
+ .apply(" find_in_set( id , '"+memberCouponResponse.getApplyIds()+"' ) ")
+ );
+ if(CollectionUtils.isNotEmpty(labelsList)){
+ memberCouponResponse.setRelationInfoList(labelsList.stream().map(i->i.getName()).collect(Collectors.toList()));
+ }
+ }
+ }
+
+ return memberCouponResponse;
+ }
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index afb5b60..1dfd46f 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -20,16 +20,19 @@
import com.doumee.core.utils.Utils;
import com.doumee.core.wx.WxMiniConfig;
import com.doumee.dao.business.MemberMapper;
+import com.doumee.dao.business.SmsrecordMapper;
import com.doumee.dao.business.join.MemberJoinMapper;
import com.doumee.dao.business.model.Areas;
import com.doumee.dao.business.model.Goodsorder;
import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.Smsrecord;
import com.doumee.dao.system.SystemUserMapper;
import com.doumee.dao.system.dto.MemberRechargeDTO;
import com.doumee.dao.web.dto.MemberOwnDTO;
import com.doumee.dao.web.dto.shop.Position;
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.request.DealIntegralRequest;
+import com.doumee.dao.web.request.UpdMobileRequest;
import com.doumee.dao.web.request.UpdateMemberRequest;
import com.doumee.dao.web.request.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
@@ -74,6 +77,9 @@
@Autowired
private MemberMapper memberMapper;
+
+ @Autowired
+ private SmsrecordMapper smsrecordMapper;
@Autowired
@@ -328,6 +334,12 @@
@Override
public Member updateMember(UpdateMemberRequest updateMemberRequest){
+ if(StringUtils.isBlank(updateMemberRequest.getImgurl())
+ && StringUtils.isBlank(updateMemberRequest.getNickname())
+ && StringUtils.isBlank(updateMemberRequest.getName())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
Member member = new Member();
BeanUtils.copyProperties(updateMemberRequest,member);
member.setId(updateMemberRequest.getMemberId());
@@ -339,6 +351,9 @@
systemDictDataBiz.queryByCode(Constants.OSS,Constants.MEMBER_FILE).getCode()+dbMember.getImgurl());
return dbMember;
}
+
+
+
@Override
public MemberOwnDTO getMemberOwnDTO(Integer memberId) {
@@ -405,6 +420,68 @@
memberMapper.updateById(member);
}
+ @Override
+ public void verifyUserPhone(UpdMobileRequest request){
+ if(Objects.isNull(request)
+ || Objects.isNull(request.getMemberId())
+ || StringUtils.isBlank(request.getPhone())
+ || StringUtils.isBlank(request.getCode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Member member = memberMapper.selectById(request.getMemberId());
+ if(StringUtils.isNotBlank(member.getPhone())&&!member.getPhone().equals(request.getPhone())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎵嬫満鍙烽敊璇�");
+ }
+ this.verifyPhoneCode(request.getCode(),request.getMemberId());
+ }
+
+ public void verifyPhoneCode(String code,Integer memberId){
+ //楠岃瘉鐮�
+ Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda()
+ .eq(Smsrecord::getIsdeleted,Constants.ZERO)
+ .eq(Smsrecord::getCode,code)
+ .eq(Smsrecord::getMemberId,memberId)
+ .last(" limit 1")
+ );
+ if(Objects.isNull(smsrecord)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮侀敊璇紒");
+ }
+ if(!Constants.equalsInteger(smsrecord.getStatus(),Constants.ZERO)){
+ if(Constants.equalsInteger(smsrecord.getStatus(),Constants.ONE)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮佸凡浣跨敤");
+ }else{
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"楠岃瘉鐮佸凡杩囨湡");
+ }
+ }
+ smsrecordMapper.update(new UpdateWrapper<Smsrecord>().lambda()
+ .set(Smsrecord::getStatus,Constants.ONE)
+ .eq(Smsrecord::getId,smsrecord.getId())
+ );
+ }
+
+ @Override
+ public void updateUserPhone(UpdMobileRequest request){
+ if(Objects.isNull(request)
+ || Objects.isNull(request.getMemberId())
+ || StringUtils.isBlank(request.getPhone())
+ || StringUtils.isBlank(request.getCode())
+ ){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
+ Member member = memberMapper.selectById(request.getMemberId());
+ if(StringUtils.isNotBlank(member.getPhone())&&member.getPhone().equals(request.getPhone())){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犳硶鏇存崲鐩稿悓鎵嬫満鍙�");
+ }
+ this.verifyPhoneCode(request.getCode(),request.getMemberId());
+ memberMapper.update(new UpdateWrapper<Member>().lambda()
+ .eq(Member::getPhone,request.getPhone())
+ .eq(Member::getId,request.getMemberId())
+ );
+ }
+
+
+
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
@Override
public Integer importMemberRechargeBatch(MultipartFile file) {
diff --git a/server/dmmall_web/src/main/java/com/doumee/api/web/mall/HomeApi.java b/server/dmmall_web/src/main/java/com/doumee/api/web/mall/HomeApi.java
new file mode 100644
index 0000000..48d3bad
--- /dev/null
+++ b/server/dmmall_web/src/main/java/com/doumee/api/web/mall/HomeApi.java
@@ -0,0 +1,70 @@
+package com.doumee.api.web.mall;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.doumee.api.web.ApiController;
+import com.doumee.config.annotation.LoginRequired;
+import com.doumee.core.annotation.trace.Trace;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.dao.web.request.PageRequest;
+import com.doumee.dao.web.request.UpdMobileRequest;
+import com.doumee.dao.web.response.HomeInfoResponse;
+import com.doumee.dao.web.response.OrderDetailResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/12/15 13:59
+ */
+
+@Api(tags = "涓汉涓績")
+@Trace(exclude = true)
+@RestController
+@RequestMapping("/web/home")
+@Slf4j
+public class HomeApi extends ApiController {
+
+
+ @LoginRequired
+ @ApiOperation("鎴戠殑淇℃伅")
+ @GetMapping("/myInfo")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse<HomeInfoResponse> myInfo() {
+ return ApiResponse.success("鏌ヨ鎴愬姛",goodsorderService.getHomeInfo(getMemberId()));
+ }
+
+
+
+ @LoginRequired
+ @ApiOperation("楠岃瘉鎵嬫満鍙�")
+ @PostMapping("/verifyUserPhone")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse verifyUserPhone(@RequestBody UpdMobileRequest request) {
+ memberService.verifyUserPhone(request);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
+ @LoginRequired
+ @ApiOperation("鏇存崲缁戝畾鎵嬫満鍙�")
+ @PostMapping("/updateUserPhone")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse updateUserPhone(@RequestBody UpdMobileRequest request) {
+ memberService.updateUserPhone(request);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
+}
diff --git a/server/dmmall_web/src/main/java/com/doumee/api/web/mall/OrderApi.java b/server/dmmall_web/src/main/java/com/doumee/api/web/mall/OrderApi.java
index a3d0d8e..00f83d4 100644
--- a/server/dmmall_web/src/main/java/com/doumee/api/web/mall/OrderApi.java
+++ b/server/dmmall_web/src/main/java/com/doumee/api/web/mall/OrderApi.java
@@ -17,19 +17,24 @@
import com.doumee.dao.web.request.OrderPayRequest;
import com.doumee.dao.web.request.PageRequest;
import com.doumee.dao.web.request.PayDetailRequest;
+import com.doumee.dao.web.request.ShopOrderPayRequest;
import com.doumee.dao.web.request.goods.DealOrderRequest;
import com.doumee.dao.web.request.goods.MemberOrderRequest;
import com.doumee.dao.web.request.goods.OrderCommentRequest;
+import com.doumee.dao.web.response.MemberCouponResponse;
import com.doumee.dao.web.response.MyPageResponse;
import com.doumee.dao.web.response.OrderCommentResponse;
import com.doumee.dao.web.response.OrderDetailResponse;
import com.doumee.dao.web.response.goods.MemberOrderResponse;
import com.doumee.dao.web.response.goods.PayResponse;
+import com.doumee.service.business.HotCityService;
+import com.doumee.service.business.impl.MemberCouponServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -86,12 +91,25 @@
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "current", value = "椤电爜", required = true),
@ApiImplicitParam(paramType = "query", dataType = "Long", name = "size", value = "姣忛〉璁板綍鏁�", required = true),
@ApiImplicitParam(paramType = "query", dataType = "Integer", name = "couponType", value = "浼樻儬鍒哥被鍒細0鍟嗗浼樻儬鍒� 1骞冲彴浼樻儬鍒�", required = true),
- @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "婊¢", required = false)
+ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "limitPrice", value = "婊¢", required = false),
+ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "status", value = "鐘舵�侊細0=鏈娇鐢�;1=宸蹭娇鐢紱2=宸茶繃鏈�", required = false)
})
- public ApiResponse<IPage<CouponDTO>> memberCouponPage(PageRequest pageable, Integer couponType, BigDecimal limitPrice) {
- IPage<CouponDTO> page = memberCouponService.memberCouponPage(pageable.toPage(),limitPrice,getMemberId(),couponType);
+ public ApiResponse<IPage<MemberCouponResponse>> memberCouponPage(PageRequest pageable, Integer couponType, BigDecimal limitPrice, Integer status) {
+ IPage<MemberCouponResponse> page = memberCouponService.memberCouponPage(pageable.toPage(),limitPrice,getMemberId(),couponType,status);
return ApiResponse.success("鏌ヨ鎴愬姛",page);
}
+
+ @LoginRequired
+ @ApiOperation("浼氬憳浼樻儬鍒歌鎯�")
+ @GetMapping("/memberCouponDetail")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "id", value = "涓婚敭", required = true)
+ })
+ public ApiResponse<MemberCouponResponse> memberCouponDetail(Integer id) {
+ return ApiResponse.success("鏌ヨ鎴愬姛",memberCouponService.getMemberCouponDetail(id));
+ }
+
// @LoginRequired
// @ApiOperation("鍙敤浼樻儬鍒告暟閲�")
@@ -128,15 +146,18 @@
return ApiResponse.success("鏌ヨ鎴愬姛",page);
}
+ @Autowired
+ public MemberCouponServiceImpl memberCouponServiceImpl;
+
@LoginRequired
@ApiOperation("璁㈠崟鏀粯")
@PostMapping("/orderPay")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true)
})
- public ApiResponse<PayResponse> orderPay(@Valid @RequestBody OrderPayRequest orderPayRequest) {
- orderPayRequest.setMemberId(getMemberId());
- return ApiResponse.success("鎿嶄綔鎴愬姛", goodsorderService.orderPay(orderPayRequest));
+ public ApiResponse<PayResponse> orderPay(@Valid @RequestBody ShopOrderPayRequest request) {
+ request.setMemberId(getMemberId());
+ return ApiResponse.success("鎿嶄綔鎴愬姛", goodsorderService.orderPay(request, memberCouponServiceImpl));
}
@LoginRequired
@@ -161,7 +182,7 @@
}
@LoginRequired
- @ApiOperation("鎴戠殑璁㈠崟鍒楄〃")
+ @ApiOperation("璁㈠崟鍒楄〃")
@PostMapping("/orderPage")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
@@ -191,7 +212,7 @@
@ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
})
public ApiResponse cancelOrder(@RequestBody DealOrderRequest dealOrderRequest) {
- goodsorderService.cancelOrder(dealOrderRequest.getOrderId(),getMemberId(),dealOrderRequest.getCancelInfo());
+ goodsorderService.cancelOrderNew(dealOrderRequest.getOrderId(),getMemberId(),dealOrderRequest.getCancelInfo());
return ApiResponse.success("鎿嶄綔鎴愬姛");
}
@@ -219,6 +240,30 @@
@LoginRequired
+ @ApiOperation("璁㈠崟鏍搁攢")
+ @PostMapping("/writeOffOrder")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse writeOffOrder(@RequestBody DealOrderRequest dealOrderRequest) {
+ goodsorderService.orderWriteOff(dealOrderRequest.getExchangeCode(),getMemberId());
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+ @LoginRequired
+ @ApiOperation("璁㈠崟鍒犻櫎")
+ @PostMapping("/delOrder")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鐢ㄦ埛token鍊�", required = true),
+ })
+ public ApiResponse delOrder(@RequestBody DealOrderRequest dealOrderRequest) {
+ goodsorderService.delOrder(dealOrderRequest.getOrderId(),getMemberId());
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
+
+
+
+ @LoginRequired
@ApiOperation("璁㈠崟璇勮")
@PostMapping("/orderComment")
@ApiImplicitParams({
diff --git a/server/dmmall_web/src/main/java/com/doumee/api/web/mall/PaymentCallback.java b/server/dmmall_web/src/main/java/com/doumee/api/web/mall/PaymentCallback.java
index 744e51f..3d69e28 100644
--- a/server/dmmall_web/src/main/java/com/doumee/api/web/mall/PaymentCallback.java
+++ b/server/dmmall_web/src/main/java/com/doumee/api/web/mall/PaymentCallback.java
@@ -113,7 +113,9 @@
goodsOrder.setPayStatus(Constants.ONE);
goodsOrder.setPayDate(new Date());
goodsOrder.setPayOrderId(paymentNo);
- goodsOrder.setStatus(Constants.equalsInteger(goodsOrder.getReceiveType(),Constants.ZERO)?Constants.OrderStatus.PAY_DONE.getKey():Constants.OrderStatus.WAIT_RECEIVE.getKey());
+ goodsOrder.setStatus(Constants.OrderStatus.PAY_DONE.getKey());
+ //鐢熸垚鏍搁攢鐮�
+ goodsOrder.setExchangeCode(Constants.equalsInteger(goodsOrder.getReceiveType(),Constants.ZERO)?null:Constants.getRandomNumber());
goodsOrder.setPayMethod(Constants.ZERO);
goodsorderService.updateById(goodsOrder);
Fund fund = new Fund();
--
Gitblit v1.9.3