From 07b964209ad7ff91def2ed1962c5a02441710d86 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Fri, 12 Jun 2026 09:48:25 +0800
Subject: [PATCH] refactor(mall): 重构DTO和控制器结构并添加验证注解

---
 src/main/java/cc/mrbird/febs/mall/entity/MallAddressInfo.java                                     |    4 
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallMemberController.java        |   78 +
 src/main/java/cc/mrbird/febs/mall/dto/ModifyMemberInfoDto.java                                    |   11 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java                   |  200 +---
 src/main/java/cc/mrbird/febs/mall/vo/MallSalesServiceVo.java                                      |   20 
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallAddressInfoController.java   |   54 +
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsController.java         |    7 
 src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java                              |   60 -
 src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java                                            |   22 
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/enums/SalesServiceEnums.java        |   21 
 src/main/java/cc/mrbird/febs/mall/dto/LoginDto.java                                               |    6 
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallShoppingCartController.java  |   15 
 src/main/java/cc/mrbird/febs/mall/vo/AddressInfoVo.java                                           |   36 
 src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java                                            |   15 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAddressInfoServiceImpl.java                 |  124 -
 src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java                                           |   19 
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java                          |   17 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java                |   39 
 src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java                       |    2 
 src/main/java/cc/mrbird/febs/mall/dto/AddressInfoDto.java                                         |   58 
 src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java               |   10 
 src/main/java/cc/mrbird/febs/mall/service/IMallMemberCollectionService.java                       |    3 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java                      |  991 +---------------------
 /dev/null                                                                                         |  607 -------------
 src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java                                            |   86 -
 src/main/java/cc/mrbird/febs/mall/service/IApiMallAddressInfoService.java                         |   11 
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiLoginController.java             |   60 +
 src/main/java/cc/mrbird/febs/mall/dto/AddCollectionDto.java                                       |    3 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java                       |    6 
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsCategoryController.java |    4 
 src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMemberCollectionController.java  |   20 
 31 files changed, 510 insertions(+), 2,099 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
index 68ab486..abcc4d2 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -397,9 +397,7 @@
     public FebsResponse memberAdd(MallMember member) {
         RegisterDto registerDto = new RegisterDto();
         registerDto.setAccount(member.getAccount());
-        registerDto.setRegistType("admin");
         registerDto.setPassword("a123456");
-        registerDto.setInviteId(member.getInviteId());
         apiMallMemberService.register(registerDto);
         return new FebsResponse().success();
     }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiApplyController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiApplyController.java
deleted file mode 100644
index 1b87b5c..0000000
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiApplyController.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package cc.mrbird.febs.mall.controller;
-
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.mall.dto.ShopApplyDto;
-import cc.mrbird.febs.mall.dto.ShopListDto;
-import cc.mrbird.febs.mall.service.IApiMallMemberService;
-import cc.mrbird.febs.mall.vo.ShopListVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author wzy
- * @date 2022-05-12
- **/
-@Slf4j
-@RestController
-@RequestMapping(value = "/api/apply")
-@RequiredArgsConstructor
-@Api(value = "ApiApplyController", tags = "申请通道接口类")
-public class ApiApplyController {
-
-    private final IApiMallMemberService memberService;
-
-    @ApiOperation(value = "申请通道")
-    @PostMapping(value = "/shopApply")
-    public FebsResponse shopApply(@RequestBody ShopApplyDto shopApplyDto) {
-        memberService.shopApply(shopApplyDto);
-        return new FebsResponse().success().message("申请成功");
-    }
-
-    @ApiOperation(value = "获取申请信息")
-    @GetMapping(value = "/findApply")
-    public FebsResponse findApply() {
-        return new FebsResponse().success().data(memberService.findNewestApply());
-    }
-
-
-    @ApiOperation(value = "获取商铺列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = ShopListVo.class)
-    })
-    @PostMapping(value = "/findShopList")
-    public FebsResponse findShopList(@RequestBody ShopListDto shopListDto) {
-        return new FebsResponse().success().data(memberService.findShopListVo(shopListDto));
-    }
-}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
deleted file mode 100644
index c04557c..0000000
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiLoginController.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package cc.mrbird.febs.mall.controller;
-
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.utils.RedisUtils;
-import cc.mrbird.febs.mall.dto.*;
-import cc.mrbird.febs.mall.service.IApiMallMemberService;
-import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto;
-import cc.mrbird.febs.pay.service.IXcxPayService;
-import cc.mrbird.febs.pay.util.WechatConfigure;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * @author wzy
- * @date 2021-09-16
- **/
-@Slf4j
-@CrossOrigin("*")
-@RequiredArgsConstructor
-@RestController
-@RequestMapping(value = "/api/login")
-@Api(value = "ApiLoginController", tags = "登录注册类")
-public class ApiLoginController {
-
-    private final IApiMallMemberService memberService;
-    private final IXcxPayService iXcxPayService;
-    private final RedisUtils redisUtils;
-
-    @ApiOperation(value = "app注册接口", notes = "app注册接口")
-    @PostMapping(value = "/register")
-    public FebsResponse register(@RequestBody RegisterDto registerDto) {
-        return memberService.register(registerDto);
-    }
-
-
-    @ApiOperation(value = "账号密码登录接口", notes = "账号密码登录接口")
-    @PostMapping(value = "/toLogin")
-    public FebsResponse login(@RequestBody LoginDto loginDto) {
-        return memberService.toLogin(loginDto);
-    }
-
-
-    @ApiOperation(value = "忘记/修改密码", notes = "忘记/修改密码")
-    @PostMapping(value = "/forgetPwd")
-    public FebsResponse forgetPwd(@RequestBody ForgetPwdDto forgetPwdDto) {
-        return memberService.forgetPwd(forgetPwdDto);
-    }
-
-    @ApiOperation(value = "提交注册申诉", notes = "提交注册申诉")
-    @PostMapping(value = "addRegisterAppeal")
-    public FebsResponse addRegisterAppeal(@RequestBody RegisterAppealDto registerAppeal) {
-        memberService.addRegisterAppeal(registerAppeal);
-        return new FebsResponse().success().message("申请成功");
-    }
-
-    /**
-     * 小程序登录
-     */
-    @ApiOperation(value = "小程序登录", notes = "小程序登录")
-    @PostMapping(value = "/xcxLogin")
-    public FebsResponse xcxLogin(@RequestBody ApiXcxLoginDto apiXcxLoginDto) throws IOException {
-        return memberService.xcxLogin(apiXcxLoginDto);
-    }
-
-    /**
-     * 小程序手机号登录
-     */
-    @ApiOperation(value = "小程序手机号登录", notes = "小程序手机号登录")
-    @PostMapping(value = "/xcxPhoneLogin")
-    public FebsResponse xcxPhoneLogin(@RequestBody ApiXcxPhoneLoginDto apiXcxPhoneLoginDto){
-        return memberService.xcxPhoneLogin(apiXcxPhoneLoginDto);
-    }
-
-    /**
-     * 小程序接收用户数据,更新用户信息
-     */
-    @ApiOperation(value = "小程序接收用户数据", notes = "小程序接收用户数据")
-    @PostMapping(value = "/xcxSaveInfo")
-    public FebsResponse xcxSaveInfo(@RequestBody ApiXcxSaveInfoDto apiXcxSaveInfoDto){
-        return memberService.xcxSaveInfo(apiXcxSaveInfoDto);
-    }
-
-    /**
-     * 小程序是否允许打开
-     *    先获取系统设置的范围访问开关
-     *      1:开启,获取范围大小,如果范围内没有团长,不允许打开
-     *      2:关闭,允许打开
-     */
-    @ApiOperation(value = "小程序是否允许打开(1:允许 2:不允许)", notes = "小程序是否允许打开")
-    @PostMapping(value = "/xcxOpen")
-    public FebsResponse xcxOpen(@RequestBody ApiXcxOpenDto apiXcxOpenDto){
-        return memberService.xcxOpen(apiXcxOpenDto);
-    }
-
-    /**
-     * 获取分享二维码
-     */
-    @ApiOperation(value = "获取分享二维码", notes = "获取分享二维码")
-    @PostMapping(value = "/generateQrCode")
-    public FebsResponse generateQrCode(@RequestBody WxGenerateQrCodeDto wxGenerateQrCodeDto){
-        return iXcxPayService.generateQrCode(wxGenerateQrCodeDto);
-    }
-
-    /**
-     * 获取ACCESS_TOKEN
-     */
-    @ApiOperation(value = "获取ACCESS_TOKEN", notes = "获取ACCESS_TOKEN")
-    @GetMapping(value = "/getAccessToken")
-    public FebsResponse getAccessToken(){
-        return new FebsResponse().success().data(redisUtils.get(WechatConfigure.WX_ACCESS_TOKEN_REDIS_KEY).toString());
-    }
-
-
-    /**
-     * 获取分享二维码(不上传服务器)
-     */
-    @ApiOperation(value = "获取分享二维码(不上传服务器)", notes = "获取分享二维码(不上传服务器)")
-    @PostMapping(value = "/getQrCode")
-    public FebsResponse getQrCode(@RequestBody WxGenerateQrCodeDto wxGenerateQrCodeDto) {
-        return iXcxPayService.getQrCode(wxGenerateQrCodeDto);
-    }
-
-}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallActController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallActController.java
deleted file mode 100644
index e1fa7ef..0000000
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallActController.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package cc.mrbird.febs.mall.controller;
-
-import cc.mrbird.febs.common.annotation.Limit;
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.entity.LimitType;
-import cc.mrbird.febs.mall.service.IApiMallActService;
-import cc.mrbird.febs.mall.vo.ApiActivityVo;
-import cc.mrbird.febs.mall.vo.ApiCouponVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@Slf4j
-@RestController
-@RequestMapping(value = "/api/act")
-@RequiredArgsConstructor
-@Api(value = "ApiApplyController", tags = "活动接口类")
-public class ApiMallActController {
-
-    private final IApiMallActService iApiMallActService;
-    @ApiOperation(value = "获取活动详情", notes = "获取活动详情")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = ApiActivityVo.class)
-    })
-    @GetMapping(value = "/getActivity/{id}")
-    public FebsResponse getActivity(@PathVariable("id") Long id) {
-        return new FebsResponse().success().data(iApiMallActService.findApiMallActDetailsById(id));
-    }
-    @ApiOperation(value = "优惠卷详情", notes = "优惠卷详情")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = ApiCouponVo.class)
-    })
-    @GetMapping(value = "/getCoupon/{id}")
-    public FebsResponse getCoupon(@PathVariable("id") Long id) {
-        return new FebsResponse().success().data(iApiMallActService.findApiCouponById(id));
-    }
-    @ApiOperation(value = "领取优惠卷", notes = "领取优惠卷")
-    @GetMapping(value = "/addCoupon/{id}")
-    @Limit(key = "addCoupon", period = 10, count = 1, name = "领取优惠卷", prefix = "limit",limitType = LimitType.IP)
-    public FebsResponse addCoupon(@PathVariable("id") Long id) {
-        return iApiMallActService.addCoupon(id);
-    }
-
-}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallAddressInfoController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallAddressInfoController.java
deleted file mode 100644
index 37c141e..0000000
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallAddressInfoController.java
+++ /dev/null
@@ -1,93 +0,0 @@
-package cc.mrbird.febs.mall.controller;
-
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.mall.conversion.MallAddressInfoConversion;
-import cc.mrbird.febs.mall.dto.AddressInfoDto;
-import cc.mrbird.febs.mall.dto.ApiIdentifyAddressDto;
-import cc.mrbird.febs.mall.entity.MallAddressInfo;
-import cc.mrbird.febs.mall.service.IApiMallAddressInfoService;
-import cc.mrbird.febs.mall.vo.AddressInfoVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-
-/**
- * @author wzy
- * @date 2021-09-18
- **/
-@Slf4j
-@Validated
-@RestController
-@RequiredArgsConstructor
-@RequestMapping(value = "/api/address")
-@Api(value = "ApiMallAddressInfoController", tags = "用户地址管理接口类")
-public class ApiMallAddressInfoController {
-
-    private final IApiMallAddressInfoService mallAddressInfoService;
-
-    @ApiOperation(value = "获取地址列表", notes = "获取地址列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = AddressInfoVo.class)
-    })
-    @GetMapping(value = "/findAddressList")
-    public FebsResponse findAddressList() {
-        return new FebsResponse().success().data(mallAddressInfoService.findAddressInfoList());
-    }
-
-    @ApiOperation(value = "获取地址信息", notes = "获取地址信息")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = AddressInfoVo.class)
-    })
-    @GetMapping(value = "/findAddressList/{id}")
-    public FebsResponse findAddressInfoById(@PathVariable("id") Long id) {
-        MallAddressInfo addressInfo = mallAddressInfoService.getById(id);
-        return new FebsResponse().success().data(MallAddressInfoConversion.INSTANCE.entityToVo(addressInfo));
-    }
-
-    @ApiOperation(value = "添加地址", notes = "添加地址")
-    @PostMapping(value = "/addAddress")
-    public FebsResponse addAddress(@RequestBody AddressInfoDto addressInfoDto) {
-        return mallAddressInfoService.addAddress(addressInfoDto);
-    }
-
-    @ApiOperation(value = "修改地址", notes = "修改地址")
-    @PostMapping(value = "/modifyAddress")
-    public FebsResponse modifyAddress(@RequestBody AddressInfoDto addressInfoDto) {
-        mallAddressInfoService.modifyAddress(addressInfoDto);
-        return new FebsResponse().success().message("修改成功");
-    }
-
-    @ApiOperation(value = "删除地址", notes = "删除地址")
-    @PostMapping(value = "/delAddress/{id}")
-    public FebsResponse delAddress(@PathVariable("id") Long id) {
-        mallAddressInfoService.removeById(id);
-        return new FebsResponse().success().message("删除成功");
-    }
-
-    @ApiOperation(value = "设置地址为默认地址", notes = "设置地址为默认地址")
-    @PostMapping(value = "/setAddressDefault/{id}")
-    public FebsResponse setAddressDefault(@PathVariable("id") Long id) {
-        mallAddressInfoService.setDefaultAddress(id);
-        return new FebsResponse().success().message("设置成功");
-    }
-
-    @ApiOperation(value = "智能识别地址", notes = "智能识别地址")
-    @PostMapping(value = "/identifyAddress")
-    public FebsResponse identifyAddress(@RequestBody  @Valid ApiIdentifyAddressDto identifyAddressDto) {
-        return mallAddressInfoService.identifyAddress(identifyAddressDto);
-    }
-
-    @ApiOperation(value = "根据id获取下一级地址", notes = "根据id获取下一级地址")
-    @PostMapping(value = "/getProvince/{id}")
-    public FebsResponse getProvince(@PathVariable("id") Long id) {
-        return mallAddressInfoService.getProvince(id);
-    }
-
-}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
deleted file mode 100644
index e588d9c..0000000
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ /dev/null
@@ -1,328 +0,0 @@
-package cc.mrbird.febs.mall.controller;
-
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.mall.dto.*;
-import cc.mrbird.febs.mall.entity.MallMember;
-import cc.mrbird.febs.mall.entity.MallMemberCoupon;
-import cc.mrbird.febs.mall.entity.MallMemberPayment;
-import cc.mrbird.febs.mall.service.*;
-import cc.mrbird.febs.mall.vo.*;
-import cc.mrbird.febs.vip.service.IMallVipBenefitsService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.validation.Valid;
-import java.util.Map;
-
-/**
- * @author wzy
- * @date 2021-09-16
- **/
-@Slf4j
-@RestController
-@RequestMapping(value = "/api/member")
-@RequiredArgsConstructor
-@Api(value = "ApiMallMemberController", tags = "商城用户接口类")
-public class ApiMallMemberController {
-
-    private final IApiMallMemberService memberService;
-    private final IMallMemberWithdrawService mallMemberWithdrawService;
-    private final IApiMallMemberWalletService walletService;
-    private final IApiMallAgentService iApiMallAgentService;
-    private final IMallVipBenefitsService mallVipBenefitsService;
-
-    /**
-     * 小程序接收用户数据,更新用户信息
-     */
-    @ApiOperation(value = "小程序接收用户数据", notes = "小程序接收用户数据")
-    @PostMapping(value = "/xcxSaveInfo")
-    public FebsResponse xcxSaveInfo(@RequestBody ApiXcxSaveInfoDto apiXcxSaveInfoDto){
-        return memberService.xcxSaveInfo(apiXcxSaveInfoDto);
-    }
-    
-    @ApiOperation(value = "获取商城用户信息", notes = "获取商城用户信息")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MallMemberVo.class)
-    })
-    @GetMapping(value = "/findMemberInfo")
-    public FebsResponse findMemberInfo() {
-        return memberService.findMemberInfo();
-    }
-
-    @ApiOperation(value = "推出登录", notes = "推出登录")
-    @PostMapping(value = "/logout")
-    public FebsResponse logout() {
-        return memberService.logout();
-    }
-
-    @ApiOperation(value = "获取购物车、订单等角标数量")
-    @GetMapping(value = "/findMarkCnt")
-    public FebsResponse findMarkCnt() {
-        return memberService.findMemberMarkCnt();
-    }
-
-    @ApiOperation(value = "设置支付密码")
-    @PostMapping(value = "/setTradePwd")
-    public FebsResponse setTradePwd(@RequestBody ForgetPwdDto forgetPwdDto) {
-        return memberService.setTradePwd(forgetPwdDto);
-    }
-
-    @ApiOperation(value = "修改用户信息")
-    @PostMapping(value = "/modifyInfo")
-    public FebsResponse modifyInfo(@RequestBody ModifyMemberInfoDto modifyMemberInfoDto) {
-        return memberService.modifyMemberInfo(modifyMemberInfoDto);
-    }
-
-    @ApiOperation(value = "我的团队列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MyTeamVo.class)
-    })
-    @PostMapping(value = "/teamList")
-    public FebsResponse teamList(@RequestBody TeamListDto teamListDto) {
-        return memberService.teamList(teamListDto);
-    }
-
-
-    @ApiOperation(value = "资金流水列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MoneyFlowVo.class)
-    })
-    @PostMapping(value = "/moneyFlow")
-    public FebsResponse moneyFlow(@RequestBody MoneyFlowDto moneyFlowDto) {
-        return memberService.moneyFlows(moneyFlowDto);
-    }
-
-    @ApiOperation(value = "转账")
-    @PostMapping(value = "/transfer")
-    public FebsResponse transfer(@RequestBody @Validated TransferDto transferDto) {
-        memberService.transfer(transferDto);
-        return new FebsResponse().success().message("转账成功");
-    }
-
-    @ApiOperation(value = "提现规则", notes = "提现规则")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = CashOutSettingVo.class)
-    })
-    @GetMapping(value = "/cashOutSetting")
-    public FebsResponse cashOutSetting() {
-        return new FebsResponse().success().data(memberService.cashOutSetting());
-    }
-
-    @ApiOperation(value = "提现")
-    @PostMapping(value = "/withdrawal")
-    public FebsResponse withdrawal(@RequestBody @Validated WithdrawalDto withdrawalDto) {
-        mallMemberWithdrawService.withdrawal(withdrawalDto);
-        return new FebsResponse().success().message("提交成功");
-    }
-
-    @ApiOperation(value = "设置收款方式")
-    @PostMapping(value = "/setPayment")
-    public FebsResponse setPayment(@RequestBody MallMemberPayment mallMemberPayment) {
-        memberService.setPayment(mallMemberPayment);
-        return new FebsResponse().success().message("设置成功");
-    }
-
-    @ApiOperation(value = "获取收款方式")
-    @GetMapping(value = "/findPayment")
-    public FebsResponse findPayment() {
-        return new FebsResponse().success().data(memberService.findMemberPayment());
-    }
-
-    @ApiOperation(value = "绑定手机号")
-    @PostMapping(value = "/bindPhone")
-    public FebsResponse bindPhone(@RequestBody AccountAndCodeDto accountAndCodeDto) {
-        memberService.bindPhone(accountAndCodeDto);
-        return new FebsResponse().success().message("绑定成功");
-    }
-
-    @ApiOperation(value = "可提现金额")
-    @GetMapping(value = "/canWithdrawal")
-    public FebsResponse canWithdrawal() {
-        return new FebsResponse().success().data(memberService.canMoney());
-    }
-
-    @ApiOperation(value = "用户消费排名")
-    @PostMapping(value = "/findRankList")
-    public FebsResponse findRankList(@RequestBody RankListDto rankListDto) {
-        return new FebsResponse().success().data(memberService.findRankList(rankListDto));
-    }
-
-    @ApiOperation(value = "根据邀请码或者手机号获取昵称")
-    @PostMapping(value = "/findMemberInfoByAccount/{phone}")
-    public FebsResponse findMemberInfoByAccount(@PathVariable("phone") String phone) {
-        MallMember account = memberService.findMemberInfoByAccount(phone);
-        if (account == null) {
-            return new FebsResponse().fail().message("用户不存在");
-        }
-
-        MallMemberVo member = new MallMemberVo();
-        member.setName(account.getName());
-        return new FebsResponse().success().data(member);
-    }
-
-    @ApiOperation(value = "佣金划转")
-    @PostMapping(value = "/commissionChange")
-    public FebsResponse commissionChange(@RequestBody @Validated CommissionChangeDto commissionChange) {
-        walletService.commissionChange(commissionChange);
-        return new FebsResponse().success();
-    }
-
-    @ApiOperation(value = "我的权益")
-    @ApiResponses(
-            @ApiResponse(code = 200, message = "success", response = MyCommissionVo.class)
-    )
-    @PostMapping(value = "/myCommission")
-    public FebsResponse myCommission() {
-        return new FebsResponse().success().data(memberService.myCommission());
-    }
-
-    @ApiOperation(value = "商铺申请是否存在")
-    @PostMapping(value = "/shopApplyIsExist")
-    public FebsResponse shopApplyIsExist() {
-        return null;
-    }
-
-    @ApiOperation(value = "充值余额")
-    @PostMapping(value = "/rechargeWallet")
-    public FebsResponse rechargeWallet(@RequestBody @Validated ApiRechargeWalletDto apiRechargeWalletDto) {
-        return memberService.rechargeWallet(apiRechargeWalletDto);
-    }
-
-    /**
-     * 申请代理
-     * @param apiAgentApplyDto
-     * @return
-     */
-    @ApiOperation(value = "申请代理")
-    @PostMapping(value = "/agentApply")
-    public FebsResponse agentApply(@RequestBody @Validated ApiAgentApplyDto apiAgentApplyDto) {
-        return iApiMallAgentService.agentApply(apiAgentApplyDto);
-    }
-
-    /**
-     * 绑定默认推荐人
-     */
-    @ApiOperation(value = "绑定默认推荐人")
-    @PostMapping(value = "/setInvite")
-    public FebsResponse setInvite(@RequestBody @Validated ApiSetInviteDto apiSetInviteDto) {
-        return memberService.setInvite(apiSetInviteDto);
-    }
-
-    @ApiOperation(value = "代理申请信息")
-    @GetMapping(value = "/agentApplyInfo")
-    public FebsResponse agentApplyInfo() {
-        return memberService.agentApplyInfo();
-    }
-
-    @ApiOperation(value = "合伙人权益")
-    @GetMapping(value = "/agentDetail")
-    public FebsResponse agentDetail() {
-        return memberService.agentDetail();
-    }
-
-    @ApiOperation(value = "活动公告")
-    @GetMapping(value = "/activityInfo")
-    public FebsResponse activityInfo() {
-        return memberService.activityInfo();
-    }
-
-    @ApiOperation(value = "通过邀请链接领取优惠卷")
-    @PostMapping(value = "/getCoupon")
-    public FebsResponse getCoupon(@RequestBody GetCouponDto getCouponDto) {
-        return memberService.getCoupon(getCouponDto);
-    }
-
-
-    @ApiOperation(value = "扫码推销员领取优惠卷")
-    @PostMapping(value = "/scanCoupon")
-    public FebsResponse scanCoupon(@RequestBody GetCouponDto getCouponDto) {
-        return memberService.scanCoupon(getCouponDto);
-    }
-
-    @ApiOperation(value = "优惠卷列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class)
-    })
-    @PostMapping(value = "/memberCoupon")
-    public FebsResponse memberCoupon(@RequestBody MallMemberCouponDto mallMemberCouponDto) {
-        return memberService.memberCoupon(mallMemberCouponDto);
-    }
-
-    @ApiOperation(value = "创建订单优惠卷列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class)
-    })
-    @PostMapping(value = "/memberPayCoupon")
-    public FebsResponse memberPayCoupon(@RequestBody MallMemberCouponDto mallMemberCouponDto) {
-        return memberService.memberPayCoupon(mallMemberCouponDto);
-    }
-
-    @ApiOperation(value = "优惠卷详情", notes = "优惠卷详情")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MallMemberCouponVo.class)
-    })
-    @GetMapping(value = "/couponDetails/{id}")
-    public FebsResponse couponDetails(@PathVariable("id") Long id) {
-        return memberService.couponDetails(id);
-    }
-
-
-    @ApiOperation(value = "登录事件", notes = "登录事件")
-    @GetMapping(value = "/birthdayEvent")
-    public FebsResponse birthdayEvent() {
-        Map<String, Object> birthdayEvent = mallVipBenefitsService.birthdayEvent();
-        return new FebsResponse().success().data(birthdayEvent);
-    }
-
-    @ApiOperation(value = "登录事件", notes = "登录事件")
-    @GetMapping(value = "/loginEvent")
-    public FebsResponse loginEvent() {
-        Map<String, Object> loginEvent = memberService.loginEvent();
-        return new FebsResponse().success().data(loginEvent);
-    }
-
-    @ApiOperation(value = "店铺列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MallStoreVo.class)
-    })
-    @PostMapping(value = "/storeList")
-    public FebsResponse storeList(@RequestBody MallStoreDto mallStoreDto) {
-        return memberService.storeList(mallStoreDto);
-    }
-
-    @ApiOperation(value = "店铺机器列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MallStoreItemVo.class)
-    })
-    @PostMapping(value = "/storeItemList")
-    public FebsResponse storeItemList(@RequestBody MallStoreItemDto mallStoreItemDto) {
-        return memberService.storeItemList(mallStoreItemDto);
-    }
-
-    @ApiOperation(value = "绑定用户")
-    @PostMapping(value = "/bindStoreMember")
-    public FebsResponse bindStoreMember(@RequestBody @Validated BindStoreMemberDto bindStoreMemberDto) {
-        return memberService.bindStoreMember(bindStoreMemberDto);
-    }
-
-    @ApiOperation(value = "绑定列表")
-    @ApiResponses({
-            @ApiResponse(code = 200, message = "success", response = MallStoreMemberVo.class)
-    })
-    @PostMapping(value = "/bindList")
-    public FebsResponse bindList() {
-        return memberService.bindList();
-    }
-
-    @ApiOperation(value = "获取检测结果")
-    @PostMapping(value = "/bindResult")
-    public FebsResponse bindResult(@RequestBody @Validated BindResultDto bindResultDto) {
-        return memberService.bindResult(bindResultDto);
-    }
-}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
index bdb6196..d71f5fe 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
@@ -1,6 +1,8 @@
 package cc.mrbird.febs.mall.controller;
 
+import cc.mrbird.febs.common.annotation.Limit;
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.LimitType;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.service.IApiMallOrderInfoService;
 import cc.mrbird.febs.mall.vo.OrderDetailVo;
@@ -27,7 +29,7 @@
 @RestController
 @RequiredArgsConstructor
 @RequestMapping(value = "/api/order")
-@Api(value = "ApiMallOrderController", tags = "订单接口类")
+@Api(value = "ApiMallOrderController", tags = "DS-订单接口类")
 public class ApiMallOrderController {
 
     private final IApiMallOrderInfoService mallOrderInfoService;
@@ -35,26 +37,23 @@
 
     @ApiOperation(value = "创建订单--验证是否允许创建", notes = "创建订单--验证是否允许创建")
     @PostMapping(value = "/createOrderVerify")
+    @Limit(key = "createOrderVerify", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
     public FebsResponse createOrderVerify(@RequestBody ApiCreateOrderVerifyDto apiCreateOrderVerifyDto) {
         return mallOrderInfoService.createOrderVerify(apiCreateOrderVerifyDto);
     }
 
-    @ApiOperation(value = "选择优惠卷", notes = "选择优惠卷")
-    @PostMapping(value = "/chooseCoupon")
-    public FebsResponse chooseCoupon(@RequestBody ApiChooseCouponDto chooseCouponDto) {
-        return mallOrderInfoService.chooseCoupon(chooseCouponDto);
-    }
-
     @ApiOperation(value = "创建订单", notes = "创建订单")
     @PostMapping(value = "/createOrder")
-    public FebsResponse createOrder(@RequestBody AddOrderDto addOrderDto) {
+    @Limit(key = "createOrder", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse createOrder(@RequestBody @Validated AddOrderDto addOrderDto) {
         Long orderId = mallOrderInfoService.createOrder(addOrderDto);
 
-        return new FebsResponse().success().data(orderId).message("创建订单成功");
+        return new FebsResponse().success().data(orderId).message("Order successfully created");
     }
 
     @ApiOperation(value = "取消订单", notes = "取消订单")
     @PostMapping(value = "/cancelOrder/{id}")
+    @Limit(key = "cancelOrder", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
     public FebsResponse cancelOrder(@PathVariable("id") Long id) {
         mallOrderInfoService.cancelOrder(id);
         return new FebsResponse().success();
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiLoginController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiLoginController.java
new file mode 100644
index 0000000..da0db3d
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiLoginController.java
@@ -0,0 +1,60 @@
+package cc.mrbird.febs.mall.controller.dependentStation;
+
+import cc.mrbird.febs.common.annotation.Limit;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.LimitType;
+import cc.mrbird.febs.common.utils.RedisUtils;
+import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.service.IApiMallMemberService;
+import cc.mrbird.febs.pay.model.WxGenerateQrCodeDto;
+import cc.mrbird.febs.pay.service.IXcxPayService;
+import cc.mrbird.febs.pay.util.WechatConfigure;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author wzy
+ * @date 2021-09-16
+ **/
+@Slf4j
+@CrossOrigin("*")
+@RequiredArgsConstructor
+@RestController
+@RequestMapping(value = "/api/login")
+@Api(value = "ApiLoginController", tags = "DS-登录注册类")
+public class ApiLoginController {
+
+    private final IApiMallMemberService memberService;
+
+    @ApiOperation(value = "app注册接口", notes = "app注册接口")
+    @PostMapping(value = "/register")
+    @Limit(key = "register", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse register(@RequestBody @Validated RegisterDto registerDto) {
+        return memberService.register(registerDto);
+    }
+
+
+    @ApiOperation(value = "账号密码登录接口", notes = "账号密码登录接口")
+    @PostMapping(value = "/toLogin")
+    @Limit(key = "toLogin", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse login(@RequestBody @Validated LoginDto loginDto) {
+        return memberService.toLogin(loginDto);
+    }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallAddressInfoController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallAddressInfoController.java
new file mode 100644
index 0000000..bfed0f7
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallAddressInfoController.java
@@ -0,0 +1,54 @@
+package cc.mrbird.febs.mall.controller.dependentStation;
+
+import cc.mrbird.febs.common.annotation.Limit;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.LimitType;
+import cc.mrbird.febs.mall.conversion.MallAddressInfoConversion;
+import cc.mrbird.febs.mall.dto.AddressInfoDto;
+import cc.mrbird.febs.mall.dto.ApiIdentifyAddressDto;
+import cc.mrbird.febs.mall.entity.MallAddressInfo;
+import cc.mrbird.febs.mall.service.IApiMallAddressInfoService;
+import cc.mrbird.febs.mall.vo.AddressInfoVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * @author wzy
+ * @date 2021-09-18
+ **/
+@Slf4j
+@Validated
+@RestController
+@RequiredArgsConstructor
+@RequestMapping(value = "/api/address")
+@Api(value = "ApiMallAddressInfoController", tags = "DS-用户地址管理接口类")
+public class ApiMallAddressInfoController {
+
+    private final IApiMallAddressInfoService mallAddressInfoService;
+
+    @ApiOperation(value = "获取地址信息", notes = "获取地址信息")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = AddressInfoVo.class)
+    })
+    @GetMapping(value = "/findAddressInfo")
+    public FebsResponse findAddressInfo() {
+        return mallAddressInfoService.findAddressInfo();
+    }
+
+    @ApiOperation(value = "修改地址", notes = "修改地址")
+    @PostMapping(value = "/modifyAddress")
+    @Limit(key = "modifyAddress", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse modifyAddress(@RequestBody @Validated AddressInfoDto addressInfoDto) {
+
+        return mallAddressInfoService.modifyAddress(addressInfoDto);
+    }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsCategoryController.java
similarity index 92%
rename from src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsCategoryController.java
rename to src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsCategoryController.java
index 3a525be..1c892db 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsCategoryController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsCategoryController.java
@@ -1,4 +1,4 @@
-package cc.mrbird.febs.mall.controller;
+package cc.mrbird.febs.mall.controller.dependentStation;
 
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.mall.service.IApiMallGoodsCategoryService;
@@ -24,7 +24,7 @@
 @RestController
 @RequiredArgsConstructor
 @RequestMapping(value = "/api/category")
-@Api(value = "ApiMallGoodsCategoryController", tags = "商品分类参数接收类")
+@Api(value = "ApiMallGoodsCategoryController", tags = "DS-商品分类参数接收类")
 public class ApiMallGoodsCategoryController {
 
     private final IApiMallGoodsCategoryService mallGoodsCategoryService;
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsController.java
similarity index 91%
rename from src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
rename to src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsController.java
index b8da8bc..fa5422e 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallGoodsController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallGoodsController.java
@@ -1,6 +1,8 @@
-package cc.mrbird.febs.mall.controller;
+package cc.mrbird.febs.mall.controller.dependentStation;
 
+import cc.mrbird.febs.common.annotation.Limit;
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.LimitType;
 import cc.mrbird.febs.mall.dto.ApiMallGoodsCommentDto;
 import cc.mrbird.febs.mall.dto.MallGoodsQueryDto;
 import cc.mrbird.febs.mall.service.IApiMallGoodsService;
@@ -23,7 +25,7 @@
 @RestController
 @RequiredArgsConstructor
 @RequestMapping(value = "/api/goods")
-@Api(value = "ApiMallGoodsController", tags = "商城商品接口类")
+@Api(value = "ApiMallGoodsController", tags = "DS-商城商品接口类")
 public class ApiMallGoodsController {
     private final IApiMallGoodsService mallGoodsService;
 
@@ -32,6 +34,7 @@
             @ApiResponse(code = 200, message = "success", response = MallGoodsListVo.class)
     })
     @PostMapping(value = "/findMallGoodsList")
+    @Limit(key = "findMallGoodsList", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
     public FebsResponse findMallGoodsList(@RequestBody MallGoodsQueryDto queryDto) {
         return new FebsResponse().success().data(mallGoodsService.findMallGoodsListInPage(queryDto));
     }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallMemberController.java
new file mode 100644
index 0000000..73332c5
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallMemberController.java
@@ -0,0 +1,78 @@
+package cc.mrbird.febs.mall.controller.dependentStation;
+
+import cc.mrbird.febs.common.annotation.Limit;
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.LimitType;
+import cc.mrbird.febs.mall.dto.*;
+import cc.mrbird.febs.mall.entity.MallMember;
+import cc.mrbird.febs.mall.entity.MallMemberCoupon;
+import cc.mrbird.febs.mall.entity.MallMemberPayment;
+import cc.mrbird.febs.mall.service.*;
+import cc.mrbird.febs.mall.vo.*;
+import cc.mrbird.febs.vip.service.IMallVipBenefitsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+/**
+ * @author wzy
+ * @date 2021-09-16
+ **/
+@Slf4j
+@RestController
+@RequestMapping(value = "/api/member")
+@RequiredArgsConstructor
+@Api(value = "ApiMallMemberController", tags = "DS-商城用户接口类")
+public class ApiMallMemberController {
+
+    private final IApiMallMemberService memberService;
+    @ApiOperation(value = "获取用户信息", notes = "获取用户信息")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = MallMemberVo.class)
+    })
+    @GetMapping(value = "/findMemberInfo")
+    public FebsResponse findMemberInfo() {
+        return memberService.findMemberInfo();
+    }
+
+    @ApiOperation(value = "注销", notes = "注销")
+    @PostMapping(value = "/logout")
+    @Limit(key = "logout", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse logout() {
+        return memberService.logout();
+    }
+
+
+    @ApiOperation(value = "编辑个人信息", notes = "编辑个人信息")
+    @PostMapping(value = "/modifyInfo")
+    @Limit(key = "modifyInfo", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse modifyInfo(@RequestBody @Validated ModifyMemberInfoDto modifyMemberInfoDto) {
+        return memberService.modifyMemberInfo(modifyMemberInfoDto);
+    }
+
+
+    @ApiOperation(value = "更改密码", notes = "更改密码")
+    @PostMapping(value = "/forgetPwd")
+    @Limit(key = "forgetPwd", period = 5, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse forgetPwd(@RequestBody @Validated ForgetPwdDto forgetPwdDto) {
+        return memberService.forgetPwd(forgetPwdDto);
+    }
+
+    @ApiOperation(value = "我的售后服务", notes = "我的售后服务")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "success", response = MallSalesServiceVo.class)
+    })
+    @GetMapping(value = "/salesService")
+    public FebsResponse salesService() {
+        return memberService.salesService();
+    }
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallShoppingCartController.java
similarity index 74%
rename from src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java
rename to src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallShoppingCartController.java
index 6d4a4ee..7dc5036 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallShoppingCartController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMallShoppingCartController.java
@@ -1,6 +1,8 @@
-package cc.mrbird.febs.mall.controller;
+package cc.mrbird.febs.mall.controller.dependentStation;
 
+import cc.mrbird.febs.common.annotation.Limit;
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.LimitType;
 import cc.mrbird.febs.mall.dto.AddCartDto;
 import cc.mrbird.febs.mall.dto.DelCartGoodsDto;
 import cc.mrbird.febs.mall.dto.GoodsCntDto;
@@ -28,7 +30,7 @@
 @RestController
 @RequiredArgsConstructor
 @RequestMapping(value = "/api/cart")
-@Api(value = "ApiMallShoppingCartController", tags = "商城购物车接口请求类")
+@Api(value = "ApiMallShoppingCartController", tags = "DS-购物车")
 public class ApiMallShoppingCartController {
 
     private final IApiMallShoppingCartService mallShoppingCartService;
@@ -44,14 +46,16 @@
 
     @ApiOperation(value = "添加商品到购物车", notes = "添加商品到购物车")
     @PostMapping(value = "/addGoodsToCart")
-    public FebsResponse addGoodsToCart(@RequestBody List<AddCartDto> addCartDto) {
+    @Limit(key = "addGoodsToCart", period = 1, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse addGoodsToCart(@RequestBody @Validated List<AddCartDto> addCartDto) {
         mallShoppingCartService.addGoodsToCart(addCartDto);
         return new FebsResponse().success().data("添加成功");
     }
 
     @ApiOperation(value = "从购物车中删除商品", notes = "从购物车中删除商品")
     @PostMapping(value = "/delGoods")
-    public FebsResponse delGoods(@RequestBody DelCartGoodsDto delCartGoodsDto) {
+    @Limit(key = "delGoods", period = 1, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse delGoods(@RequestBody @Validated DelCartGoodsDto delCartGoodsDto) {
         List<String> ids = StrUtil.split(delCartGoodsDto.getIds(), ',');
         mallShoppingCartService.removeByIds(ids);
         return new FebsResponse().success().data("删除成功");
@@ -59,7 +63,8 @@
 
     @ApiOperation(value = "修改购物车商品数量", notes = "修改购物车商品数量")
     @PostMapping(value = "/goodsCnt")
-    public FebsResponse goodsCnt(@RequestBody GoodsCntDto goodsCntDto) {
+    @Limit(key = "goodsCnt", period = 1, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse goodsCnt(@RequestBody @Validated GoodsCntDto goodsCntDto) {
         MallShoppingCart shoppingCart = new MallShoppingCart();
         shoppingCart.setId(goodsCntDto.getId());
         shoppingCart.setCnt(goodsCntDto.getCnt());
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMemberCollectionController.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMemberCollectionController.java
similarity index 64%
rename from src/main/java/cc/mrbird/febs/mall/controller/ApiMemberCollectionController.java
rename to src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMemberCollectionController.java
index 680b621..52540f3 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMemberCollectionController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/ApiMemberCollectionController.java
@@ -1,6 +1,8 @@
-package cc.mrbird.febs.mall.controller;
+package cc.mrbird.febs.mall.controller.dependentStation;
 
+import cc.mrbird.febs.common.annotation.Limit;
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.entity.LimitType;
 import cc.mrbird.febs.mall.dto.AddCollectionDto;
 import cc.mrbird.febs.mall.dto.MemberCollectionListDto;
 import cc.mrbird.febs.mall.service.IMallMemberCollectionService;
@@ -18,17 +20,18 @@
 @RestController
 @RequiredArgsConstructor
 @RequestMapping(value = "/api/collection")
-@Api(value = "ApiMemberCollectionController", tags = "收藏接口类")
+@Api(value = "ApiMemberCollectionController", tags = "DS-收藏")
 public class ApiMemberCollectionController {
 
     @Autowired
     private IMallMemberCollectionService mallMemberCollectionService;
 
     @ApiOperation(value = "添加收藏")
-    @PostMapping(value = "/add")
-    public FebsResponse add(@RequestBody AddCollectionDto addCollectionDto) {
-        mallMemberCollectionService.add(addCollectionDto);
-        return new FebsResponse().success().message("收藏成功");
+    @PostMapping(value = "/addCollection")
+    @Limit(key = "addCollection", period = 1, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
+    public FebsResponse add(@RequestBody @Validated AddCollectionDto addCollectionDto) {
+
+        return mallMemberCollectionService.add(addCollectionDto);
     }
 
     @ApiOperation(value = "获取收藏列表")
@@ -38,9 +41,10 @@
     }
 
     @ApiOperation(value = "取消收藏")
-    @PostMapping(value = "/del/{ids}")
+    @PostMapping(value = "/delCollection/{ids}")
+    @Limit(key = "delCollection", period = 1, count = 1, name = "注册", prefix = "limit",limitType = LimitType.IP)
     public FebsResponse del(@PathVariable("ids") String ids) {
         mallMemberCollectionService.del(ids);
-        return new FebsResponse().success().message("取消成功");
+        return new FebsResponse().success().message("Cancelled successfully");
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/enums/SalesServiceEnums.java b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/enums/SalesServiceEnums.java
new file mode 100644
index 0000000..70f86ad
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/controller/dependentStation/enums/SalesServiceEnums.java
@@ -0,0 +1,21 @@
+package cc.mrbird.febs.mall.controller.dependentStation.enums;
+
+import lombok.Getter;
+
+@Getter
+public enum SalesServiceEnums {
+
+    // 发货人
+    WHATSAPP("SALES_SERVICE", "WHATSAPP"),
+    PHONE("SALES_SERVICE", "PHONE"),
+    EMAIL("SALES_SERVICE", "EMAIL");
+
+    private String type;
+
+    private String code;
+
+    SalesServiceEnums(String type, String code) {
+        this.type = type;
+        this.code = code;
+    }
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddCollectionDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddCollectionDto.java
index 1316118..f853078 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddCollectionDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddCollectionDto.java
@@ -5,10 +5,13 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotBlank;
+
 @Data
 @ApiModel(value = "AddCollectionDto", description = "添加收藏接受参数类")
 public class AddCollectionDto {
 
+    @NotBlank(message = "The product cannot be empty")
     @ApiModelProperty(value = "商品ID")
     private Long goodsId;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
index 2e8c672..5d5d49c 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddOrderDto.java
@@ -20,17 +20,8 @@
     @ApiModelProperty(value = "地址ID", example = "1")
     private Long addressId;
 
-    @ApiModelProperty(value = "提货团长特征码", example = "1")
-    private String takeUniqueCode;
-
-//    @ApiModelProperty(value = "配送方式 1:自提 2:快递(默认自提)", example = "1")
-//    private Integer deliveryType;
-
     @ApiModelProperty(value = "订单提交类型", example = "1从购物车提交, 2从商品直接提交")
     private Integer type;
-
-    @ApiModelProperty(value = "是否送货上门  1:是 2:否", example = "1")
-    private Integer isHome;
 
     @ApiModelProperty(value = "备注")
     private String remark;
@@ -40,12 +31,6 @@
 
     @ApiModelProperty(value = "1-普通订单/2-积分订单")
     private Integer orderType;
-
-    @ApiModelProperty(value = "会员优惠卷ID")
-    private Long memberCouponId;
-
-    @ApiModelProperty(value = "业绩所属邀请码")
-    private String memberInviteId;
 
     @ApiModelProperty(value = "商品明细")
     private List<AddOrderItemDto> items;
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/AddressInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/AddressInfoDto.java
index 2c56c60..5128008 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/AddressInfoDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/AddressInfoDto.java
@@ -14,39 +14,49 @@
 @ApiModel(value = "AddressInfoDto", description = "地址接收参数类")
 public class AddressInfoDto {
 
-    @ApiModelProperty(value = "id", example = "编辑的时候传")
+    @NotBlank(message = "{required}")
+    @ApiModelProperty(value = "id")
     private Long id;
 
-    @NotBlank(message = "参数不能为空")
-    @ApiModelProperty(value = "姓名", example = "王")
+    @NotBlank(message = "Last name required")
+    @ApiModelProperty(value = "Last name")
     private String name;
 
-    @NotBlank(message = "参数不能为空")
-    @ApiModelProperty(value = "手机号", example = "15773001234")
-    private String phone;
-    //省
-    @NotBlank(message = "参数不能为空")
-    @ApiModelProperty(value = "省", example = "北京市朝阳区")
-    private String province;
-    //市
-    @NotBlank(message = "参数不能为空")
-    @ApiModelProperty(value = "市", example = "北京市朝阳区")
-    private String city;
+    @NotBlank(message = "First name required")
+    @ApiModelProperty(value = "First name")
+    private String firstName;
 
-    @NotBlank(message = "参数不能为空")
-    @ApiModelProperty(value = "地区", example = "北京市朝阳区")
-    private String area;
 
-    @NotBlank(message = "参数不能为空")
-    @ApiModelProperty(value = "地址", example = "朝阳街道110栋119号")
+
+    @NotBlank(message = "Address1 required")
+    @ApiModelProperty(value = "Address1")
     private String address;
 
-    @ApiModelProperty(value = "经度", example = "112.12345678")
+    @ApiModelProperty(value = "Address2")
+    private String area;
+    @ApiModelProperty(value = "Postcode")
+    private String postcode;
+
+    @ApiModelProperty(value = "Phone Number")
+    private String phone;
+    @ApiModelProperty(value = "City")
+    private String city;
+    @NotBlank(message = "State / Province required")
+    @ApiModelProperty(value = "State / Province")
+    private String province;
+    @NotBlank(message = "Country/Region required")
+    @ApiModelProperty(value = "Country/Region")
+    private String country;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
     private String longitude;
 
-    @ApiModelProperty(value = "纬度", example = "87.12345678")
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
     private String latitude;
-
-    @ApiModelProperty(value = "是否默认", example = "1是2否")
-    private Integer isDefault;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java
index 2e402c8..890768c 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ForgetPwdDto.java
@@ -15,15 +15,16 @@
 @ApiModel(value = "ForgetPwdDto", description = "忘记/修改密码参数接收类")
 public class ForgetPwdDto {
 
-    @NotBlank(message = "账号不能为空")
-    @ApiModelProperty(value = "账号", example = "15773001234")
-    private String account;
-
-    @NotBlank(message = "密码不能为空")
+    @NotBlank(message = "The password cannot be empty")
     @ApiModelProperty(value = "新密码", example = "123456")
-    private String password;
+    private String Password;
 
-    @NotBlank(message = "验证码不能为空")
-    @ApiModelProperty(value = "验证码", example = "123456")
-    private String code;
+    @NotBlank(message = "The new password cannot be empty")
+    @ApiModelProperty(value = "新密码", example = "123456")
+    private String newPassword;
+
+    @NotBlank(message = "Confirm that the new password cannot be empty")
+    @ApiModelProperty(value = "新密码", example = "123456")
+    private String newPasswordAgain;
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/LoginDto.java b/src/main/java/cc/mrbird/febs/mall/dto/LoginDto.java
index 2870467..f105b85 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/LoginDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/LoginDto.java
@@ -14,11 +14,11 @@
 @ApiModel(value = "LoginDto", description = "登录接口参数接收类")
 public class LoginDto {
 
-    @NotBlank(message = "账号不能为空")
-    @ApiModelProperty(value = "账号", example = "15773001234")
+    @NotBlank(message = "The account cannot be empty")
+    @ApiModelProperty(value = "手机号", example = "15773001234")
     private String account;
 
-    @NotBlank(message = "密码不能为空")
+    @NotBlank(message = "The password cannot be empty")
     @ApiModelProperty(value = "密码", example = "123456")
     private String password;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ModifyMemberInfoDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ModifyMemberInfoDto.java
index 2386d42..3ca9090 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ModifyMemberInfoDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ModifyMemberInfoDto.java
@@ -18,15 +18,4 @@
     @ApiModelProperty(value = "头像", example = "123")
     private String photo;
 
-    @ApiModelProperty(value = "性别 男 女", example = "123")
-    private String sex;
-
-    @ApiModelProperty(value = "生日", example = "123")
-    private String birthday;
-
-    @ApiModelProperty(value = "真实姓名")
-    private String realName;
-
-    @ApiModelProperty(value = "邮箱")
-    private String mailAddress;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java
index 0662267..a1e4d9e 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/RegisterDto.java
@@ -14,30 +14,12 @@
 @ApiModel(value = "RegisterDto", description = "用户注册参数接收类")
 public class RegisterDto {
 
-    @NotBlank(message = "账号不能为空")
+    @NotBlank(message = "The account cannot be empty")
     @ApiModelProperty(value = "手机号", example = "15773001234")
     private String account;
 
-    @ApiModelProperty(value = "类型 1-手机号 2-邮箱", example = "1")
-    private String type = "1";
-
-    @NotBlank(message = "验证码不能为空")
-    @ApiModelProperty(value = "验证码", example = "123456")
-    private String code;
-
-    @NotBlank(message = "密码不能为空")
+    @NotBlank(message = "The password cannot be empty")
     @ApiModelProperty(value = "密码", example = "123456")
     private String password;
-
-    @NotBlank(message = "密码不能为空")
-    @ApiModelProperty(value = "重复密码", example = "123456")
-    private String passwordAgain;
-
-    //    @NotBlank(message = "邀请码不能为空")
-    @ApiModelProperty(value = "邀请码")
-    private String inviteId;
-
-    @ApiModelProperty(hidden = true)
-    private String registType;
 
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallAddressInfo.java b/src/main/java/cc/mrbird/febs/mall/entity/MallAddressInfo.java
index 04e007c..6673d1e 100644
--- a/src/main/java/cc/mrbird/febs/mall/entity/MallAddressInfo.java
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallAddressInfo.java
@@ -14,7 +14,10 @@
 
     private String name;
 
+    private String fristName;
+
     private String phone;
+    private String postcode;
 
     private Long memberId;
 
@@ -48,5 +51,6 @@
     private String province;
     //市
     private String city;
+    private String country;
 
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallActService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallActService.java
deleted file mode 100644
index 629fc1b..0000000
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallActService.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package cc.mrbird.febs.mall.service;
-
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.mall.dto.ApiMallActListDto;
-import cc.mrbird.febs.mall.dto.ApiMallActWinDetailsDto;
-import cc.mrbird.febs.mall.vo.*;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-
-public interface IApiMallActService {
-
-    IPage<ApiMallActListVo> findApiMallActListInPage(ApiMallActListDto apiMallActListDto);
-
-    ApiActivityVo findApiMallActDetailsById(Long id);
-
-    IPage<ApiMallActWinDetailsVo> findApiMallActWinDetailsInPage(ApiMallActWinDetailsDto apiMallActWinDetailsDto);
-
-    ApiMallAwardDetailsVo luckDraw(long actId);
-
-    ApiCouponVo findApiCouponById(Long id);
-
-    FebsResponse addCoupon(Long id);
-}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallAddressInfoService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallAddressInfoService.java
index 915eba2..d496e13 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallAddressInfoService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallAddressInfoService.java
@@ -11,15 +11,8 @@
 
 public interface IApiMallAddressInfoService extends IService<MallAddressInfo> {
 
-    List<AddressInfoVo> findAddressInfoList();
+    FebsResponse findAddressInfo();
 
-    FebsResponse addAddress(AddressInfoDto addressInfoDto);
+    FebsResponse modifyAddress(AddressInfoDto addressInfoDto);
 
-    void modifyAddress(AddressInfoDto addressInfoDto);
-
-    void setDefaultAddress(Long id);
-
-    FebsResponse identifyAddress(ApiIdentifyAddressDto identifyAddressDto);
-
-    FebsResponse getProvince(Long id);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
index 48a2488..2b2a227 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -27,84 +27,26 @@
 
     FebsResponse findMemberInfo();
 
-    FebsResponse findMemberMarkCnt();
-
-    FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto);
-
     FebsResponse modifyMemberInfo(ModifyMemberInfoDto modifyMemberInfoDto);
 
-    FebsResponse teamList(TeamListDto teamListDto);
-
-    MyTeamVo teamListForMine(TeamListDto teamListDto);
-
-    FebsResponse moneyFlows(MoneyFlowDto moneyFlowDto);
 
     void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status, Integer flowType);
 
-    void transfer(TransferDto transferDto);
-
-    void setPayment(MallMemberPayment mallMemberPayment);
-
-    MallMemberPayment findMemberPayment();
-
     void bindPhone(AccountAndCodeDto accountAndCodeDto);
-
-    BigDecimal canMoney();
-
-    List<MallMember> findRankList(RankListDto rankListDto);
-
-    MallMember findMemberInfoByAccount(String phone);
-
-    MyCommissionVo myCommission();
 
     void shopApply(ShopApplyDto shopApplyDto);
 
     MallShopApply findNewestApply();
 
-    void addRegisterAppeal(RegisterAppealDto registerAppeal);
-
-    CashOutSettingVo cashOutSetting();
-
     List<ShopListVo> findShopListVo(ShopListDto shopListDto);
 
-    FebsResponse xcxLogin(ApiXcxLoginDto apiXcxLoginDto) throws IOException;
-
-    FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto);
-
-    FebsResponse xcxPhoneLogin(ApiXcxPhoneLoginDto apiXcxPhoneLoginDto);
-
-    FebsResponse xcxOpen(ApiXcxOpenDto apiXcxOpenDto);
-
-    FebsResponse rechargeWallet(ApiRechargeWalletDto apiRechargeWalletDto);
 
     void updateMemberAgent(Long memberId,String levelCode);
 
-    FebsResponse agentDetail();
-
-    FebsResponse activityInfo();
-
-    FebsResponse agentApplyInfo();
-
-    FebsResponse getCoupon(GetCouponDto getCouponDto);
-
-    FebsResponse scanCoupon(GetCouponDto getCouponDto);
-
-    FebsResponse memberCoupon(MallMemberCouponDto mallMemberCouponDto);
     FebsResponse memberPayCoupon(MallMemberCouponDto mallMemberCouponDto);
 
-    FebsResponse couponDetails(Long id);
 
     FebsResponse setInvite(ApiSetInviteDto apiSetInviteDto);
 
-    Map<String, Object> loginEvent();
-
-    FebsResponse storeList(MallStoreDto mallStoreDto);
-
-    FebsResponse storeItemList(MallStoreItemDto mallStoreItemDto);
-
-    FebsResponse bindStoreMember(BindStoreMemberDto bindStoreMemberDto);
-
-    FebsResponse bindList();
-
-    FebsResponse bindResult(BindResultDto bindResultDto);
+    FebsResponse salesService();
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IMallMemberCollectionService.java b/src/main/java/cc/mrbird/febs/mall/service/IMallMemberCollectionService.java
index 2e7e118..93339df 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IMallMemberCollectionService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IMallMemberCollectionService.java
@@ -1,5 +1,6 @@
 package cc.mrbird.febs.mall.service;
 
+import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.mall.dto.AddCollectionDto;
 import cc.mrbird.febs.mall.dto.MemberCollectionListDto;
 import cc.mrbird.febs.mall.entity.MallMemberCollection;
@@ -11,7 +12,7 @@
 
 public interface IMallMemberCollectionService extends IService<MallMemberCollection> {
 
-    void add(AddCollectionDto addCollectionDto);
+    FebsResponse add(AddCollectionDto addCollectionDto);
 
     List<CollectionListVo> findMemberCollectionList(MemberCollectionListDto memberCollectionListDto);
 
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java
deleted file mode 100644
index 0113b5d..0000000
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallActServiceImpl.java
+++ /dev/null
@@ -1,607 +0,0 @@
-package cc.mrbird.febs.mall.service.impl;
-
-import cc.mrbird.febs.common.entity.FebsResponse;
-import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
-import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
-import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
-import cc.mrbird.febs.common.exception.FebsException;
-import cc.mrbird.febs.common.utils.LoginUserUtil;
-import cc.mrbird.febs.mall.conversion.MallActivityConversion;
-import cc.mrbird.febs.mall.conversion.MallGoodsCouponConversion;
-import cc.mrbird.febs.mall.dto.ApiMallActListDto;
-import cc.mrbird.febs.mall.dto.ApiMallActWinDetailsDto;
-import cc.mrbird.febs.mall.entity.*;
-import cc.mrbird.febs.mall.mapper.*;
-import cc.mrbird.febs.mall.service.IApiMallActService;
-import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
-import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
-import cc.mrbird.febs.mall.vo.*;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.core.util.RandomUtil;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class ApiMallActServiceImpl extends ServiceImpl<MallActSetMapper, MallActSet> implements IApiMallActService {
-
-    private final MallActAwardSetMapper mallActAwardSetMapper;
-    private final MallMemberMapper mallMemberMapper;
-    private final MallActWinRecordMapper mallActWinRecordMapper;
-    private final MallActLuckdrawRecordMapper mallActLuckdrawRecordMapper;
-    private final MallMemberWalletMapper mallMemberWalletMapper;
-    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
-    private final IMallMoneyFlowService mallMoneyFlowService;
-    private final IApiMallMemberWalletService mallMemberWalletService;
-    private final MallActivityMapper mallActivityMapper;
-    private final MallGoodsCouponMapper mallGoodsCouponMapper;
-    private final MallMemberCouponMapper mallMemberCouponMapper;
-
-    @Override
-    public IPage<ApiMallActListVo> findApiMallActListInPage(ApiMallActListDto apiMallActListDto) {
-        Page<ApiMallActListVo> page = new Page<>(apiMallActListDto.getPageNow(), apiMallActListDto.getPageSize());
-        return this.baseMapper.selectApiMallActListInPage(apiMallActListDto, page);
-    }
-
-    @Override
-    public ApiActivityVo findApiMallActDetailsById(Long id) {
-        MallActivity mallActivity = mallActivityMapper.selectById(id);
-        ApiActivityVo apiActivityVo = MallActivityConversion.INSTANCE.entityToApiActivityVo(mallActivity);
-        return apiActivityVo;
-    }
-
-    @Override
-    public IPage<ApiMallActWinDetailsVo> findApiMallActWinDetailsInPage(ApiMallActWinDetailsDto apiMallActWinDetailsDto) {
-
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMember mallMember = mallMemberMapper.selectById(memberId);
-        if(ObjectUtil.isEmpty(mallMember)){
-            throw new FebsException("用户不存在");
-        }
-        apiMallActWinDetailsDto.setMemberId(memberId);
-
-        Long actId = apiMallActWinDetailsDto.getActId();
-        MallActSet mallActSet = this.baseMapper.selectById(actId);
-        if(ObjectUtil.isEmpty(mallActSet)){
-            throw new FebsException("活动不存在");
-        }
-        Page<ApiMallActWinDetailsVo> page = new Page<>(apiMallActWinDetailsDto.getPageNow(), apiMallActWinDetailsDto.getPageSize());
-        return mallActWinRecordMapper.selectApiMallActWinDetailsListInPage(apiMallActWinDetailsDto,page);
-    }
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public ApiMallAwardDetailsVo luckDraw(long actId) {
-        ApiMallAwardDetailsVo apiMallAwardDetailsVo = new ApiMallAwardDetailsVo();
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMember mallMember = mallMemberMapper.selectById(memberId);
-        if(ObjectUtil.isEmpty(mallMember)){
-            throw new FebsException("用户不存在");
-        }
-
-        MallActSet mallActSet = this.baseMapper.selectById(actId);
-        if(ObjectUtil.isEmpty(mallActSet)){
-            throw new FebsException("活动不存在");
-        }
-        Integer actStatus = mallActSet.getActStatus();
-        if(MallActSet.ACT_STATUS_DISABLED == actStatus){
-            throw new FebsException("活动还没开始");
-        }
-        /**
-         * 获取用户积分数,判断能不能抽奖
-         * 减少对应的积分数量
-         * 较少奖品的已抽奖
-         * 生成一条抽奖记录
-         */
-
-        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
-        if(ObjectUtil.isEmpty(wallet)){
-            throw new FebsException("账户不存在");
-        }
-        BigDecimal commission = wallet.getCommission();
-        BigDecimal prizeScore = wallet.getPrizeScore();
-        Integer actScoreCnt = mallActSet.getActScoreCnt();
-        if(prizeScore.compareTo(new BigDecimal(actScoreCnt))<0){
-            throw new FebsException("竞猜积分不足");
-        }
-        /**
-         * 中奖概率 20%
-         * 每次抽奖产生一个随机数要大于8,则中奖
-         * 历史10条抽奖记录有中奖过,中奖记录少于两条,则中奖
-         */
-        //获取中奖概率
-        DataDictionaryCustom scoreDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                DataDictionaryEnum.WIN_SCORE.getType(),
-                DataDictionaryEnum.WIN_SCORE.getCode());
-        DataDictionaryCustom cashDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                DataDictionaryEnum.WIN_CASH.getType(),
-                DataDictionaryEnum.WIN_CASH.getCode());
-        String scoreDicValue = scoreDic.getValue() == null? "0":scoreDic.getValue();
-        String cashDicValue = cashDic.getValue() == null? "0":cashDic.getValue();
-        BigDecimal totalProbability = new BigDecimal(scoreDicValue).add(new BigDecimal(cashDicValue));
-        //获取那个更大一点的几率
-        BigDecimal maxProbability = BigDecimal.ZERO;
-        BigDecimal minProbability = BigDecimal.ZERO;
-        Integer maxAwardType = 0;
-        Integer minAwardType = 0;
-        if(new BigDecimal(scoreDicValue).compareTo(new BigDecimal(cashDicValue)) < 0){
-            maxProbability = new BigDecimal(cashDicValue);
-            minProbability = new BigDecimal(scoreDicValue);
-            maxAwardType = MallActAwardSet.AWARD_TYPE_YJ;
-            minAwardType = MallActAwardSet.AWARD_TYPE_JF;
-        }else{
-            maxProbability = new BigDecimal(scoreDicValue);
-            minProbability = new BigDecimal(cashDicValue);
-            maxAwardType = MallActAwardSet.AWARD_TYPE_JF;
-            minAwardType = MallActAwardSet.AWARD_TYPE_YJ;
-        }
-
-        BigDecimal multiply = totalProbability.multiply(new BigDecimal(100));
-        BigDecimal failureScope = new BigDecimal(100).subtract(multiply);
-        int randomInt = RandomUtil.randomInt(1, 100);
-        //小于failureScope这个数字,则没中奖
-        if(new BigDecimal(randomInt).compareTo(failureScope) <= 0){
-            //抽奖记录
-            MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-            mallActLuckdrawRecord.setActId(actId);
-            mallActLuckdrawRecord.setActName(mallActSet.getActName());
-            mallActLuckdrawRecord.setMemberId(memberId);
-            mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-            mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED);
-            mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-            List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY);
-            if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){
-                apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage());
-                apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName());
-                apiMallAwardDetailsVo.setAwardId(mallActAwardSetXXCY.get(0).getId());
-            }else{
-                apiMallAwardDetailsVo.setAwardName("未中奖");
-            }
-            apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY);
-        }else if(new BigDecimal(randomInt).compareTo(failureScope) > 0
-                && new BigDecimal(randomInt).compareTo(failureScope.add(maxProbability.multiply(new BigDecimal(100)))) <= 0){
-            //大于failureScope.add(maxProbability.multiply(new BigDecimal(100)))这个数字,则中奖
-            //获取最新的十条抽奖记录
-            List<MallActLuckdrawRecord> records = mallActLuckdrawRecordMapper.selectRecordByMemberIdAndActId(memberId,actId);
-            if(CollUtil.isNotEmpty(records)){
-                //中奖次数
-                Integer count = 0;
-                for(MallActLuckdrawRecord mallActLuckdrawRecord : records){
-                    Integer status = mallActLuckdrawRecord.getStatus();
-                    if(MallActLuckdrawRecord.STATUS_ENABLE == status){
-                        count = count + 1;
-                    }
-                }
-                if(new BigDecimal(count).compareTo(maxProbability.multiply(new BigDecimal(10))) < 0){
-                    //获取活动下该类别的奖品
-                    List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,maxAwardType);
-                    if(CollUtil.isEmpty(mallActAwardSets)){
-                        //抽奖记录
-                        MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                        mallActLuckdrawRecord.setActId(actId);
-                        mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                        mallActLuckdrawRecord.setMemberId(memberId);
-                        mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                        mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED);
-                        mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                        List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY);
-                        if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){
-                            apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage());
-                            apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName());
-                            apiMallAwardDetailsVo.setAwardId(mallActAwardSetXXCY.get(0).getId());
-                        }else{
-                            apiMallAwardDetailsVo.setAwardName("未中奖");
-                        }
-                        apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY);
-                    }else{
-                        List<MallActAwardSet> idList = new ArrayList();
-                        for(MallActAwardSet mallActAwardSet : mallActAwardSets){
-                            Integer awardTotal = mallActAwardSet.getAwardTotal();
-                            Integer awardCnt = mallActAwardSet.getAwardCnt();
-                            if(awardCnt < awardTotal){
-                                idList.add(mallActAwardSet);
-                            }
-                        }
-                        MallActAwardSet mallActAwardSet = new MallActAwardSet();
-                        if(idList.size() <= 1){
-                            mallActAwardSet = idList.get(0);
-                        }else{
-                            int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1);
-                            mallActAwardSet = idList.get(randomIdIndex);
-                        }
-                        mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1);
-                        mallActAwardSetMapper.updateById(mallActAwardSet);
-
-                        MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                        mallActLuckdrawRecord.setActId(actId);
-                        mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                        mallActLuckdrawRecord.setMemberId(memberId);
-                        mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                        mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE);
-                        mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                        MallActWinRecord mallActWinRecord = new MallActWinRecord();
-                        mallActWinRecord.setMemberId(memberId);
-                        mallActWinRecord.setActId(actId);
-                        mallActWinRecord.setActName(mallActSet.getActName());
-                        mallActWinRecord.setAwardId(mallActAwardSet.getId());
-                        mallActWinRecord.setAwardName(mallActAwardSet.getAwardName());
-                        mallActWinRecord.setAwardType(mallActAwardSet.getAwardType());
-                        mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue());
-                        mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId());
-                        mallActWinRecordMapper.insert(mallActWinRecord);
-
-                        apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName());
-                        apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType());
-                        apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue());
-                        apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage());
-                        apiMallAwardDetailsVo.setAwardId(mallActAwardSet.getId());
-
-                        if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){
-                            prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                        }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){
-                            commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                        }
-                    }
-                }else{
-                    //抽奖记录
-                    MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                    mallActLuckdrawRecord.setActId(actId);
-                    mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                    mallActLuckdrawRecord.setMemberId(memberId);
-                    mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                    mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED);
-                    mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                    List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY);
-                    if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){
-                        apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage());
-                        apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName());
-                        apiMallAwardDetailsVo.setAwardId(mallActAwardSetXXCY.get(0).getId());
-                    }else{
-                        apiMallAwardDetailsVo.setAwardName("未中奖");
-                    }
-                    apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY);
-                }
-            }else{
-                //获取活动下该类别的奖品
-                List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,maxAwardType);
-                if(CollUtil.isEmpty(mallActAwardSets)){
-                    //抽奖记录
-                    MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                    mallActLuckdrawRecord.setActId(actId);
-                    mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                    mallActLuckdrawRecord.setMemberId(memberId);
-                    mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                    mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED);
-                    mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                    List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY);
-                    if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){
-                        apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage());
-                        apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName());
-                        apiMallAwardDetailsVo.setAwardId(mallActAwardSetXXCY.get(0).getId());
-                    }else{
-                        apiMallAwardDetailsVo.setAwardName("未中奖");
-                    }
-                    apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY);
-                }else{
-                    List<MallActAwardSet> idList = new ArrayList();
-                    for(MallActAwardSet mallActAwardSet : mallActAwardSets){
-                        Integer awardTotal = mallActAwardSet.getAwardTotal();
-                        Integer awardCnt = mallActAwardSet.getAwardCnt();
-                        if(awardCnt < awardTotal){
-                            idList.add(mallActAwardSet);
-                        }
-                    }
-                    MallActAwardSet mallActAwardSet = new MallActAwardSet();
-                    if(idList.size() <= 1){
-                        mallActAwardSet = idList.get(0);
-                    }else{
-                        int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1);
-                        mallActAwardSet = idList.get(randomIdIndex);
-                    }
-                    mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1);
-                    mallActAwardSetMapper.updateById(mallActAwardSet);
-
-                    MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                    mallActLuckdrawRecord.setActId(actId);
-                    mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                    mallActLuckdrawRecord.setMemberId(memberId);
-                    mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                    mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE);
-                    mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                    MallActWinRecord mallActWinRecord = new MallActWinRecord();
-                    mallActWinRecord.setMemberId(memberId);
-                    mallActWinRecord.setActId(actId);
-                    mallActWinRecord.setActName(mallActSet.getActName());
-                    mallActWinRecord.setAwardId(mallActAwardSet.getId());
-                    mallActWinRecord.setAwardName(mallActAwardSet.getAwardName());
-                    mallActWinRecord.setAwardType(mallActAwardSet.getAwardType());
-                    mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue());
-                    mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId());
-                    mallActWinRecordMapper.insert(mallActWinRecord);
-
-                    apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName());
-                    apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType());
-                    apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue());
-                    apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage());
-                    apiMallAwardDetailsVo.setAwardId(mallActAwardSet.getId());
-
-                    if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){
-                        prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                    }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){
-                        commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                    }
-                }
-            }
-        }else{
-            //中奖
-            //获取最新的十条抽奖记录
-            List<MallActLuckdrawRecord> records = mallActLuckdrawRecordMapper.selectRecordByMemberIdAndActId(memberId,actId);
-            if(CollUtil.isNotEmpty(records)){
-                //中奖次数
-                Integer count = 0;
-                for(MallActLuckdrawRecord mallActLuckdrawRecord : records){
-                    Integer status = mallActLuckdrawRecord.getStatus();
-                    if(MallActLuckdrawRecord.STATUS_ENABLE == status){
-                        count = count + 1;
-                    }
-                }
-                if(new BigDecimal(count).compareTo(minProbability.multiply(new BigDecimal(10))) < 0){
-                    //获取活动下该类别的奖品
-                    List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,minAwardType);
-                    if(CollUtil.isEmpty(mallActAwardSets)){
-                        //抽奖记录
-                        MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                        mallActLuckdrawRecord.setActId(actId);
-                        mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                        mallActLuckdrawRecord.setMemberId(memberId);
-                        mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                        mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED);
-                        mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                        List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY);
-                        if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){
-                            apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage());
-                            apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName());
-                            apiMallAwardDetailsVo.setAwardId(mallActAwardSetXXCY.get(0).getId());
-                        }else{
-                            apiMallAwardDetailsVo.setAwardName("未中奖");
-                        }
-                        apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY);
-                    }else{
-                        List<MallActAwardSet> idList = new ArrayList();
-                        for(MallActAwardSet mallActAwardSet : mallActAwardSets){
-                            Integer awardTotal = mallActAwardSet.getAwardTotal();
-                            Integer awardCnt = mallActAwardSet.getAwardCnt();
-                            if(awardCnt < awardTotal){
-                                idList.add(mallActAwardSet);
-                            }
-                        }
-                        MallActAwardSet mallActAwardSet = new MallActAwardSet();
-                        if(idList.size() <= 1){
-                            mallActAwardSet = idList.get(0);
-                        }else{
-                            int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1);
-                            mallActAwardSet = idList.get(randomIdIndex);
-                        }
-                        mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1);
-                        mallActAwardSetMapper.updateById(mallActAwardSet);
-
-                        MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                        mallActLuckdrawRecord.setActId(actId);
-                        mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                        mallActLuckdrawRecord.setMemberId(memberId);
-                        mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                        mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE);
-                        mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                        MallActWinRecord mallActWinRecord = new MallActWinRecord();
-                        mallActWinRecord.setMemberId(memberId);
-                        mallActWinRecord.setActId(actId);
-                        mallActWinRecord.setActName(mallActSet.getActName());
-                        mallActWinRecord.setAwardId(mallActAwardSet.getId());
-                        mallActWinRecord.setAwardName(mallActAwardSet.getAwardName());
-                        mallActWinRecord.setAwardType(mallActAwardSet.getAwardType());
-                        mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue());
-                        mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId());
-                        mallActWinRecordMapper.insert(mallActWinRecord);
-
-                        apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName());
-                        apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType());
-                        apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue());
-                        apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage());
-                        apiMallAwardDetailsVo.setAwardId(mallActAwardSet.getId());
-
-                        if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){
-                            prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                        }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){
-                            commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                        }
-                    }
-                }else{
-                    //抽奖记录
-                    MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                    mallActLuckdrawRecord.setActId(actId);
-                    mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                    mallActLuckdrawRecord.setMemberId(memberId);
-                    mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                    mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED);
-                    mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                    List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY);
-                    if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){
-                        apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage());
-                        apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName());
-                        apiMallAwardDetailsVo.setAwardId(mallActAwardSetXXCY.get(0).getId());
-                    }else{
-                        apiMallAwardDetailsVo.setAwardName("未中奖");
-                    }
-                    apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY);
-                }
-            }else{
-                //获取活动下该类别的奖品
-                List<MallActAwardSet> mallActAwardSets = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId,minAwardType);
-                if(CollUtil.isEmpty(mallActAwardSets)){
-                    //抽奖记录
-                    MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                    mallActLuckdrawRecord.setActId(actId);
-                    mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                    mallActLuckdrawRecord.setMemberId(memberId);
-                    mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                    mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_DISABLED);
-                    mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                    List<MallActAwardSet> mallActAwardSetXXCY = mallActAwardSetMapper.selectMallActAwardByActIdAndAwardType(actId, MallActAwardSet.AWARD_TYPE_XXCY);
-                    if(CollUtil.isNotEmpty(mallActAwardSetXXCY)){
-                        apiMallAwardDetailsVo.setAwardImage(mallActAwardSetXXCY.get(0).getAwardImage());
-                        apiMallAwardDetailsVo.setAwardName(mallActAwardSetXXCY.get(0).getAwardName());
-                        apiMallAwardDetailsVo.setAwardId(mallActAwardSetXXCY.get(0).getId());
-                    }else{
-                        apiMallAwardDetailsVo.setAwardName("未中奖");
-                    }
-                    apiMallAwardDetailsVo.setAwardType(MallActAwardSet.AWARD_TYPE_XXCY);
-                }else{
-                    List<MallActAwardSet> idList = new ArrayList();
-                    for(MallActAwardSet mallActAwardSet : mallActAwardSets){
-                        Integer awardTotal = mallActAwardSet.getAwardTotal();
-                        Integer awardCnt = mallActAwardSet.getAwardCnt();
-                        if(awardCnt < awardTotal){
-                            idList.add(mallActAwardSet);
-                        }
-                    }
-                    MallActAwardSet mallActAwardSet = new MallActAwardSet();
-                    if(idList.size() <= 1){
-                        mallActAwardSet = idList.get(0);
-                    }else{
-                        int randomIdIndex = RandomUtil.randomInt(0, idList.size()-1);
-                        mallActAwardSet = idList.get(randomIdIndex);
-                    }
-                    mallActAwardSet.setAwardCnt(mallActAwardSet.getAwardCnt() + 1);
-                    mallActAwardSetMapper.updateById(mallActAwardSet);
-
-                    MallActLuckdrawRecord mallActLuckdrawRecord = new MallActLuckdrawRecord();
-                    mallActLuckdrawRecord.setActId(actId);
-                    mallActLuckdrawRecord.setActName(mallActSet.getActName());
-                    mallActLuckdrawRecord.setMemberId(memberId);
-                    mallActLuckdrawRecord.setActScoreCnt(actScoreCnt);
-                    mallActLuckdrawRecord.setStatus(MallActLuckdrawRecord.STATUS_ENABLE);
-                    mallActLuckdrawRecordMapper.insert(mallActLuckdrawRecord);
-
-                    MallActWinRecord mallActWinRecord = new MallActWinRecord();
-                    mallActWinRecord.setMemberId(memberId);
-                    mallActWinRecord.setActId(actId);
-                    mallActWinRecord.setActName(mallActSet.getActName());
-                    mallActWinRecord.setAwardId(mallActAwardSet.getId());
-                    mallActWinRecord.setAwardName(mallActAwardSet.getAwardName());
-                    mallActWinRecord.setAwardType(mallActAwardSet.getAwardType());
-                    mallActWinRecord.setAwardValue(mallActAwardSet.getAwardValue());
-                    mallActWinRecord.setRecordId(mallActLuckdrawRecord.getId());
-                    mallActWinRecordMapper.insert(mallActWinRecord);
-
-                    apiMallAwardDetailsVo.setAwardName(mallActAwardSet.getAwardName());
-                    apiMallAwardDetailsVo.setAwardType(mallActAwardSet.getAwardType());
-                    apiMallAwardDetailsVo.setAwardValue(mallActAwardSet.getAwardValue());
-                    apiMallAwardDetailsVo.setAwardImage(mallActAwardSet.getAwardImage());
-                    apiMallAwardDetailsVo.setAwardId(mallActAwardSet.getId());
-
-                    if(MallActAwardSet.AWARD_TYPE_JF == mallActAwardSet.getAwardType()){
-                        prizeScore = prizeScore.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                    }else if(MallActAwardSet.AWARD_TYPE_YJ == mallActAwardSet.getAwardType()){
-                        commission = commission.add(new BigDecimal(mallActAwardSet.getAwardValue()));
-                    }
-                }
-            }
-        }
-
-        //扣竞猜积分
-//        prizeScore = prizeScore.subtract(new BigDecimal(actScoreCnt));
-//        wallet.setPrizeScore(prizeScore);
-//        wallet.setCommission(commission);
-//        mallMemberWalletMapper.updateAmountWithVersion(wallet);
-
-        // 消耗积分
-        BigDecimal useScore = new BigDecimal(actScoreCnt);
-        mallMemberWalletService.reduce(useScore, wallet.getMemberId(), "prizeScore");
-        mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), useScore.negate(), MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.PRIZE_SCORE.getValue());
-
-        if (apiMallAwardDetailsVo.getAwardType() != 3) {
-            BigDecimal prize = new BigDecimal(apiMallAwardDetailsVo.getAwardValue());
-            if (apiMallAwardDetailsVo.getAwardType() == 1) {
-                mallMemberWalletService.add(prize, wallet.getMemberId(), "prizeScore");
-                mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), prize, MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.PRIZE_SCORE.getValue());
-            } else if (apiMallAwardDetailsVo.getAwardType() == 2) {
-                mallMemberWalletService.add(prize, wallet.getMemberId(), "commission");
-                mallMoneyFlowService.addMoneyFlow(wallet.getMemberId(), prize, MoneyFlowTypeEnum.PRIZE.getValue(), null, FlowTypeEnum.COMMISSION.getValue());
-            }
-        }
-        return apiMallAwardDetailsVo;
-    }
-
-    @Override
-    public ApiCouponVo findApiCouponById(Long id) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-
-        MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id);
-        ApiCouponVo apiCouponVo = MallGoodsCouponConversion.INSTANCE.entityToApiCouponVo(mallGoodsCoupon);
-        List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectList(
-                new LambdaQueryWrapper<MallMemberCoupon>()
-                        .eq(MallMemberCoupon::getMemberId, memberId)
-                        .eq(MallMemberCoupon::getCouponId, id)
-        );
-        if(CollUtil.isNotEmpty(mallMemberCoupons)){
-            apiCouponVo.setState(1);
-        }else{
-            apiCouponVo.setState(0);
-        }
-        return apiCouponVo;
-    }
-
-    @Override
-    public FebsResponse addCoupon(Long couponId) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
-        if(mallGoodsCoupon.getState() == 2){
-            List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectList(
-                    new LambdaQueryWrapper<MallMemberCoupon>()
-                            .eq(MallMemberCoupon::getMemberId, memberId)
-                            .eq(MallMemberCoupon::getCouponId, couponId)
-            );
-            if(CollUtil.isNotEmpty(mallMemberCoupons)){
-                return new FebsResponse().fail().message("优惠卷已领取,请刷新当前页面");
-            }
-
-            MallMemberCoupon memberCoupon = new MallMemberCoupon();
-            memberCoupon.setMemberId(memberId);
-            memberCoupon.setCouponId(couponId);
-            memberCoupon.setCouponName(mallGoodsCoupon.getName());
-            memberCoupon.setCouponUuid(IdUtil.simpleUUID());
-            memberCoupon.setState(1);
-            memberCoupon.setFromType(1);
-            memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), mallGoodsCoupon.getExpireDay()));
-            mallMemberCouponMapper.insert(memberCoupon);
-            return new FebsResponse().success().message("操作成功");
-        }
-        return new FebsResponse().fail().message("优惠卷已失效,请刷新当前页面");
-    }
-
-
-}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAddressInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAddressInfoServiceImpl.java
index f8f68c8..b62fb99 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAddressInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAddressInfoServiceImpl.java
@@ -19,6 +19,7 @@
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -45,98 +46,57 @@
     private MallAddressWorldMapper mallAddressWorldMapper;
 
     @Override
-    public List<AddressInfoVo> findAddressInfoList() {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        List<MallAddressInfo> addressInfos = this.baseMapper.selectAddressInfoListByMemberId(memberId);
+    public FebsResponse findAddressInfo() {
 
-        return MallAddressInfoConversion.INSTANCE.entityListToVos(addressInfos);
+
+        Long id = LoginUserUtil.getLoginUser().getId();
+
+        AddressInfoVo addressInfoVo = new AddressInfoVo();
+
+
+        List<MallAddressInfo> mallAddressInfos = this.baseMapper.selectList(
+                Wrappers.lambdaQuery(MallAddressInfo.class)
+                        .eq(MallAddressInfo::getMemberId, id)
+        );
+        if (CollUtil.isNotEmpty(mallAddressInfos)){
+            MallAddressInfo mallAddressInfo = mallAddressInfos.get(0);
+            addressInfoVo.setId(mallAddressInfo.getId());
+            addressInfoVo.setName(mallAddressInfo.getName());
+            addressInfoVo.setFirstName(mallAddressInfo.getFristName());
+            addressInfoVo.setAddress(mallAddressInfo.getAddress());
+            addressInfoVo.setArea(mallAddressInfo.getArea());
+            addressInfoVo.setPostcode(mallAddressInfo.getPostcode());
+            addressInfoVo.setPhone(mallAddressInfo.getPhone());
+            addressInfoVo.setCity(mallAddressInfo.getCity());
+            addressInfoVo.setProvince(mallAddressInfo.getProvince());
+            addressInfoVo.setCountry(mallAddressInfo.getCountry());
+        }
+        return new FebsResponse().success().data(addressInfoVo);
     }
 
-    @Override
-    public FebsResponse addAddress(AddressInfoDto addressInfoDto) {
-        MallAddressInfo addressInfo = MallAddressInfoConversion.INSTANCE.dtoToEntity(addressInfoDto);
 
-        MallMember member = LoginUserUtil.getLoginUser();
-        Long memberId = member.getId();
-        List<MallAddressInfo> existAddress = this.baseMapper.selectAddressInfoListByMemberId(memberId);
-        if (CollUtil.isEmpty(existAddress)) {
-            addressInfo.setIsDefault(MallAddressInfo.IS_DEFAULT_Y);
-        } else {
-            if (MallAddressInfo.IS_DEFAULT_Y.equals(addressInfoDto.getIsDefault())) {
-                this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_N, memberId, null);
-            }
-        }
-
-        addressInfo.setMemberId(memberId);
-        addressInfo.setCreatedBy(member.getPhone());
-        addressInfo.setUpdatedBy(member.getPhone());
-        this.baseMapper.insert(addressInfo);
-
-        return new FebsResponse().success().data(addressInfo.getId());
-    }
 
     @Override
-    public void modifyAddress(AddressInfoDto addressInfoDto) {
-        MallAddressInfo existAddress = this.baseMapper.selectById(addressInfoDto.getId());
-        if (existAddress == null) {
-            throw new FebsException("地址不存在");
-        }
+    public FebsResponse modifyAddress(AddressInfoDto addressInfoDto) {
 
         Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallAddressInfo addressInfo = MallAddressInfoConversion.INSTANCE.dtoToEntity(addressInfoDto);
-        if (MallAddressInfo.IS_DEFAULT_Y.equals(addressInfoDto.getIsDefault())) {
-            this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_N, memberId, null);
-        }
+        this.baseMapper.update(
+                null,
+                Wrappers.lambdaUpdate(MallAddressInfo.class)
+                        .set(MallAddressInfo::getName, addressInfoDto.getName())
+                        .set(MallAddressInfo::getFristName, addressInfoDto.getFirstName())
+                        .set(MallAddressInfo::getAddress, addressInfoDto.getAddress())
+                        .set(MallAddressInfo::getArea, addressInfoDto.getArea())
+                        .set(MallAddressInfo::getPostcode, addressInfoDto.getPostcode())
+                        .set(MallAddressInfo::getPhone, addressInfoDto.getPhone())
+                        .set(MallAddressInfo::getCity, addressInfoDto.getCity())
+                        .set(MallAddressInfo::getProvince, addressInfoDto.getProvince())
+                        .set(MallAddressInfo::getCountry, addressInfoDto.getCountry())
+                        .eq(MallAddressInfo::getMemberId, memberId)
+        );
 
-        addressInfo.setUpdatedTime(new Date());
-        this.baseMapper.updateById(addressInfo);
+        return new FebsResponse().success();
     }
 
-    @Override
-    public void setDefaultAddress(Long id) {
-        MallAddressInfo addressInfo = this.baseMapper.selectById(id);
-        if (addressInfo == null) {
-            throw new FebsException("地址不存在");
-        }
 
-        MallMember member = LoginUserUtil.getLoginUser();
-        this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_N, member.getId(), null);
-
-        this.baseMapper.updateIsDefault(MallAddressInfo.IS_DEFAULT_Y, member.getId(), id);
-    }
-
-    static final OkHttpClient HTTP_CLIENT = new OkHttpClient().newBuilder().build();
-
-    @Override
-    public FebsResponse identifyAddress(ApiIdentifyAddressDto identifyAddressDto) {
-        MediaType mediaType = MediaType.parse("application/json");
-        RequestBody body = RequestBody.create(mediaType, JSONUtil.toJsonStr(identifyAddressDto));
-        Request request = new Request.Builder()
-                .url("https://aip.baidubce.com/rpc/2.0/nlp/v1/address?access_token=" + redisUtils.get(WechatConfigure.BAIDU_ACCESS_TOKEN_REDIS_KEY).toString())
-                .method("POST", body)
-                .addHeader("Content-Type", "application/json")
-                .addHeader("Accept", "application/json")
-                .build();
-        String data = "";
-        try {
-            Response response = HTTP_CLIENT.newCall(request).execute();
-            data = response.body().string();
-            if (data.contains("error_code")) {
-                JSONObject jsonObject = JSONUtil.parseObj(data);
-                return new FebsResponse().fail().message("地址识别错误编码:"+jsonObject.get("error_code").toString());
-            }
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-        return new FebsResponse().success().data(data);
-    }
-
-    @Override
-    public FebsResponse getProvince(Long id) {
-        LambdaQueryWrapper<MallAddressWorld> addressWorldLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        addressWorldLambdaQueryWrapper.eq(MallAddressWorld::getPid, id)
-                .orderByDesc(MallAddressWorld::getId);
-        List<MallAddressWorld> mallAddressWorlds = mallAddressWorldMapper.selectList(addressWorldLambdaQueryWrapper);
-        return new FebsResponse().success().data(mallAddressWorlds);
-    }
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
index 42bc29c..af16f8f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
@@ -55,12 +55,6 @@
      */
     @Override
     public IPage<MallGoodsListVo> findMallGoodsListInPage(MallGoodsQueryDto queryDto) {
-        // 获取当前登录的用户信息
-        MallMember loginUser = LoginUserUtil.getLoginUser();
-        // 如果用户已登录,设置查询条件中的会员ID
-        if (loginUser != null) {
-            queryDto.setMemberId(loginUser.getId());
-        }
         // 初始化分页对象
         Page<MallGoodsListVo> page = new Page<>(queryDto.getPageNow(), queryDto.getPageSize());
         // 调用Mapper方法,根据查询条件分页获取商品列表
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 7a6403a..760eb53 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -8,6 +8,7 @@
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.properties.XcxProperties;
 import cc.mrbird.febs.common.utils.*;
+import cc.mrbird.febs.mall.controller.dependentStation.enums.SalesServiceEnums;
 import cc.mrbird.febs.mall.conversion.MallMemberConversion;
 import cc.mrbird.febs.mall.conversion.MallShopApplyConversion;
 import cc.mrbird.febs.mall.conversion.MallStoreConversion;
@@ -38,6 +39,7 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
@@ -98,97 +100,25 @@
         String account = registerDto.getAccount();
         MallMember mallMember = this.baseMapper.selectInfoByAccount(account);
         if (mallMember != null) {
-            throw new FebsException("手机号已注册");
+            throw new FebsException("Registered");
         }
         /**
          * 验证两次密码是否一致
          */
         String password = registerDto.getPassword();
-        String passwordAgain = registerDto.getPasswordAgain();
-        if(!password.equals(passwordAgain)){
-            throw new FebsException("密码不一致");
-        }
-
-        //邀请码为admin的时候(后台添加用户),不需要验证验证码
-        if (!"admin".equals(registerDto.getRegistType())) {
-            String code = registerDto.getCode();
-            boolean flags = commonService.verifyCode(account, code);
-            if (!flags) {
-                throw new FebsException("验证码错误");
-            }
-        }
-
         mallMember = new MallMember();
-        mallMember.setPassword(SecureUtil.md5(registerDto.getPassword()));
-
-        // 判断账号类型
-        if (AppContants.ACCOUNT_TYPE_MOBILE.equals(registerDto.getType())) {
-            mallMember.setPhone(registerDto.getAccount());
-        } else {
-            mallMember.setEmail(registerDto.getAccount());
-        }
-        //对于邀请码的验证和上级联系人的验证
-        Integer count = this.baseMapper.selectCount(null);
-        if (count != null && count != 0) {
-            if(!StrUtil.isEmpty(registerDto.getInviteId())){
-                String inviteId = registerDto.getInviteId();
-                MallMember inviteMember = this.baseMapper.selectInfoByInviteId(inviteId);
-                if (inviteMember == null) {
-                    throw new FebsException("邀请码不存在");
-                }
-                mallMember.setReferrerId(registerDto.getInviteId());
-            }
-        }
         mallMember.setName(account);
+        mallMember.setEmail(registerDto.getAccount());
+        mallMember.setPassword(SecureUtil.md5(password));
         mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
         mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-        mallMember.setSex("男");
-        mallMember.setBindPhone(account);
-
         this.baseMapper.insert(mallMember);
-
-        String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
-        mallMember.setInviteId(inviteId);
-
-        //推荐人和推荐人链
-        boolean flag = false;
-        String parentId = mallMember.getReferrerId();
-        if (StrUtil.isBlank(parentId)) {
-            flag = true;
-        }
-        String ids = "";
-        while (!flag) {
-            if (StrUtil.isBlank(ids)) {
-                ids += parentId;
-            } else {
-                ids += ("," + parentId);
-            }
-            MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
-            if (parentMember == null) {
-                break;
-            }
-            parentId = parentMember.getReferrerId();
-            if (StrUtil.isBlank(parentMember.getReferrerId())) {
-                flag = true;
-            }
-        }
-
-        if (StrUtil.isNotBlank(ids)) {
-            mallMember.setReferrerIds(ids);
-        }
-        //会员VIP等级
-        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
-        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
-            MallVipConfig mallVipConfig = configs.get(0);
-            mallMember.setLevel(mallVipConfig.getCode());
-        }
-        this.baseMapper.updateById(mallMember);
 
         MallMemberWallet wallet = new MallMemberWallet();
         wallet.setBalance(BigDecimal.ZERO);
         wallet.setMemberId(mallMember.getId());
         mallMemberWalletMapper.insert(wallet);
-        return new FebsResponse().success().message("注册成功");
+        return new FebsResponse().success().message("registered successfully");
     }
 
     @Override
@@ -197,11 +127,11 @@
 
         MallMember mallMember = this.baseMapper.selectInfoByAccountAndPwd(loginDto.getAccount(), md5Pwd);
         if (mallMember == null) {
-            throw new FebsException("用户不存在或账号密码错误");
+            throw new FebsException("The user does not exist or the account password is incorrect");
         }
 
         if (MallMember.ACCOUNT_STATUS_DISABLED.equals(mallMember.getAccountStatus())) {
-            throw new FebsException("该账号存在异常, 暂限制登录");
+            throw new FebsException("The account is abnormal and is temporarily restricted from logging in");
         }
 
         String redisKey = AppContants.APP_LOGIN_PREFIX + mallMember.getId();
@@ -231,21 +161,27 @@
 
     @Override
     public FebsResponse forgetPwd(ForgetPwdDto forgetPwdDto) {
-        MallMember mallMember = this.baseMapper.selectInfoByAccount(forgetPwdDto.getAccount());
+
+        Long id = LoginUserUtil.getLoginUser().getId();
+        MallMember mallMember = this.baseMapper.selectById(id);
         if (mallMember == null) {
-            throw new FebsException("账号不存在");
+            throw new FebsException("Setup failed");
         }
 
-        boolean b = commonService.verifyCode(forgetPwdDto.getAccount(), forgetPwdDto.getCode());
-        if (!b) {
-            throw new FebsException("验证码错误");
+        if (!forgetPwdDto.getNewPassword().equals(forgetPwdDto.getNewPasswordAgain())){
+            throw new FebsException("Setup failed");
         }
 
-        String pwd = SecureUtil.md5(forgetPwdDto.getPassword());
+        String pwd = SecureUtil.md5(forgetPwdDto.getNewPassword());
         mallMember.setPassword(pwd);
 
-        this.baseMapper.updateById(mallMember);
-        return new FebsResponse().success().message("重置成功");
+        this.baseMapper.update(
+                null,
+                Wrappers.lambdaUpdate(MallMember.class)
+                .set(MallMember::getPassword, pwd)
+                .eq(MallMember::getId, id)
+        );
+        return new FebsResponse().success().message("Setup successful");
     }
 
     @Override
@@ -262,94 +198,21 @@
         }
         redisUtils.del(AppContants.APP_LOGIN_PREFIX + id);
         redisUtils.del(AppContants.XCX_LOGIN_PHONE_PREFIX + id);
-        return new FebsResponse().success().message("退出登录");
+        return new FebsResponse().success().message("Log out");
     }
 
     @Override
     public FebsResponse findMemberInfo() {
         Long id = LoginUserUtil.getLoginUser().getId();
         MallMember mallMember = this.baseMapper.selectById(id);
-
-        MallMemberVo mallMemberVo = MallMemberConversion.INSTANCE.entityToVo(mallMember);
-        if(StrUtil.isNotEmpty(mallMember.getReferrerId())){
-            MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId());
-            if (referMember != null) {
-                mallMemberVo.setReferrerName(referMember.getName());
-            }
-        }
-
-        if (StrUtil.isNotBlank(mallMember.getTradePassword())) {
-            mallMemberVo.setHasTradePwd(1);
-        }
-
-        MallMemberPayment payment = mallMemberPaymentMapper.selectByMemberId(id);
-        if (payment != null) {
-            mallMemberVo.setHasPayment(1);
-        }
-
-        MemberCollectionListDto memberCollectionListDto = new MemberCollectionListDto();
-        memberCollectionListDto.setPageNow(1);
-        memberCollectionListDto.setPageSize(10);
-        List<CollectionListVo> collectionList = mallMemberCollectionService.findMemberCollectionList(memberCollectionListDto);
-        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(collectionList) ? collectionList.size() : 0);
-
-        MemberFootprintListDto memberFootprintListDto = new MemberFootprintListDto();
-        memberFootprintListDto.setPageNow(1);
-        memberFootprintListDto.setPageSize(10);
-        List<FootprintListVo> footprintList = mallMemberFootprintService.findMemberFootprintList(memberFootprintListDto);
-        mallMemberVo.setFootprintCnt(CollUtil.isNotEmpty(footprintList) ? footprintList.size() : 0);
-
-        List<MallMember> mallMembers = this.baseMapper.selectByRefererId(mallMember.getInviteId());
-        mallMemberVo.setChildCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
-
-        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
-
-        MallVipConfig mallVipConfig = mallVipConfigMapper.selectVipConfigByCode(mallMember.getLevel());
-
-        mallMemberVo.setVipInfo(mallVipConfig);
-        mallMemberVo.setBalance(wallet.getBalance());
-//        mallMemberVo.setScore(wallet.getScore());
-        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
-//        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
+        MallMemberVo mallMemberVo = new MallMemberVo();
+        mallMemberVo.setName(mallMember.getName());
+        mallMemberVo.setEmail(mallMember.getEmail());
+        mallMemberVo.setAvatar(mallMember.getAvatar());
         return new FebsResponse().success().data(mallMemberVo);
     }
 
-    @Override
-    public FebsResponse findMemberMarkCnt() {
-        Long id = LoginUserUtil.getLoginUser().getId();
 
-        List<Map<String, Integer>> maps = mallOrderInfoMapper.selectMemberOrderStatusCnt(id);
-        Map<Integer, Integer> orderCnt = new HashMap<>();
-        if (CollUtil.isNotEmpty(maps)) {
-            for (Map<String, Integer> map : maps) {
-                orderCnt.put(map.get("status"), map.get("cnt"));
-            }
-        }
-
-        List<MallShoppingCart> carts = mallShoppingCartMapper.selectCartGoodsList(id, 1);
-        Map<String, Object> result = new HashMap<>();
-        result.put("order", orderCnt);
-        result.put("carts", carts.size());
-        return new FebsResponse().success().data(result);
-    }
-
-    @Override
-    public FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto) {
-        MallMember memberId = LoginUserUtil.getLoginUser();
-        MallMember mallMember = this.baseMapper.selectById(memberId);
-        if (mallMember == null) {
-            throw new FebsException("账号不存在");
-        }
-
-        boolean b = commonService.verifyCode(forgetPwdDto.getAccount(), forgetPwdDto.getCode());
-        if (!b) {
-            throw new FebsException("验证码错误");
-        }
-
-        mallMember.setTradePassword(SecureUtil.md5(forgetPwdDto.getPassword()));
-        this.baseMapper.updateById(mallMember);
-        return new FebsResponse().success().message("设置成功");
-    }
 
     @Override
     public FebsResponse modifyMemberInfo(ModifyMemberInfoDto modifyMemberInfoDto) {
@@ -363,55 +226,11 @@
             mallMember.setAvatar(modifyMemberInfoDto.getPhoto());
         }
 
-        mallMember.setSex(modifyMemberInfoDto.getSex());
-        mallMember.setBirthday(DateUtil.parseDate(modifyMemberInfoDto.getBirthday()));
-        mallMember.setRealName(modifyMemberInfoDto.getRealName());
-        mallMember.setEmail(modifyMemberInfoDto.getMailAddress());
-
         this.baseMapper.updateById(mallMember);
-        return new FebsResponse().success().message("修改成功");
+        return new FebsResponse().success().message("success");
     }
 
-    @Override
-    public FebsResponse teamList(TeamListDto teamListDto) {
-        Long memberId = null;
-        if (teamListDto.getId() == null) {
-            memberId = LoginUserUtil.getLoginUser().getId();
-        } else {
-            memberId = teamListDto.getId();
-        }
 
-        MallMember mallMember = this.baseMapper.selectById(memberId);
-
-        List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
-
-        MyTeamVo myTeamVo = new MyTeamVo();
-        myTeamVo.setTeam(list);
-        myTeamVo.setMyAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 1));
-        myTeamVo.setMyTeamAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 2));
-        myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
-        return new FebsResponse().success().data(myTeamVo);
-    }
-
-    @Override
-    public MyTeamVo teamListForMine(TeamListDto teamListDto) {
-        return null;
-    }
-
-    @Override
-    public FebsResponse moneyFlows(MoneyFlowDto moneyFlowDto) {
-        IPage<MoneyFlowVo> page = new Page<>(moneyFlowDto.getPageNum(), moneyFlowDto.getPageSize());
-        Long id = LoginUserUtil.getLoginUser().getId();
-        moneyFlowDto.setMemberId(id);
-        IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto);
-
-        if (moneyFlowDto.getFlowType() == 3) {
-            pages.getRecords().forEach(item -> {
-                item.setDescription(ScoreFlowTypeEnum.getDescByValue(item.getType()));
-            });
-        }
-        return new FebsResponse().success().data(pages);
-    }
 
     @Override
     public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status, Integer flowType) {
@@ -428,56 +247,7 @@
         mallMoneyFlowMapper.insert(flow);
     }
 
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void transfer(TransferDto transferDto) {
-        MallMember mallMember = this.baseMapper.selectInfoByAccount(transferDto.getAccount());
-        if (mallMember == null) {
-            throw new FebsException("用户不存在");
-        }
 
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMember loginMember = this.baseMapper.selectById(memberId);
-
-        if (loginMember.getPhone().equals(transferDto.getAccount()) || loginMember.getInviteId().equals(transferDto.getAccount())) {
-            throw new FebsException("不能给自己转账");
-        }
-
-        if (StrUtil.isBlank(loginMember.getTradePassword())) {
-            throw new FebsException("未设置支付密码");
-        }
-
-        if (!loginMember.getTradePassword().equals(SecureUtil.md5(transferDto.getTradePwd()))) {
-            throw new FebsException("支付密码错误");
-        }
-
-        walletService.reduceBalance(transferDto.getAmount(), memberId);
-        String orderNo = MallUtils.getOrderNum("T");
-        this.addMoneyFlow(memberId, transferDto.getAmount().negate(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, mallMember.getId(), null, FlowTypeEnum.BALANCE.getValue());
-
-        walletService.addBalance(transferDto.getAmount(), mallMember.getId());
-        this.addMoneyFlow(mallMember.getId(), transferDto.getAmount(), MoneyFlowTypeEnum.TRANSFER.getValue(), orderNo, null, null, memberId, null, FlowTypeEnum.BALANCE.getValue());
-    }
-
-    @Override
-    public void setPayment(MallMemberPayment mallMemberPayment) {
-        MallMember member = LoginUserUtil.getLoginUser();
-
-        MallMemberPayment exist = mallMemberPaymentMapper.selectByMemberId(member.getId());
-        if (exist == null) {
-            mallMemberPayment.setMemberId(member.getId());
-            mallMemberPaymentMapper.insert(mallMemberPayment);
-        } else {
-            mallMemberPayment.setId(exist.getId());
-            mallMemberPaymentMapper.updateById(mallMemberPayment);
-        }
-    }
-
-    @Override
-    public MallMemberPayment findMemberPayment() {
-        MallMember member = LoginUserUtil.getLoginUser();
-        return mallMemberPaymentMapper.selectByMemberId(member.getId());
-    }
 
     @Override
     public void bindPhone(AccountAndCodeDto accountAndCodeDto) {
@@ -493,56 +263,7 @@
         this.baseMapper.updateById(member);
     }
 
-    @Override
-    public BigDecimal canMoney() {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(memberId);
-        return wallet.getBalance().setScale(2,BigDecimal.ROUND_DOWN);
-    }
 
-    @Override
-    public List<MallMember> findRankList(RankListDto rankListDto) {
-        IPage<MallMember> page = new Page<>(rankListDto.getPageNum(), rankListDto.getPageSize());
-
-        MallMember member = new MallMember();
-        member.setQuery("2");
-        member.setCreatedTime(new Date());
-        IPage<MallMember> list = this.baseMapper.selectRankListInPage(page, member);
-
-        return list.getRecords();
-    }
-
-    @Override
-    public MallMember findMemberInfoByAccount(String phone) {
-        return this.baseMapper.selectInfoByAccount(phone);
-    }
-
-    @Override
-    public MyCommissionVo myCommission() {
-        Long id = LoginUserUtil.getLoginUser().getId();
-        MallMember mallMember = this.baseMapper.selectById(id);
-
-        MyCommissionVo commissionVo = MallMemberConversion.INSTANCE.entityToCommissionVo(mallMember);
-
-        MallMember referMember = this.baseMapper.selectInfoByInviteId(mallMember.getReferrerId());
-        if (referMember != null) {
-            commissionVo.setReferrerName(referMember.getName());
-            commissionVo.setAvatar(referMember.getAvatar());
-        }
-
-        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.AGENT_LEVEL, mallMember.getLevel());
-        if (dic != null) {
-            commissionVo.setLevelName(dic.getDescription());
-        }
-
-        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(id);
-        commissionVo.setCommission(wallet.getCommission());
-        commissionVo.setToday(mallMoneyFlowMapper.selectCommissionIncome(1, new Date(), id));
-        commissionVo.setMonth(mallMoneyFlowMapper.selectCommissionIncome(2, new Date(), id));
-        commissionVo.setTotal(mallMoneyFlowMapper.selectCommissionIncome(null, null, id));
-        commissionVo.setWaitCommission(BigDecimal.ZERO);
-        return commissionVo;
-    }
 
     @Override
     public void shopApply(ShopApplyDto shopApplyDto) {
@@ -570,30 +291,7 @@
         return mallShopApplyMapper.selectNewestApplyByMemberId(member.getId());
     }
 
-    @Override
-    public void addRegisterAppeal(RegisterAppealDto registerAppeal) {
-        MallRegisterAppeal isExist = mallRegisterAppealMapper.selectByPhoneAndName(registerAppeal.getName(), registerAppeal.getPhone());
-        if (isExist != null) {
-            throw new FebsException("申诉已存在");
-        }
 
-        isExist = new MallRegisterAppeal();
-        isExist.setName(registerAppeal.getName());
-        isExist.setPhone(registerAppeal.getPhone());
-        isExist.setStatus(2);
-
-        mallRegisterAppealMapper.insert(isExist);
-    }
-
-    @Override
-    public CashOutSettingVo cashOutSetting() {
-        CashOutSettingVo cashOutSettingVo = new CashOutSettingVo();
-        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.CASHOUT_SETTING.getType(), DataDictionaryEnum.CASHOUT_SETTING.getCode());
-        if (dic != null) {
-            cashOutSettingVo = JSONObject.parseObject(dic.getValue(), CashOutSettingVo.class);
-        }
-        return cashOutSettingVo;
-    }
 
     @Override
     public List<ShopListVo> findShopListVo(ShopListDto shopListDto) {
@@ -613,274 +311,7 @@
 
     private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class);
 
-    @Override
-    public FebsResponse xcxLogin(ApiXcxLoginDto apiXcxLoginDto) throws IOException {
-        log.info("登录请求参数:{}", JSONObject.toJSONString(apiXcxLoginDto));
-        FebsResponse febsResponse = new FebsResponse();
-        String code = apiXcxLoginDto.getCode();
-        log.info("code:" + code);
-        if (StrUtil.isNotBlank(code)) {
-            String requrl = getXcxLoginUrl(code);
-            String reslutData = HttpCurlUtil.sendGetHttp(requrl, null);
-            net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(reslutData);
-            log.info("微信登录获取到登录信息={}", json);
 
-            if (json.containsKey("errcode")) {
-                log.info("微信登录获取到异常信息errcode");
-                return febsResponse.fail().message("自动登录失败");
-            }
-
-            String openId = json.getString("openid");
-            String sessionKey = json.getString("session_key");
-            log.info("openId={},sessionKey={}", openId, sessionKey);
-            // 查询用户是否存在
-            MallMember mallMember = null;
-            synchronized (this) {
-                mallMember = this.baseMapper.selectMemberByOpenId(openId);
-                if (ObjectUtil.isEmpty(mallMember)) {
-                    // 新增用户
-                    mallMember = new MallMember();
-                    mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
-                    mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-                    mallMember.setOpenId(openId);
-                    mallMember.setSessionKey(sessionKey);
-
-                    if (StrUtil.isNotBlank(apiXcxLoginDto.getInviteId())) {
-                        MallMember member = this.baseMapper.selectInfoByInviteId(apiXcxLoginDto.getInviteId());
-                        if (member != null) {
-                            mallMember.setReferrerId(member.getInviteId());
-
-                            //推荐人和推荐人链
-                            boolean flag = false;
-                            String parentId = mallMember.getReferrerId();
-                            if (StrUtil.isBlank(parentId)) {
-                                flag = true;
-                            }
-                            String ids = "";
-                            while (!flag) {
-                                if (StrUtil.isBlank(ids)) {
-                                    ids += parentId;
-                                } else {
-                                    ids += ("," + parentId);
-                                }
-                                MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId);
-                                if (parentMember == null) {
-                                    break;
-                                }
-                                parentId = parentMember.getReferrerId();
-                                if (StrUtil.isBlank(parentMember.getReferrerId())) {
-                                    flag = true;
-                                }
-                            }
-
-                            if (StrUtil.isNotBlank(ids)) {
-                                mallMember.setReferrerIds(ids);
-                            }
-                        }
-                    }
-                    this.baseMapper.insert(mallMember);
-
-                    mallMember = this.baseMapper.selectMemberByOpenId(openId);
-                    String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
-                    mallMember.setInviteId(inviteId);
-                    this.baseMapper.updateById(mallMember);
-                    MallMemberWallet wallet = new MallMemberWallet();
-                    wallet.setBalance(BigDecimal.ZERO);
-                    wallet.setMemberId(mallMember.getId());
-                    mallMemberWalletMapper.insert(wallet);
-                } else {
-                    mallMember.setSessionKey(sessionKey);
-                    this.baseMapper.updateById(mallMember);
-                }
-            }
-            // 存放redis
-            String redisKey = AppContants.XCX_LOGIN_PREFIX + mallMember.getId();
-            String existToken = redisUtils.getString(redisKey);
-            if (StrUtil.isNotBlank(existToken)) {
-                Object o = redisUtils.get(existToken);
-                if (ObjectUtil.isNotEmpty(o)) {
-                    redisUtils.del(existToken);
-                }
-            }
-            String token = IdUtil.simpleUUID();
-            redisUtils.set(token, JSONObject.toJSONString(mallMember), -1);
-            redisUtils.set(redisKey, token, -1);
-            Map<String, Object> authInfo = new HashMap<>();
-            authInfo.put("token", token);
-            authInfo.put("appid", xcxProperties.getXcxAppid());
-            authInfo.put("member", mallMember);
-            authInfo.put("rasToken", generateAsaToken(token));
-            febsResponse.success().data(authInfo);
-        } else {
-            return febsResponse.fail().message("自动登录失败");
-        }
-        return febsResponse;
-    }
-
-    @Override
-    public FebsResponse xcxSaveInfo(ApiXcxSaveInfoDto apiXcxSaveInfoDto) {
-        log.info("name={},phone={},avatar={},sex={}",
-                apiXcxSaveInfoDto.getNickName(),apiXcxSaveInfoDto.getPhone(),apiXcxSaveInfoDto.getAvatarUrl(),apiXcxSaveInfoDto.getGender());
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMember mallMember = this.baseMapper.selectById(memberId);
-        String nickName = apiXcxSaveInfoDto.getNickName();
-        if(StrUtil.isNotEmpty(nickName)){
-            mallMember.setName(nickName);
-        }
-        String phone = apiXcxSaveInfoDto.getPhone();
-        if(StrUtil.isNotEmpty(phone)){
-            mallMember.setPhone(phone);
-        }
-        String avatarUrl = apiXcxSaveInfoDto.getAvatarUrl();
-        if(StrUtil.isNotEmpty(avatarUrl)){
-            mallMember.setAvatar(avatarUrl);
-        }
-
-        if (StrUtil.isNotBlank(apiXcxSaveInfoDto.getRealName())) {
-            mallMember.setRealName(apiXcxSaveInfoDto.getRealName());
-        }
-
-        if (apiXcxSaveInfoDto.getBirthday() != null) {
-            mallMember.setBirthday(apiXcxSaveInfoDto.getBirthday());
-        }
-
-        List<MallVipConfig> configs = mallVipConfigMapper.selectVipConfigList();
-        if (StrUtil.isBlank(mallMember.getLevel()) && CollUtil.isNotEmpty(configs)) {
-            MallVipConfig mallVipConfig = configs.get(0);
-            mallMember.setLevel(mallVipConfig.getCode());
-        }
-
-        mallMember.setSex(1 == apiXcxSaveInfoDto.getGender() ? "女" : "男");
-        this.baseMapper.updateById(mallMember);
-        return new FebsResponse().success();
-    }
-
-    @Override
-    public FebsResponse xcxPhoneLogin(ApiXcxPhoneLoginDto apiXcxPhoneLoginDto) {
-        String phone = apiXcxPhoneLoginDto.getPhone();
-        boolean flag = commonService.verifyCode(phone, apiXcxPhoneLoginDto.getCode());
-        if (flag) {
-            // 查询用户是否存在
-            MallMember mallMember = null;
-            synchronized (this) {
-                mallMember = this.baseMapper.selectInfoByAccount(apiXcxPhoneLoginDto.getPhone());
-                if (ObjectUtil.isEmpty(mallMember)) {
-                    // 新增用户
-                    mallMember = new MallMember();
-                    mallMember.setPhone(phone);
-                    mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_ENABLE);
-                    mallMember.setAccountType(MallMember.ACCOUNT_TYPE_NORMAL);
-                    this.baseMapper.insert(mallMember);
-
-                    String inviteId = ShareCodeUtil.toSerialCode(mallMember.getId());
-                    mallMember.setInviteId(inviteId);
-                    this.baseMapper.updateById(mallMember);
-                    MallMemberWallet wallet = new MallMemberWallet();
-                    wallet.setBalance(BigDecimal.ZERO);
-                    wallet.setMemberId(mallMember.getId());
-                    mallMemberWalletMapper.insert(wallet);
-                }
-            }
-            // 存放redis
-            String redisKey = AppContants.XCX_LOGIN_PHONE_PREFIX + mallMember.getId();
-            String existToken = redisUtils.getString(redisKey);
-            if (StrUtil.isNotBlank(existToken)) {
-                Object o = redisUtils.get(existToken);
-                if (ObjectUtil.isNotEmpty(o)) {
-                    redisUtils.del(existToken);
-                }
-            }
-            String token = IdUtil.simpleUUID();
-            redisUtils.set(token, JSONObject.toJSONString(mallMember), 360000);
-            redisUtils.set(redisKey, token, 360000);
-            Map<String, Object> authInfo = new HashMap<>();
-            authInfo.put("token", token);
-            authInfo.put("member", mallMember);
-            authInfo.put("rasToken", generateAsaToken(token));
-            return new FebsResponse().success().data(authInfo);
-        }
-        return new FebsResponse().fail().message("验证码错误");
-    }
-
-    @Override
-    public FebsResponse xcxOpen(ApiXcxOpenDto apiXcxOpenDto) {
-        DataDictionaryCustom rangeSwitch = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SWITCH.getType(), DataDictionaryEnum.RANGE_SWITCH.getCode());
-        if(StrUtil.isNotBlank(rangeSwitch.getValue()) && "1".equals(rangeSwitch.getValue())){
-            if(ObjectUtil.isNull(apiXcxOpenDto.getLongitude()) || ObjectUtil.isNull(apiXcxOpenDto.getLatitude())){
-                return new FebsResponse().fail().message("请授权位置信息");
-            }
-            Double longitude = apiXcxOpenDto.getLongitude();
-            Double latitude = apiXcxOpenDto.getLatitude();
-
-            DataDictionaryCustom rangeSize = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.RANGE_SIZE.getType(), DataDictionaryEnum.RANGE_SIZE.getCode());
-            if(ObjectUtil.isEmpty(rangeSize)){
-                return new FebsResponse().success().data(2);
-            }
-            if(StrUtil.isBlank(rangeSize.getValue())){
-                return new FebsResponse().success().data(2);
-            }
-            //方位大小,换成单位:米
-            Integer value = Integer.parseInt(rangeSize.getValue()) * 1000;
-            //根据经纬度获取周围团长的距离
-            MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByLonAndLat(longitude, latitude);
-            if(ObjectUtil.isEmpty(mallTeamLeader)){
-                return new FebsResponse().success().data(2);
-            }
-            Double distance = mallTeamLeader.getDistance();
-            if(value <= distance){
-                return new FebsResponse().success().data(2);
-            }
-        }
-        return new FebsResponse().success().data(1);
-    }
-
-    private final IXcxPayService iXcxPayService;
-
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public FebsResponse rechargeWallet(ApiRechargeWalletDto apiRechargeWalletDto) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        BigDecimal amount = apiRechargeWalletDto.getAmount();
-        if(BigDecimal.ZERO.compareTo(amount)>0){
-            return new FebsResponse().fail().message("请输入正确的充值金额");
-        }
-        Integer type = apiRechargeWalletDto.getType();
-        if(2 == type){
-            //成为合伙人的充值金额
-            MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(apiRechargeWalletDto.getAgentApplyId());
-            BigDecimal agentPrice = mallAgentRecord.getAmount();
-//            DataDictionaryCustom agentPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.PRICE_AMOUNT.getType(),
-//                    DataDictionaryEnum.PRICE_AMOUNT.getCode());
-//            String agentPrice = agentPriceDic.getValue();
-//            BigDecimal price = new BigDecimal(agentPrice);
-            if(agentPrice.compareTo(amount) != 0){
-                return new FebsResponse().fail().message("成为合伙人的金额为"+agentPrice);
-            }
-        }
-        String rechargeNo = "CZ_"+MallUtils.getOrderNum();
-        apiRechargeWalletDto.setRechargeNo(rechargeNo);
-        apiRechargeWalletDto.setMemberId(memberId);
-        BrandWCPayRequestData brandWCPayRequestData = null;
-        try {
-            brandWCPayRequestData = iXcxPayService.startRechargeWallet(apiRechargeWalletDto);
-        } catch (Exception e) {
-            throw new FebsException("支付失败");
-        }
-        mallMoneyFlowService.addMoneyFlow(
-                memberId,
-                amount,
-                MoneyFlowTypeEnum.RECHARGE.getValue(),
-                rechargeNo,
-                FlowTypeEnum.BALANCE.getValue(),
-                "余额充值",1);
-
-        String wxResultStr = JSONUtil.toJsonStr(brandWCPayRequestData);
-        String payResultStr = brandWCPayRequestData.getPrepay_id();
-        Map<String, Object> map = new HashMap<>();
-        map.put("orderInfo", payResultStr);
-        map.put("wxResultStr", wxResultStr);
-        return new FebsResponse().success().data(map).message("充值即将到账");
-    }
 
     @Override
     public void updateMemberAgent(Long memberId,String levelCode) {
@@ -892,132 +323,7 @@
         this.baseMapper.updateById(mallMember);
     }
 
-    @Override
-    public FebsResponse agentDetail() {
-        DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                DataDictionaryEnum.AGENT_DETAILS.getType(), DataDictionaryEnum.AGENT_DETAILS.getCode());
-        Map<String, Object> map = new HashMap<>();
-        if(ObjectUtil.isNotEmpty(dataDictionaryCustom)){
-            map.put("agentDetail", dataDictionaryCustom.getValue());
-        }
-        return new FebsResponse().success().data(map);
-    }
 
-    @Override
-    public FebsResponse activityInfo() {
-        DataDictionaryCustom activityBulletinDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                DataDictionaryEnum.ACTIVITY_BULLETIN.getType(), DataDictionaryEnum.ACTIVITY_BULLETIN.getCode());
-        DataDictionaryCustom giveAmountDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                DataDictionaryEnum.GIVE_AMOUNT.getType(), DataDictionaryEnum.GIVE_AMOUNT.getCode());
-        DataDictionaryCustom giveStateDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
-                DataDictionaryEnum.GIVE_STATE.getType(), DataDictionaryEnum.GIVE_STATE.getCode());
-        Map<String, Object> map = new HashMap<>();
-        if(ObjectUtil.isNotEmpty(activityBulletinDic)){
-            map.put("activityBulletin",
-                    ObjectUtil.isEmpty(activityBulletinDic.getValue()) ? "暂无活动" : activityBulletinDic.getValue());
-        }
-        if(ObjectUtil.isNotEmpty(giveAmountDic)){
-            map.put("giveAmount",
-                    ObjectUtil.isEmpty(giveAmountDic.getValue()) ? 0 : giveAmountDic.getValue());
-        }
-        map.put("giveState",giveStateDic.getValue());
-        return new FebsResponse().success().data(map);
-    }
-
-    @Override
-    public FebsResponse agentApplyInfo() {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        ApiMallAgentRecordVo apiMallAgentRecordVo = mallAgentRecordMapper.selectApiMallAgentRecordVoByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING);
-        return new FebsResponse().success().data(apiMallAgentRecordVo);
-    }
-
-    @Override
-    public FebsResponse getCoupon(GetCouponDto getCouponDto) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-
-        String couponUUID = IdUtil.simpleUUID();
-//        String couponUUID = getCouponDto.getCouponUUID();
-//        QueryWrapper<MallMemberCoupon> objectQueryWrapper = new QueryWrapper<>();
-//        objectQueryWrapper.eq("coupon_uuid",couponUUID);
-//        List<MallMemberCoupon> mallMemberCouponDone = mallMemberCouponMapper.selectList(objectQueryWrapper);
-//        if(CollUtil.isNotEmpty(mallMemberCouponDone)){
-//            return new FebsResponse().success();
-//        }
-        //通过邀请人信息,获取能领取的优惠卷信息
-        MallMember mallMember = this.baseMapper.selectInfoByInviteId(getCouponDto.getInviteId());
-        if(ObjectUtil.isNotEmpty(mallMember)){
-            SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(mallMember.getId());
-            if(ObjectUtil.isNotEmpty(salemanCoupon)){
-                Long couponId = salemanCoupon.getCouponId();
-                Long goodsId = getCouponDto.getGoodsId();
-                MallGoods mallGoods = mallGoodsMapper.selectById(goodsId);
-                //验证商品存不存在,且上没上架
-                if(ObjectUtil.isNotEmpty(mallGoods)
-                    && MallGoods.ISSALE_STATUS_ENABLE == mallGoods.getIsSale()){
-//                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponId(memberId, goodsId, couponId,mallMember.getInviteId());
-//                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(memberId, goodsId, couponId);
-                    List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdAndGoodsIdAndCouponIdWithOutInviteId(memberId, goodsId);
-                    if(CollUtil.isEmpty(mallMemberCoupons)){
-                        //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
-                        List<CouponGoods> couponGoodsList = couponGoodsMapper.selectByGoodIdAndCouponId(goodsId,couponId);
-                        MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
-                        if(CollUtil.isNotEmpty(couponGoodsList)){
-                            MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
-                            mallMemberCoupon.setCouponId(couponId);
-                            mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
-                            mallMemberCoupon.setMemberId(memberId);
-                            mallMemberCoupon.setGoodsId(goodsId);
-                            mallMemberCoupon.setCouponUuid(couponUUID);
-                            mallMemberCoupon.setInviteId(mallMember.getInviteId());
-                            mallMemberCoupon.setState(1);
-                            mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
-                            mallMemberCouponMapper.insert(mallMemberCoupon);
-                        }
-                    }
-                }
-            }
-        }
-        return new FebsResponse().success();
-    }
-
-    @Override
-    public FebsResponse scanCoupon(GetCouponDto getCouponDto) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        String couponUUID = IdUtil.simpleUUID();
-        //通过邀请人信息,获取能领取的优惠卷信息
-        MallMember mallMember = this.baseMapper.selectInfoByInviteId(getCouponDto.getInviteId());
-        if(ObjectUtil.isNotEmpty(mallMember)){
-            SalemanCoupon salemanCoupon = salemanCouponMapper.selectByMemberId(mallMember.getId());
-            if(ObjectUtil.isNotEmpty(salemanCoupon)){
-                Long couponId = salemanCoupon.getCouponId();
-                List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectListByMemberIdCouponIdWithOutInviteId(memberId, couponId);
-                if(CollUtil.isEmpty(mallMemberCoupons)){
-                    //商品优惠卷如果绑定了,那么当前登陆者获取一张卷
-                    MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(couponId);
-                    MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
-                    mallMemberCoupon.setCouponId(couponId);
-                    mallMemberCoupon.setCouponName(mallGoodsCoupon.getName());
-                    mallMemberCoupon.setMemberId(memberId);
-                    mallMemberCoupon.setCouponUuid(couponUUID);
-                    mallMemberCoupon.setInviteId(mallMember.getInviteId());
-                    mallMemberCoupon.setState(1);
-                    mallMemberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(),mallGoodsCoupon.getExpireDay()));
-                    mallMemberCouponMapper.insert(mallMemberCoupon);
-                }
-            }
-        }
-        return new FebsResponse().success();
-    }
-
-    @Override
-    public FebsResponse memberCoupon(MallMemberCouponDto mallMemberCouponDto) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        IPage<MallMemberCouponVo> page = new Page<>(mallMemberCouponDto.getPageNum(), mallMemberCouponDto.getPageSize());
-        mallMemberCouponDto.setMemberId(memberId);
-        mallMemberCouponDto.setExpireTime(DateUtil.date());
-        IPage<MallMemberCouponVo> pages = mallMemberCouponMapper.selectListInPage(page, mallMemberCouponDto);
-        return new FebsResponse().success().data(pages);
-    }
 
     @Override
     public FebsResponse memberPayCoupon(MallMemberCouponDto mallMemberCouponDto) {
@@ -1035,18 +341,6 @@
         return new FebsResponse().success().data(mallMemberCouponVos);
     }
 
-    @Override
-    public FebsResponse couponDetails(Long id) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(id);
-        MallMemberCouponVo mallMemberCouponVo = new MallMemberCouponVo();
-        mallMemberCouponVo.setCouponName(mallMemberCoupon.getCouponName());
-        MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(mallMemberCoupon.getCouponId());
-        mallMemberCouponVo.setCostAmount(mallGoodsCoupon.getCostAmount());
-        mallMemberCouponVo.setRealAmount(mallGoodsCoupon.getRealAmount());
-        mallMemberCouponVo.setType(mallGoodsCoupon.getType());
-        return new FebsResponse().success().data(mallMemberCouponVo);
-    }
 
     @Override
     public FebsResponse setInvite(ApiSetInviteDto apiSetInviteDto) {
@@ -1102,216 +396,33 @@
         return String.format(wechatLoginUrl, xcxProperties.getXcxAppid(), xcxProperties.getXcxSecret(), code);
     }
 
-    @Override
-    public Map<String, Object>  loginEvent() {
-        MallMember loginUser = LoginUserUtil.getLoginUser();
 
-        MallMember member = this.baseMapper.selectById(loginUser.getId());
-
-        this.baseMapper.updateLastLogin(member.getId(),new Date());
-
-        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNALIVE_COUPON.getType(), DataDictionaryEnum.UNALIVE_COUPON.getCode());
-        if (dic == null || StrUtil.isBlank(dic.getValue())) {
-            return new HashMap<>();
-        }
-
-        Date today = new Date();
-        Date lastLoginTime = member.getLastLoginTime();
-        if (lastLoginTime == null) {
-            lastLoginTime = new Date();
-        }
-
-        long days = DateUtil.between(DateUtil.endOfDay(lastLoginTime), DateUtil.endOfDay(today), DateUnit.DAY);
-
-        List<VipSettingUnAliveSettingBo> list = JSONObject.parseArray(dic.getValue(), VipSettingUnAliveSettingBo.class);
-        List<Long> couponIds = list.stream().filter(item -> {
-            return item.getDay() <= days && item.getCouponId() != null;
-        }).map(VipSettingUnAliveSettingBo::getCouponId).collect(Collectors.toList());
-        if (CollUtil.isEmpty(couponIds)) {
-            return new HashMap<>();
-        }
-
-        LambdaQueryWrapper<MallGoodsCoupon> query = new LambdaQueryWrapper<>();
-        query.in(MallGoodsCoupon::getId, couponIds)
-                .eq(MallGoodsCoupon::getState, 2);
-        List<MallGoodsCoupon> coupons = mallGoodsCouponMapper.selectList(query);
-
-        LambdaQueryWrapper<MallMemberCoupon> memberCouponQuery = new LambdaQueryWrapper<>();
-        memberCouponQuery.in(MallMemberCoupon::getCouponId, couponIds)
-                        .eq(MallMemberCoupon::getMemberId, member.getId())
-                        .eq(MallMemberCoupon::getFromType, 3)
-                        .ge(MallMemberCoupon::getCreatedTime, DateUtil.beginOfDay(new Date()))
-                        .le(MallMemberCoupon::getCreatedTime, DateUtil.endOfDay(new Date()));
-        List<MallMemberCoupon> mallMemberCoupons = mallMemberCouponMapper.selectList(memberCouponQuery);
-        if (CollUtil.isNotEmpty(mallMemberCoupons)) {
-            Map<Long, MallMemberCoupon> map = mallMemberCoupons.stream().collect(Collectors.toMap(MallMemberCoupon::getCouponId, MallMemberCoupon -> MallMemberCoupon));
-            coupons = coupons.stream().filter(item -> {
-                return map.get(item.getId()) == null;
-            }).collect(Collectors.toList());
-        }
-
-        if (CollUtil.isEmpty(coupons)) {
-            return new HashMap<>();
-        }
-
-        coupons.forEach(item -> {
-            MallMemberCoupon memberCoupon = new MallMemberCoupon();
-            memberCoupon.setCouponId(item.getId());
-            memberCoupon.setCouponName(item.getName());
-            memberCoupon.setInviteId(member.getInviteId());
-            memberCoupon.setCouponUuid(IdUtil.simpleUUID());
-            memberCoupon.setState(1);
-            memberCoupon.setFromType(3);
-            memberCoupon.setExpireTime(DateUtil.offsetDay(DateUtil.date(), item.getExpireDay()));
-            memberCoupon.setMemberId(member.getId());
-            mallMemberCouponMapper.insert(memberCoupon);
-        });
-
-        Map<String, Object> result = new HashMap<>();
-        result.put("coupon", coupons);
-        return result;
-    }
 
     @Override
-    public FebsResponse storeList(MallStoreDto mallStoreDto) {
-        QueryWrapper<MallStore> mallStoreQueryWrapper = new QueryWrapper<>();
-        if(StrUtil.isNotEmpty(mallStoreDto.getName())){
-            mallStoreQueryWrapper.like("name",mallStoreDto.getName());
+    public FebsResponse salesService() {
+        LoginUserUtil.getLoginUser().getId();
+
+        MallSalesServiceVo mallSalesServiceVo = new MallSalesServiceVo();
+
+        List<DataDictionaryCustom> dataDictionaryCustoms = dataDictionaryCustomMapper.selectDicByType(
+                SalesServiceEnums.WHATSAPP.getType()
+        );
+        if (dataDictionaryCustoms.size() > 0){
+
+            for (DataDictionaryCustom dataDictionaryCustom : dataDictionaryCustoms){
+                if (SalesServiceEnums.WHATSAPP.getCode().equals(dataDictionaryCustom.getCode())){
+                    mallSalesServiceVo.setWhatsApp(dataDictionaryCustom.getValue());
+                }
+                if (SalesServiceEnums.PHONE.getCode().equals(dataDictionaryCustom.getCode())){
+                    mallSalesServiceVo.setPhone(dataDictionaryCustom.getValue());
+                }
+                if (SalesServiceEnums.EMAIL.getCode().equals(dataDictionaryCustom.getCode())){
+                    mallSalesServiceVo.setEmail(dataDictionaryCustom.getValue());
+                }
+            }
+
         }
-        List<MallStore> mallStores = mallStoreMapper.selectList(mallStoreQueryWrapper);
-        List<MallStoreVo> mallStoreVos = MallStoreConversion.INSTANCE.entitysToVos(mallStores);
-        return new FebsResponse().success().data(mallStoreVos);
-    }
-
-    @Override
-    public FebsResponse storeItemList(MallStoreItemDto mallStoreItemDto) {
-        QueryWrapper<MallStoreItem> mallStoreQueryWrapper = new QueryWrapper<>();
-        mallStoreQueryWrapper.like("store_id",mallStoreItemDto.getStoreId());
-        List<MallStoreItem> mallStores = mallStoreItemMapper.selectList(mallStoreQueryWrapper);
-        return new FebsResponse().success().data(mallStores);
-    }
-
-    @Override
-    public FebsResponse bindStoreMember(BindStoreMemberDto bindStoreMemberDto) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        Long storeItemId = bindStoreMemberDto.getStoreItemId();
-
-        QueryWrapper<MallStoreMember> objectQueryWrapper = new QueryWrapper<>();
-        objectQueryWrapper.eq("member_id",memberId);
-        List<MallStoreMember> mallStoreMembers = mallStoreMemberMapper.selectList(objectQueryWrapper);
-        if(CollUtil.isNotEmpty(mallStoreMembers)){
-            mallStoreMemberMapper.delete(objectQueryWrapper);
-        }
-
-        MallMember mallMember = this.baseMapper.selectById(memberId);
-        Integer sex = "女".equals(mallMember.getSex()) ? 3 : 2;
-
-        MallStoreItem mallStoreItem = mallStoreItemMapper.selectById(storeItemId);
-        HashMap<String, String> objectObjectHashMap = new HashMap<>();
-        String shopAccount = mallStoreItem.getAccount();
-        String shopPwd = mallStoreItem.getPassword();
-        String name = bindStoreMemberDto.getName();
-        String address = bindStoreMemberDto.getAddress();
-        Integer age = bindStoreMemberDto.getAge();
-        String phoneNumber = bindStoreMemberDto.getPhone();
-
-        objectObjectHashMap.put("shopAccount",shopAccount);
-        objectObjectHashMap.put("shopPwd",shopPwd);
-        objectObjectHashMap.put("name",name);
-        objectObjectHashMap.put("address",address);
-        objectObjectHashMap.put("age",age.toString());
-        objectObjectHashMap.put("phoneNumber",phoneNumber);
-        objectObjectHashMap.put("sex",sex.toString());
-
-        //sign= MD5(address+age+name+phoneNumber+shopAccount+shopPwd)
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append(address);
-        stringBuffer.append(age);
-        stringBuffer.append(name);
-        stringBuffer.append(phoneNumber);
-        stringBuffer.append(sex);
-        stringBuffer.append(shopAccount);
-        stringBuffer.append(shopPwd);
-        String sign = MD5.MD5Encode(stringBuffer.toString());
-        objectObjectHashMap.put("sign",sign);
-        String url = "https://data.muchun.co/api/bindCustomer";
-        String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
-        Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
-        String message = JSONUtil.parseObj(result).getStr("message");
-        if(0 != retCode || !"绑定成功".equals(message)){
-            return new FebsResponse().fail().message(message);
-        }
-        Long bindId = JSONUtil.parseObj(result).getJSONObject("data").getLong("userId");
-
-        MallStoreMember mallStoreMember = new MallStoreMember();
-        mallStoreMember.setMemberId(memberId);
-        mallStoreMember.setBindId(bindId);
-        mallStoreMember.setStoreId(mallStoreItem.getStoreId());
-        mallStoreMember.setStoreItemId(mallStoreItem.getId());
-
-        mallStoreMember.setAccount(shopAccount);
-        mallStoreMember.setPassword(shopPwd);
-
-        mallStoreMember.setName(name);
-        mallStoreMember.setAddress(address);
-        mallStoreMember.setAge(age);
-        mallStoreMember.setPhone(phoneNumber);
-        mallStoreMemberMapper.insert(mallStoreMember);
-        return new FebsResponse().success().message("绑定成功");
-    }
-
-    @Override
-    public FebsResponse bindList() {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        QueryWrapper<MallStoreMember> objectQueryWrapper = new QueryWrapper<>();
-        objectQueryWrapper.eq("member_id",memberId);
-        List<MallStoreMember> mallStoreMembers = mallStoreMemberMapper.selectList(objectQueryWrapper);
-
-        ArrayList<MallStoreMemberVo> mallStoreMemberVos = new ArrayList<>();
-        for(MallStoreMember mallStoreMember : mallStoreMembers){
-            MallStoreMemberVo mallStoreMemberVo = new MallStoreMemberVo();
-            Long storeId = mallStoreMember.getStoreId();
-            Long storeItemId = mallStoreMember.getStoreItemId();
-            MallStore mallStore = mallStoreMapper.selectById(storeId);
-            MallStoreItem mallStoreItem = mallStoreItemMapper.selectById(storeItemId);
-            mallStoreMemberVo.setId(mallStoreMember.getId());
-            mallStoreMemberVo.setBindInfo(mallStore.getName()+"-"+mallStoreItem.getCode());
-            mallStoreMemberVos.add(mallStoreMemberVo);
-        }
-        return new FebsResponse().success().data(mallStoreMemberVos);
-    }
-
-    @Override
-    public FebsResponse bindResult(BindResultDto bindResultDto) {
-        Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallStoreMember mallStoreMember = mallStoreMemberMapper.selectById(bindResultDto.getBindId());
-        Long userld = mallStoreMember.getBindId();
-        String shopAccount = mallStoreMember.getAccount();
-        String shopPwd = mallStoreMember.getPassword();
-
-        HashMap<String, String> objectObjectHashMap = new HashMap<>();
-
-        objectObjectHashMap.put("shopAccount",shopAccount);
-        objectObjectHashMap.put("shopPwd",shopPwd);
-        objectObjectHashMap.put("userId",userld.toString());
-
-        //sign= MD5(shopAccount+shopPwd+userId)
-        StringBuffer stringBuffer = new StringBuffer();
-        stringBuffer.append(shopAccount);
-        stringBuffer.append(shopPwd);
-        stringBuffer.append(userld);
-        String sign = MD5.MD5Encode(stringBuffer.toString());
-        objectObjectHashMap.put("sign",sign);
-
-        String url = "https://data.muchun.co/api/getCustomerCheckRecords";
-        String result = HttpCurlUtil.sendPost(url, objectObjectHashMap);
-        Integer retCode = JSONUtil.parseObj(result).getInt("retCode");
-        String message = JSONUtil.parseObj(result).getStr("message");
-        if(0 != retCode){
-            return new FebsResponse().fail().message(message);
-        }
-        JSONArray data = JSONUtil.parseObj(result).getJSONArray("data");
-        return new FebsResponse().success().data(data);
+        return new FebsResponse().success().data(mallSalesServiceVo);
     }
 
     public static void main(String[] args) {
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 4f5edc2..b181d54 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -93,18 +93,16 @@
     @Transactional(rollbackFor = Exception.class)
     public Long createOrder(AddOrderDto addOrderDto) {
         Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMember member = ValidateEntityUtils
-                .ensureColumnReturnEntity(memberId, MallMember::getId, mallMemberMapper::selectOne, "用户不存在");
 
         //订单范围内才允许下单
         MallAddressInfo address = ValidateEntityUtils
-                .ensureColumnReturnEntity(addOrderDto.getAddressId(), MallAddressInfo::getId, mallAddressInfoMapper::selectOne, "收货地址信息不存在");
+                .ensureColumnReturnEntity(addOrderDto.getAddressId(), MallAddressInfo::getId, mallAddressInfoMapper::selectOne, "Please fill in the address first");
 
         String orderNo = MallUtils.getOrderNum();
         MallOrderInfo orderInfo = new MallOrderInfo();
         orderInfo.setOrderNo(orderNo);
         orderInfo.setOrderTime(new Date());
-        orderInfo.setMemberId(member.getId());
+        orderInfo.setMemberId(memberId);
         orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue());
         orderInfo.setRemark(addOrderDto.getRemark());
         orderInfo.setOrderType(addOrderDto.getOrderType());
@@ -115,131 +113,54 @@
         this.baseMapper.insert(orderInfo);
 
         BigDecimal total = BigDecimal.ZERO;
-        /**
-         * 根据传入的优惠卷ID和商品明细集合计算出每个商品获取的实际支付金额
-         */
-        Map<Long, BigDecimal> couponAmountMap = new HashMap<>();
-        MallMemberCoupon mallMemberCoupon = new MallMemberCoupon();
-        if(ObjectUtil.isNotEmpty(addOrderDto.getMemberCouponId())){
-            Long memberCouponId = addOrderDto.getMemberCouponId();
-            mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId);
-            if(ObjectUtil.isEmpty(mallMemberCoupon)){
-                throw new FebsException(mallMemberCoupon.getCouponName()+"无法使用");
-            }
-            Integer state = mallMemberCoupon.getState();
-            if(1 != state){
-                throw new FebsException(mallMemberCoupon.getCouponName()+"无法使用");
-            }
-            List<AddOrderItemDto> items = addOrderDto.getItems();
-            couponAmountMap = getCouponAmountMap(memberCouponId, items);
-        }
         for (AddOrderItemDto item : addOrderDto.getItems()) {
-                MallOrderItem orderItem = new MallOrderItem();
+            MallOrderItem orderItem = new MallOrderItem();
 
-                // 积分商品提交订单
-                if (addOrderDto.getOrderType() == 2) {
-                    MallGoods mallGoods = mallGoodsMapper.selectById(item.getSkuId());
-                    if (mallGoods.getStock() < item.getCnt()) {
-                        throw new FebsException(mallGoods.getGoodsName() + "库存不足");
-                    }
+            MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId());
+            if (sku == null) {
+                throw new FebsException("The product does not exist.");
+            }
 
-                    if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
-                        throw new FebsException(mallGoods.getGoodsName() + "已下架");
-                    }
+            if (sku.getStock() < item.getCnt()) {
+                throw new FebsException("Insufficient stock");
+            }
 
-                    BigDecimal amount = mallGoods.getScore().multiply(BigDecimal.valueOf(item.getCnt()));
-                    orderItem.setAmount(amount);
-                    orderItem.setCnt(item.getCnt());
-                    orderItem.setOrderId(orderInfo.getId());
-                    orderItem.setPrice(mallGoods.getScore());
-                    orderItem.setGoodsId(mallGoods.getId());
-                    orderItem.setGoodsName(mallGoods.getGoodsName());
-                    orderItem.setStyleName(mallGoods.getGoodsName());
-                    orderItem.setSkuName(mallGoods.getGoodsName());
-                    orderItem.setSkuImage(mallGoods.getThumb());
-                    orderItem.setState(1);
+            MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
 
-                    if (addOrderDto.getType() == 1) {
-                        LambdaQueryWrapper<MallShoppingCart> delQuery = new LambdaQueryWrapper<>();
-                        delQuery.eq(MallShoppingCart::getGoodsId, item.getSkuId())
-                                .eq(MallShoppingCart::getMemberId, member.getId());
-                        mallShoppingCartMapper.delete(delQuery);
-                    }
-                    total = total.add(amount);
-                } else {
-                    MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId());
-                    if (sku == null) {
-                        throw new FebsException("购买商品或sku不存在");
-                    }
+            if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
+                throw new FebsException("Discontinued");
+            }
+            //商品库存销量计算
+            Integer goodsResult = mallGoodsMapper.upDateStockAndVolumeByGoodsId(mallGoods.getId(), item.getCnt());
+            if(1 != goodsResult){
+                throw new FebsException("Discontinued");
+            }
 
-                    if (sku.getStock() < item.getCnt()) {
-                        throw new FebsException(sku.getSkuName() + "库存不足");
-                    }
+            BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt()));
+            orderItem.setAmount(amount);
+            orderItem.setCnt(item.getCnt());
+            orderItem.setOrderId(orderInfo.getId());
+            orderItem.setPrice(sku.getPresentPrice());
+            orderItem.setGoodsId(sku.getGoodsId());
+            orderItem.setGoodsName(sku.getGoodsName());
+            orderItem.setSkuId(sku.getId());
+            orderItem.setState(1);
+            orderItem.setStyleName(sku.getStyleName());
+            orderItem.setSkuName(sku.getSkuName());
+            orderItem.setSkuImage(sku.getSkuImage());
+            orderItem.setIsNormal(mallGoods.getIsNormal());
+            orderItem.setCostPrice(sku.getCostPrice());
 
-                    MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
-                    // 零撸专区购买
-                    if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) {
-                        List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId());
-                        if (CollUtil.isNotEmpty(items)) {
-                            throw new FebsException("无法重复领取同一个商品");
-                        }
-                    }
-
-                    if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
-                        throw new FebsException(mallGoods.getGoodsName() + "已下架");
-                    }
-                    //商品库存销量计算
-                    Integer goodsResult = mallGoodsMapper.upDateStockAndVolumeByGoodsId(mallGoods.getId(), item.getCnt());
-                    if(1 != goodsResult){
-                        throw new FebsException(mallGoods.getGoodsName() + "库存不足");
-                    }
-
-                    BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt()));
-                    //是否使用优惠卷
-                    if(ObjectUtil.isNotEmpty(addOrderDto.getMemberCouponId())){
-                        Long memberCouponId = addOrderDto.getMemberCouponId();
-                        if(ObjectUtil.isNotEmpty(couponAmountMap.get(item.getSkuId()))){
-                            BigDecimal skuCouponAmount = couponAmountMap.get(item.getSkuId());//使用折扣卷后的应该支付的钱
-                            if(skuCouponAmount.compareTo(BigDecimal.ZERO) > 0){
-                                amount = skuCouponAmount;
-                            }
-                            orderItem.setMemberCouponId(memberCouponId);
-                        }
-                    }
-                    orderItem.setAmount(amount);
-                    orderItem.setCnt(item.getCnt());
-                    orderItem.setOrderId(orderInfo.getId());
-                    orderItem.setPrice(sku.getPresentPrice());
-                    orderItem.setGoodsId(sku.getGoodsId());
-                    orderItem.setGoodsName(sku.getGoodsName());
-                    orderItem.setSkuId(sku.getId());
-                    orderItem.setState(1);
-                    if(ObjectUtil.isNotEmpty(member.getReferrerId())){
-                        orderItem.setMemberInviteId(member.getReferrerId());
-                    }
-                    if(ObjectUtil.isNotEmpty(addOrderDto.getMemberInviteId())){
-                        orderItem.setMemberInviteId(addOrderDto.getMemberInviteId());
-                    }
-
-                    orderItem.setStyleName(sku.getStyleName());
-                    orderItem.setSkuName(sku.getSkuName());
-                    orderItem.setSkuImage(sku.getSkuImage());
-                    orderItem.setIsNormal(mallGoods.getIsNormal());
-                    orderItem.setCostPrice(sku.getCostPrice());
-
-                    total = total.add(amount);
-                    //规格的库存销量
-                    Integer skuResult = mallGoodsSkuMapper.upDateStockAndVolumeBySkuId(sku.getId(),item.getCnt());
-                    ValidateEntityUtils.ensureEqual(1,skuResult,sku.getSkuName() + "库存不足");
-                    if (addOrderDto.getType() == 1) {
-                        mallShoppingCartMapper.delBySkuId(sku.getId(), member.getId());
-                    }
-                }
-                mallOrderItemMapper.insert(orderItem);
+            total = total.add(amount);
+            //规格的库存销量
+            Integer skuResult = mallGoodsSkuMapper.upDateStockAndVolumeBySkuId(sku.getId(),item.getCnt());
+            ValidateEntityUtils.ensureEqual(1,skuResult,sku.getSkuName() + "Discontinued");
+            if (addOrderDto.getType() == 1) {
+                mallShoppingCartMapper.delBySkuId(sku.getId(), memberId);
+            }
+            mallOrderItemMapper.insert(orderItem);
         }
 
-        mallMemberCoupon.setState(2);
-        mallMemberCouponMapper.updateById(mallMemberCoupon);
         //运费
         BigDecimal delivaryAmount = addOrderDto.getDeliveryAmount() == null ? BigDecimal.ZERO : addOrderDto.getDeliveryAmount();
         orderInfo.setCarriage(delivaryAmount);
@@ -247,14 +168,10 @@
         total = total.add(delivaryAmount);
         orderInfo.setAmount(total);
         orderInfo.setAddressId(address.getId());
-        orderInfo.setName(address.getName());
+        orderInfo.setName(address.getFristName() + address.getName());
         orderInfo.setPhone(address.getPhone());
-        orderInfo.setIsHome(addOrderDto.getIsHome());
 
-        if (StrUtil.isBlank(address.getLatitude())||StrUtil.isBlank(address.getLongitude())) {
-            throw new FebsException("请添加地址");
-        }
-        orderInfo.setAddress(address.getProvince()+address.getCity()+address.getArea() + address.getAddress());
+        orderInfo.setAddress(address.getArea()+ address.getAddress()+address.getCity()+address.getProvince() + address.getCountry() );
         orderInfo.setLatitude(address.getLatitude());
         orderInfo.setLongitude(address.getLongitude());
         this.baseMapper.updateById(orderInfo);
@@ -394,11 +311,11 @@
         MallMember member = LoginUserUtil.getLoginUser();
         MallOrderInfo orderInfo = this.baseMapper.selectOrderByMemberIdAndId(member.getId(), id);
         if (orderInfo == null || AppContants.DEL_FLAG_Y == orderInfo.getDelFlag()) {
-            throw new FebsException("订单不存在");
+            throw new FebsException("Order does not exist");
         }
 
         if (OrderStatusEnum.WAIT_PAY.getValue() != orderInfo.getStatus()) {
-            throw new FebsException("订单不是待付款, 无法取消");
+            throw new FebsException("The order is not pending payment, so it cannot be canceled");
         }
 
         orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue());
@@ -406,8 +323,6 @@
         this.baseMapper.updateById(orderInfo);
 
         if (orderInfo.getOrderType() == 2) {
-//            mallMoneyFlowService.addMoneyFlow(member.getId(), orderInfo.getAmount(), MoneyFlowTypeEnum.REFUND.getValue(), orderInfo.getOrderNo(),  FlowTypeEnum.PRIZE_SCORE.getValue());
-//            memberWalletService.add(orderInfo.getAmount(), member.getId(), "prizeScore");
             return;
         }
 
@@ -416,22 +331,22 @@
             for(MallOrderItem mallOrderItem : mallOrderItemList){
                 MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId());
                 if (sku == null) {
-                    throw new FebsException("购买商品或sku不存在");
+                    throw new FebsException("The product does not exist.");
                 }
 
                 if (sku.getStock() < mallOrderItem.getCnt()) {
-                    throw new FebsException(sku.getSkuName() + "库存不足");
+                    throw new FebsException("Insufficient stock");
                 }
 
                 MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
                 Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt());
                 if(1 != goodsResult){
-                    throw new FebsException(mallGoods.getGoodsName() + "库存不足");
+                    throw new FebsException("Insufficient stock");
                 }
 
                 Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt());
                 if(1 != skuResult){
-                    throw new FebsException(sku.getSkuName() + "库存不足");
+                    throw new FebsException("Insufficient stock");
                 }
                 Long memberCouponId = mallOrderItem.getMemberCouponId();
                 MallMemberCoupon mallMemberCoupon = mallMemberCouponMapper.selectById(memberCouponId);
@@ -991,32 +906,23 @@
     @Override
     public FebsResponse createOrderVerify(ApiCreateOrderVerifyDto apiCreateOrderVerifyDto) {
         Long memberId = LoginUserUtil.getLoginUser().getId();
-        MallMember member = memberMapper.selectById(memberId);
         List<AddOrderItemDto> items = apiCreateOrderVerifyDto.getItems();
         if(CollUtil.isEmpty(items)){
-            return new FebsResponse().fail().message("请先挑选商品");
+            return new FebsResponse().fail().message("Please select the product first");
         }
         for (AddOrderItemDto item : apiCreateOrderVerifyDto.getItems()) {
             MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId());
             if (sku == null) {
-                return new FebsResponse().fail().message("购买商品或sku不存在");
+                return new FebsResponse().fail().message("The product does not exist.");
             }
             if (sku.getStock() < item.getCnt()) {
-                return new FebsResponse().fail().message(sku.getSkuName() + "库存不足");
+                return new FebsResponse().fail().message("Insufficient stock");
             }
 
             MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
             if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
-                return new FebsResponse().fail().message(mallGoods.getGoodsName() + "已下架");
+                return new FebsResponse().fail().message("Discontinued");
             }
-            if(GoodsTypeEnum.HUO_DONG.getValue() == mallGoods.getIsNormal()){
-                //活动商品判断是否在活动进行中
-                MallActivity mallActivity = mallActivityMapper.selectById(mallGoods.getActivityId());
-                if(mallActivity == null || mallActivity.getState() != 2){
-                    return new FebsResponse().fail().message("活动不在进行中");
-                }
-            }
-
         }
 
         return new FebsResponse().success();
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java
index ad51eb4..d176abc 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallShoppingCartServiceImpl.java
@@ -50,41 +50,18 @@
     public void addGoodsToCart(List<AddCartDto> addCartDtoList) {
         Long memberId = LoginUserUtil.getLoginUser().getId();
         for (AddCartDto addCartDto : addCartDtoList) {
-            Long goodsId = null;
-            Long skuId = null;
-            Long styleId = null;
-            MallShoppingCart cartGoods = null;
+            addCartDto.setType(1);
+            MallGoodsSku sku = mallGoodsSkuMapper.selectById(addCartDto.getSkuId());
 
-            if (addCartDto.getType() == null) {
-                addCartDto.setType(1);
+            if (sku == null) {
+                throw new FebsException("sku不存在");
             }
 
-            if (addCartDto.getType() == 1) {
-                MallGoodsSku sku = mallGoodsSkuMapper.selectById(addCartDto.getSkuId());
+            Long goodsId = sku.getGoodsId();
+            Long skuId = sku.getId();
+            Long styleId = sku.getStyleId();
 
-                if (sku == null) {
-                    throw new FebsException("sku不存在");
-                }
-
-                goodsId = sku.getGoodsId();
-                skuId = sku.getId();
-                styleId = sku.getStyleId();
-
-                cartGoods = this.baseMapper.selectCartGoodsBySkuId(addCartDto.getSkuId(), memberId);
-            } else {
-                MallGoods mallGoods = mallGoodsMapper.selectById(addCartDto.getSkuId());
-                if (mallGoods == null) {
-                    throw new FebsException("积分商品不存在");
-                }
-
-                goodsId = mallGoods.getId();
-
-                LambdaQueryWrapper<MallShoppingCart> cartQuery = new LambdaQueryWrapper<>();
-                cartQuery.eq(MallShoppingCart::getGoodsId, goodsId)
-                        .eq(MallShoppingCart::getMemberId, memberId)
-                        .last("limit 1");
-                cartGoods = this.baseMapper.selectOne(cartQuery);
-            }
+            MallShoppingCart cartGoods = this.baseMapper.selectCartGoodsBySkuId(addCartDto.getSkuId(), memberId);
 
             if (cartGoods == null) {
                 cartGoods = new MallShoppingCart();
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java
index 5d606cf..817983a 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/MallMemberCollectionServiceImpl.java
@@ -1,5 +1,6 @@
 package cc.mrbird.febs.mall.service.impl;
 
+import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.mall.dto.AddCollectionDto;
@@ -35,12 +36,12 @@
     private final IApiMallGoodsService apiMallGoodsService;
 
     @Override
-    public void add(AddCollectionDto addCollectionDto) {
+    public FebsResponse add(AddCollectionDto addCollectionDto) {
         MallMember member = LoginUserUtil.getLoginUser();
 
         MallGoods mallgoods = apiMallGoodsService.getById(addCollectionDto.getGoodsId());
         if (mallgoods == null) {
-            throw new FebsException("商品不存在");
+            throw new FebsException("The product does not exist.");
         }
 
         LambdaQueryWrapper<MallMemberCollection> queryWrapper = new LambdaQueryWrapper<>();
@@ -48,14 +49,15 @@
         queryWrapper.eq(MallMemberCollection::getGoodsId, addCollectionDto.getGoodsId());
         List<MallMemberCollection> mallMemberCollections = this.baseMapper.selectList(queryWrapper);
         if (CollUtil.isNotEmpty(mallMemberCollections)) {
-            throw new FebsException("商品已收藏");
+            throw new FebsException("Product has been favorited");
         }
 
         MallMemberCollection collection = new MallMemberCollection();
         collection.setMemberId(member.getId());
         collection.setGoodsId(addCollectionDto.getGoodsId());
-
         this.baseMapper.insert(collection);
+
+        return new FebsResponse().success().message("Added to favorites");
     }
 
     @Override
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/AddressInfoVo.java b/src/main/java/cc/mrbird/febs/mall/vo/AddressInfoVo.java
index 8af6e59..6894a15 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/AddressInfoVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/AddressInfoVo.java
@@ -13,22 +13,32 @@
 public class AddressInfoVo {
 
     @ApiModelProperty(value = "id")
-    private String id;
+    private Long id;
 
-    @ApiModelProperty(value = "姓名")
+    @ApiModelProperty(value = "Last name")
     private String name;
 
-    @ApiModelProperty(value = "手机号")
-    private String phone;
+    @ApiModelProperty(value = "First name")
+    private String firstName;
 
-    @ApiModelProperty(value = "地区")
-    private String area;
 
-    @ApiModelProperty(value = "地址")
+
+    @ApiModelProperty(value = "Address1")
     private String address;
 
-    @ApiModelProperty(value = "是否默认地址 1-是 2-否")
-    private Integer isDefault;
+    @ApiModelProperty(value = "Address2")
+    private String area;
+    @ApiModelProperty(value = "Postcode")
+    private String postcode;
+
+    @ApiModelProperty(value = "Phone Number")
+    private String phone;
+    @ApiModelProperty(value = "City")
+    private String city;
+    @ApiModelProperty(value = "State / Province")
+    private String province;
+    @ApiModelProperty(value = "Country/Region")
+    private String country;
 
     /**
      * 经度
@@ -41,12 +51,4 @@
      */
     @ApiModelProperty(value = "纬度")
     private String latitude;
-    //省
-
-    @ApiModelProperty(value = "省")
-    private String province;
-    //市
-
-    @ApiModelProperty(value = "市")
-    private String city;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
index 9084d2b..2629c79 100644
--- a/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
@@ -14,99 +14,13 @@
 @ApiModel(value = "MallMemberVo", description = "商城用户信息返回类")
 public class MallMemberVo {
 
-    @ApiModelProperty(value = "id")
-    private Long id;
-
     @ApiModelProperty(value = "昵称")
     private String name;
-
-    @ApiModelProperty(value = "手机号")
-    private String phone;
 
     @ApiModelProperty(value = "邮箱")
     private String email;
 
-    @ApiModelProperty(value = "真实姓名")
-    private String realName;
-
-    @ApiModelProperty(value = "性别")
-    private String sex;
-
-    @ApiModelProperty(value = "邀请码(如果是团长,邀请码就是团长特征码)")
-    private String inviteId;
-
     @ApiModelProperty(value = "头像")
     private String avatar;
 
-    @ApiModelProperty(value = "余额")
-    private BigDecimal balance;
-
-    @ApiModelProperty(value = "代理等级")
-    private String levelName;
-
-    @ApiModelProperty(value = "推荐人昵称")
-    private String referrerName;
-
-    private String level;
-
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date createdTime;
-
-    /**
-     * 账户状态;1-正常 2-禁用
-     */
-    private Integer accountStatus;
-    public static final int ACCOUNTSTATUS_Y = 1;
-    public static final int ACCOUNTSTATUS_N = 2;
-
-    @ApiModelProperty(value = "是否设置收款方式", example = "1是2否")
-    private Integer hasPayment = 2;
-
-    @ApiModelProperty(value = "是否设置交易密码", example = "1是2否")
-    private Integer hasTradePwd = 2;
-
-    @ApiModelProperty(value = "绑定手机号")
-    private String bindPhone;
-
-    @ApiModelProperty(value = "累计消费")
-    private BigDecimal totalCost;
-
-    @ApiModelProperty(value = "赠送积分")
-    private BigDecimal score;
-
-    @ApiModelProperty(value = "抽奖积分")
-    private BigDecimal prizeScore;
-
-    @ApiModelProperty(value = "是否是团长 1: 是 2:否")
-    private Integer isTeamLeader;
-
-    @ApiModelProperty(value = "是否是代理 1: 申请中 2:是 3:否")
-    private Integer isAgent;
-
-    @ApiModelProperty(value = "代理名称")
-    private String agentLevelName;
-
-    @ApiModelProperty(value = "代理等级数字  1:一级 2:二级 3:三级")
-    private Integer agentLevel;
-
-    @ApiModelProperty(value = "收藏数量")
-    private Integer collectionCnt;
-
-    @ApiModelProperty(value = "足迹数量")
-    private Integer footprintCnt;
-
-    @ApiModelProperty(value = "足迹数量")
-    private Integer childCnt;
-
-    @ApiModelProperty(value = "是否是推销员")
-    private Integer isSale;
-
-    @ApiModelProperty(value = "会员信息")
-    private MallVipConfig vipInfo;
-
-
-    @ApiModelProperty(value = "生日")
-    @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
-    private Date birthday;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/vo/MallSalesServiceVo.java b/src/main/java/cc/mrbird/febs/mall/vo/MallSalesServiceVo.java
new file mode 100644
index 0000000..5ec5480
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/vo/MallSalesServiceVo.java
@@ -0,0 +1,20 @@
+package cc.mrbird.febs.mall.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "MallSalesServiceVo", description = "地址信息返回参数类")
+public class MallSalesServiceVo {
+
+    @ApiModelProperty(value = "whatsApp")
+    private String whatsApp;
+
+    @ApiModelProperty(value = "phone")
+    private String phone;
+
+    @ApiModelProperty(value = "email")
+    private String email;
+
+}

--
Gitblit v1.9.1