From 3c5d0550633c0549ac948f4e6a1b015377fa293f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 07 Feb 2023 15:10:25 +0800
Subject: [PATCH] 代理人申请,后台审核 测试环境,数据库新建 后台系统名称修改
---
src/main/resources/templates/index.html | 2
src/main/resources/mapper/modules/MallAgentRecordMapper.xml | 34 +++
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 22 +
src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java | 2
src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java | 34 +++
src/main/java/cc/mrbird/febs/mall/service/IApiMallAgentService.java | 12 +
src/main/resources/templates/error/404.html | 2
src/main/java/cc/mrbird/febs/mall/dto/ApiAgentApplyDto.java | 41 ++++
src/main/java/cc/mrbird/febs/mall/conversion/MallAgentRecordConversion.java | 15 +
src/main/java/cc/mrbird/febs/mall/entity/MallAgentRecord.java | 40 ++++
src/main/java/cc/mrbird/febs/mall/mapper/MallAgentRecordMapper.java | 14 +
src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java | 41 ++++
src/main/resources/templates/error/403.html | 2
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAgentServiceImpl.java | 49 ++++
src/main/resources/templates/febs/views/modules/mallMember/mallAgentRecord.html | 194 +++++++++++++++++++
src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java | 9
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java | 17 +
src/main/resources/application-dev.yml | 22 +-
src/main/resources/application.yml | 2
src/main/resources/templates/error/500.html | 2
src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java | 11
src/main/resources/templates/febs/views/layout.html | 2
src/main/resources/templates/febs/views/login.html | 4
23 files changed, 532 insertions(+), 41 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
index a7ad8df..d899a86 100644
--- a/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
+++ b/src/main/java/cc/mrbird/febs/common/runner/FebsStartedUpRunner.java
@@ -63,7 +63,7 @@
log.info("/ /` / / \\ | |\\/| | |_) | | | |_ | | | |_ ");
log.info("\\_\\_, \\_\\_/ |_| | |_| |_|__ |_|__ |_| |_|__ ");
log.info(" ");
- log.info("壹元蔬菜 权限系统启动完毕,地址:{}", url);
+ log.info("钱阿姨 权限系统启动完毕,地址:{}", url);
boolean auto = febsProperties.isAutoOpenBrowser();
if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) {
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 215b2cd..6be9111 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallMemberController.java
@@ -5,10 +5,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.*;
-import cc.mrbird.febs.mall.entity.AppVersion;
-import cc.mrbird.febs.mall.entity.MallMember;
-import cc.mrbird.febs.mall.entity.MallNewsInfo;
-import cc.mrbird.febs.mall.entity.MallShopApply;
+import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.service.IAdminMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo;
@@ -368,4 +365,33 @@
return new FebsResponse().success();
}
+ /**
+ * 代理申请列表
+ */
+ @GetMapping("getAgentApplyList")
+ public FebsResponse getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request) {
+ Map<String, Object> data = getDataTable(mallMemberService.getAgentApplyList(mallAgentRecord, request));
+ return new FebsResponse().success().data(data);
+ }
+
+ /**
+ * 代理申请列表
+ * 同意
+ */
+ @GetMapping("agreeAgentApply/{id}")
+ @ControllerEndpoint(operation = "审核代理申请", exceptionMessage = "操作失败")
+ public FebsResponse agreeAgentApply(@NotNull(message = "{required}") @PathVariable Long id) {
+ return mallMemberService.agreeAgentApply(id);
+ }
+
+ /**
+ * 代理申请列表
+ * 拒绝
+ */
+ @GetMapping("disagreeAgentApply/{id}")
+ @ControllerEndpoint(operation = "审核代理申请", exceptionMessage = "操作失败")
+ public FebsResponse disagreeAgentApply(@NotNull(message = "{required}") @PathVariable Long id) {
+ return mallMemberService.disagreeAgentApply(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
index 79d6d3f..d4f191a 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -4,10 +4,7 @@
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMemberPayment;
-import cc.mrbird.febs.mall.service.IApiMallMemberService;
-import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
-import cc.mrbird.febs.mall.service.ICommonService;
-import cc.mrbird.febs.mall.service.IMallMemberWithdrawService;
+import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.mall.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -34,6 +31,7 @@
private final IApiMallMemberService memberService;
private final IMallMemberWithdrawService mallMemberWithdrawService;
private final IApiMallMemberWalletService walletService;
+ private final IApiMallAgentService iApiMallAgentService;
/**
* 小程序接收用户数据,更新用户信息
@@ -192,4 +190,15 @@
return memberService.rechargeWallet(apiRechargeWalletDto);
}
+ /**
+ * 申请代理
+ * @param apiAgentApplyDto
+ * @return
+ */
+ @ApiOperation(value = "申请代理")
+ @PostMapping(value = "/agentApply")
+ public FebsResponse agentApply(@RequestBody @Validated ApiAgentApplyDto apiAgentApplyDto) {
+ return iApiMallAgentService.agentApply(apiAgentApplyDto);
+ }
+
}
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
index ef7b482..4e58c2d 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ViewMallMemberController.java
@@ -267,6 +267,15 @@
return FebsUtil.view("modules/mallMember/addMember");
}
+ /**
+ * 代理申请列表
+ */
+ @GetMapping("mallAgentRecord")
+ @RequiresPermissions("mallAgentRecord:view")
+ public String mallAgentRecord() {
+ return FebsUtil.view("modules/mallMember/mallAgentRecord");
+ }
+
diff --git a/src/main/java/cc/mrbird/febs/mall/conversion/MallAgentRecordConversion.java b/src/main/java/cc/mrbird/febs/mall/conversion/MallAgentRecordConversion.java
new file mode 100644
index 0000000..a91ac62
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/conversion/MallAgentRecordConversion.java
@@ -0,0 +1,15 @@
+package cc.mrbird.febs.mall.conversion;
+
+import cc.mrbird.febs.mall.dto.ApiAgentApplyDto;
+import cc.mrbird.febs.mall.entity.MallAgentRecord;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+@Mapper
+public abstract class MallAgentRecordConversion {
+
+ public static final MallAgentRecordConversion INSTANCE = Mappers.getMapper(MallAgentRecordConversion.class);
+
+ public abstract MallAgentRecord dtoToEntity(ApiAgentApplyDto apiAgentApplyDto);
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiAgentApplyDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiAgentApplyDto.java
new file mode 100644
index 0000000..45596ae
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiAgentApplyDto.java
@@ -0,0 +1,41 @@
+package cc.mrbird.febs.mall.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@ApiModel(value = "ApiAgentApplyDto", description = "申请代理")
+public class ApiAgentApplyDto {
+
+ //申请人姓名
+ @NotBlank(message = "姓名不能为空")
+ @ApiModelProperty(value = "姓名")
+ private String name;
+ //电话
+ @NotBlank(message = "电话不能为空")
+ @ApiModelProperty(value = "电话")
+ private String phone;
+ //店铺名称(非必填)
+ @ApiModelProperty(value = "店铺名称(非必填)")
+ private String storeName;
+ //省
+ @NotBlank(message = "省不能为空")
+ @ApiModelProperty(value = "省")
+ private String province;
+ //市
+ @NotBlank(message = "市不能为空")
+ @ApiModelProperty(value = "市")
+ private String city;
+ //区、县
+ @NotBlank(message = "区、县不能为空")
+ @ApiModelProperty(value = "区、县")
+ private String area;
+ //详细地址
+ @NotBlank(message = "详细地址不能为空")
+ @ApiModelProperty(value = "详细地址")
+ private String storeAddress;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/entity/MallAgentRecord.java b/src/main/java/cc/mrbird/febs/mall/entity/MallAgentRecord.java
new file mode 100644
index 0000000..5556174
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/entity/MallAgentRecord.java
@@ -0,0 +1,40 @@
+package cc.mrbird.febs.mall.entity;
+
+import cc.mrbird.febs.common.entity.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@TableName("mall_agent_record")
+public class MallAgentRecord extends BaseEntity {
+
+ private Long memberId;
+
+ //申请人姓名
+ private String name;
+ //电话
+ private String phone;
+ //店铺名称(非必填)
+ private String storeName;
+ //省
+ private String province;
+ //市
+ private String city;
+ //区、县
+ private String area;
+ //详细地址
+ private String storeAddress;
+
+ //状态 1::申请中 2:同意 3:拒绝
+ private Integer state;
+ public static final Integer APPLY_ING = 1;
+ public static final Integer APPLY_AGREE = 2;
+ public static final Integer APPLY_DISAGREE = 3;
+
+ @TableField(exist = false)
+ private String memberName;
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/mapper/MallAgentRecordMapper.java b/src/main/java/cc/mrbird/febs/mall/mapper/MallAgentRecordMapper.java
new file mode 100644
index 0000000..5e3b8cf
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/mapper/MallAgentRecordMapper.java
@@ -0,0 +1,14 @@
+package cc.mrbird.febs.mall.mapper;
+
+import cc.mrbird.febs.mall.entity.MallAgentRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
+
+public interface MallAgentRecordMapper extends BaseMapper<MallAgentRecord> {
+
+ MallAgentRecord selectByMemberIdAndState(@Param("memberId")Long memberId, @Param("state")Integer applyIng);
+
+ IPage<MallAgentRecord> selectMallAgentRecordListInPage(Page<MallAgentRecord> page, @Param("record")MallAgentRecord mallAgentRecord);
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
index bb75da6..200a1c6 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAdminMallMemberService.java
@@ -3,10 +3,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.mall.dto.*;
-import cc.mrbird.febs.mall.entity.AppVersion;
-import cc.mrbird.febs.mall.entity.MallMember;
-import cc.mrbird.febs.mall.entity.MallNewsInfo;
-import cc.mrbird.febs.mall.entity.MallShopApply;
+import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.vo.*;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -93,4 +90,10 @@
MallMember findByInviteId(String inviteId);
void modifyReferer(MallMember member);
+
+ IPage<MallAgentRecord> getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request);
+
+ FebsResponse agreeAgentApply(Long id);
+
+ FebsResponse disagreeAgentApply(Long id);
}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallAgentService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallAgentService.java
new file mode 100644
index 0000000..2f4f89b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallAgentService.java
@@ -0,0 +1,12 @@
+package cc.mrbird.febs.mall.service;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.mall.dto.ApiAgentApplyDto;
+import cc.mrbird.febs.mall.entity.MallAgentRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface IApiMallAgentService extends IService<MallAgentRecord> {
+
+ FebsResponse agentApply(ApiAgentApplyDto apiAgentApplyDto);
+
+}
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
index 7a91557..e57eb82 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -68,6 +68,8 @@
private final IMallMoneyFlowService mallMoneyFlowService;
private final MallTeamLeaderMapper mallTeamLeaderMapper;
+ private final MallAgentRecordMapper mallAgentRecordMapper;
+
@Override
public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) {
Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize());
@@ -600,6 +602,45 @@
}
}
+ @Override
+ public IPage<MallAgentRecord> getAgentApplyList(MallAgentRecord mallAgentRecord, QueryRequest request) {
+ Page<MallAgentRecord> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MallAgentRecord> mallAgentRecords = mallAgentRecordMapper.selectMallAgentRecordListInPage(page, mallAgentRecord);
+ return mallAgentRecords;
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse agreeAgentApply(Long id) {
+ MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallAgentRecord)){
+ return new FebsResponse().fail().message("申请记录不存在");
+ }
+ mallAgentRecord.setState(MallAgentRecord.APPLY_AGREE);
+ mallAgentRecordMapper.updateById(mallAgentRecord);
+
+ //更新用户表中的LEVEL
+ MallMember mallMember = this.baseMapper.selectById(mallAgentRecord.getMemberId());
+ if(ObjectUtil.isEmpty(mallMember)){
+ return new FebsResponse().fail().message("用户不存在");
+ }
+ mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name());
+ this.baseMapper.updateById(mallMember);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse disagreeAgentApply(Long id) {
+ MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectById(id);
+ if(ObjectUtil.isEmpty(mallAgentRecord)){
+ return new FebsResponse().fail().message("申请记录不存在");
+ }
+ mallAgentRecord.setState(MallAgentRecord.APPLY_DISAGREE);
+ mallAgentRecordMapper.updateById(mallAgentRecord);
+ return new FebsResponse().success();
+ }
+
private String refererIds(String parentId) {
boolean flag = false;
if (StrUtil.isBlank(parentId)) {
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAgentServiceImpl.java
new file mode 100644
index 0000000..94ab94b
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallAgentServiceImpl.java
@@ -0,0 +1,49 @@
+package cc.mrbird.febs.mall.service.impl;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.enumerates.AgentLevelEnum;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.mall.conversion.MallAgentRecordConversion;
+import cc.mrbird.febs.mall.conversion.MallGoodsConversion;
+import cc.mrbird.febs.mall.dto.ApiAgentApplyDto;
+import cc.mrbird.febs.mall.entity.MallAgentRecord;
+import cc.mrbird.febs.mall.entity.MallMember;
+import cc.mrbird.febs.mall.mapper.MallAgentRecordMapper;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
+import cc.mrbird.febs.mall.service.IApiMallAgentService;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class ApiMallAgentServiceImpl extends ServiceImpl<MallAgentRecordMapper, MallAgentRecord> implements IApiMallAgentService {
+
+ private final MallAgentRecordMapper mallAgentRecordMapper;
+ private final MallMemberMapper mallMemberMapper;
+
+ @Override
+ public FebsResponse agentApply(ApiAgentApplyDto apiAgentApplyDto) {
+ Long memberId = LoginUserUtil.getLoginUser().getId();
+ //判断用户当前的级别
+ MallMember mallMember = mallMemberMapper.selectById(memberId);
+ if(!AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){
+ return new FebsResponse().fail().message("用户已无法申请");
+ }
+ //判断用户是否正在申请
+ MallAgentRecord mallAgentRecord = mallAgentRecordMapper.selectByMemberIdAndState(memberId,MallAgentRecord.APPLY_ING);
+ if(ObjectUtil.isNotEmpty(mallAgentRecord)){
+ return new FebsResponse().fail().message("用户已申请");
+ }
+
+ MallAgentRecord mallAgentRecordNew = MallAgentRecordConversion.INSTANCE.dtoToEntity(apiAgentApplyDto);
+ mallAgentRecordNew.setMemberId(memberId);
+ mallAgentRecordNew.setState(MallAgentRecord.APPLY_ING);
+ mallAgentRecordMapper.insert(mallAgentRecordNew);
+
+ return new FebsResponse().success().message("申请成功");
+ }
+}
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 4516640..1d08982 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
@@ -88,20 +88,24 @@
public Long createOrder(AddOrderDto addOrderDto) {
// synchronized(this){
MallMember member = LoginUserUtil.getLoginUser();
- String takeUniqueCode = addOrderDto.getTakeUniqueCode();
- if(StrUtil.isEmpty(takeUniqueCode)){
- throw new FebsException("请选择自提点");
+ //验证用户的等级
+ if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){
+ throw new FebsException("请先申请成为代理人");
}
+// String takeUniqueCode = addOrderDto.getTakeUniqueCode();
+// if(StrUtil.isEmpty(takeUniqueCode)){
+// throw new FebsException("请选择自提点");
+// }
- MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
- if(ObjectUtil.isEmpty(mallTeamLeader)){
- throw new FebsException("请重新选择团长");
- }
+// MallTeamLeader mallTeamLeader = mallTeamLeaderMapper.selectLeaderByUniqueCode(takeUniqueCode);
+// if(ObjectUtil.isEmpty(mallTeamLeader)){
+// throw new FebsException("请重新选择团长");
+// }
//订单范围内才允许下单
MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
if(ObjectUtil.isEmpty(address)){
- throw new FebsException("请重新选择提货人信息");
+ throw new FebsException("请重新选择收货地址信息");
}
// MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode());
// if(ObjectUtil.isNotEmpty(mallElectronicFence)){
@@ -121,7 +125,7 @@
orderInfo.setRemark(addOrderDto.getRemark());
orderInfo.setOrderType(addOrderDto.getOrderType());
- orderInfo.setTakeUniqueCode(addOrderDto.getTakeUniqueCode());
+// orderInfo.setTakeUniqueCode(addOrderDto.getTakeUniqueCode());
orderInfo.setDeliveryType(1);
if (CollUtil.isEmpty(addOrderDto.getItems())) {
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 6da9eb5..093efa7 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -19,10 +19,10 @@
# password: 123456
# driver-class-name: com.mysql.cj.jdbc.Driver
# url: jdbc:mysql://120.27.238.55:3306/db_pingtuan?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
- username: db_yyg
- password: yyg123!@#
+ username: db_mall_qianayi
+ password: db_mall_qianayi123!@#123
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://121.37.162.173:3306/db_yyg?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
+ url: jdbc:mysql://121.37.162.173:3306/db_mall_qianayi?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
# username: db_mall
# password: mall!@#123
# driver-class-name: com.mysql.cj.jdbc.Driver
@@ -30,13 +30,13 @@
redis:
# Redis数据库索引(默认为 0)
- database: 3
+ database: 8
# Redis服务器地址
- host: 120.27.238.55
+ host: 121.37.162.173
# Redis服务器连接端口
port: 6379
# Redis 密码
- password: xcong123
+ password: d32ncxe@i3#!dV
lettuce:
pool:
# 连接池中的最小空闲连接
@@ -50,10 +50,10 @@
# 连接超时时间(毫秒)
timeout: 5000
rabbitmq:
- host: 120.27.238.55
+ host: 121.37.162.173
port: 5672
- username: ct_rabbit
- password: 123456
+ username: hibit
+ password: hibit123
publisher-confirm-type: correlated
pay:
@@ -69,8 +69,8 @@
xcx:
wechar_login_url: https://api.weixin.qq.com/sns/jscode2session?appid=%s&secret=%s&js_code=%s&grant_type=authorization_code
- xcx_appid: wx0b515f652282158e
- xcx_secret: 8d3d3c14221f7dc37650b861dc0fc570
+ xcx_appid: wxfb1acf504eb9d058
+ xcx_secret: 7ee226a964b1be7cfb96f5e0dc739c44
debug: false
wecharPaynotifyUrl: http://groupbuy.csxuncong.com/api/xcxPay/wxpayCallback
wecharRechargePaynotifyUrl: http://groupbuy.csxuncong.com/api/xcxPay/rechargeCallBack
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fa54718..ebfeb13 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -5,7 +5,7 @@
spring:
profiles:
- active: test
+ active: dev
servlet:
multipart:
diff --git a/src/main/resources/mapper/modules/MallAgentRecordMapper.xml b/src/main/resources/mapper/modules/MallAgentRecordMapper.xml
new file mode 100644
index 0000000..a9fb76e
--- /dev/null
+++ b/src/main/resources/mapper/modules/MallAgentRecordMapper.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cc.mrbird.febs.mall.mapper.MallAgentRecordMapper">
+
+ <select id="selectByMemberIdAndState" resultType="cc.mrbird.febs.mall.entity.MallAgentRecord">
+ select a.* from mall_agent_record a
+ where a.member_id = #{memberId}
+ and a.state = #{state}
+ limit 1
+ </select>
+
+ <select id="selectMallAgentRecordListInPage" resultType="cc.mrbird.febs.mall.entity.MallAgentRecord">
+ SELECT
+ a.*,
+ b.name memberName
+ FROM mall_agent_record a
+ LEFT JOIN mall_member b on a.member_id = b.id
+ <where>
+ <if test="record != null" >
+ <if test="record.name!=null and record.name!=''">
+ and a.name like concat('%', #{record.name},'%')
+ </if>
+ <if test="record.memberName!=null and record.memberName!=''">
+ and b.name like concat('%', #{record.memberName},'%')
+ </if>
+ <if test="record.state!=null">
+ and a.state = #{record.state}
+ </if>
+ </if>
+ </where>
+ GROUP BY a.id order by a.CREATED_TIME desc
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/templates/error/403.html b/src/main/resources/templates/error/403.html
index 0d696ad..0972b5d 100644
--- a/src/main/resources/templates/error/403.html
+++ b/src/main/resources/templates/error/403.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>壹元蔬菜 权限系统</title>
+ <title>钱阿姨 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/error/404.html b/src/main/resources/templates/error/404.html
index 2fb8836..16775c7 100644
--- a/src/main/resources/templates/error/404.html
+++ b/src/main/resources/templates/error/404.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>壹元蔬菜 权限系统</title>
+ <title>钱阿姨 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/error/500.html b/src/main/resources/templates/error/500.html
index d0e9ecb..4222f6e 100644
--- a/src/main/resources/templates/error/500.html
+++ b/src/main/resources/templates/error/500.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>壹元蔬菜 权限系统</title>
+ <title>钱阿姨 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
diff --git a/src/main/resources/templates/febs/views/layout.html b/src/main/resources/templates/febs/views/layout.html
index 6e93a47..fb91414 100644
--- a/src/main/resources/templates/febs/views/layout.html
+++ b/src/main/resources/templates/febs/views/layout.html
@@ -64,7 +64,7 @@
<div class="layui-side-scroll">
<div class="layui-logo" style="cursor: pointer">
<img data-th-src="@{febs/images/logo.png}">
- <span>壹元蔬菜 权限系统</span>
+ <span>钱阿姨 权限系统</span>
</div>
<script
type="text/html"
diff --git a/src/main/resources/templates/febs/views/login.html b/src/main/resources/templates/febs/views/login.html
index 2e7d8a2..d4cd2a8 100644
--- a/src/main/resources/templates/febs/views/login.html
+++ b/src/main/resources/templates/febs/views/login.html
@@ -2,7 +2,7 @@
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
- <title>壹元蔬菜 权限系统</title>
+ <title>钱阿姨 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@@ -19,7 +19,7 @@
<div class="layui-container">
<div class="layui-row">
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc">
- <div class="layui-logo"><span><b>壹元蔬菜</b> 权限系统</span></div>
+ <div class="layui-logo"><span><b>钱阿姨</b> 权限系统</span></div>
</div>
<div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div">
<div class="layui-form" lay-filter="login-form">
diff --git a/src/main/resources/templates/febs/views/modules/mallMember/mallAgentRecord.html b/src/main/resources/templates/febs/views/modules/mallMember/mallAgentRecord.html
new file mode 100644
index 0000000..ed1b52f
--- /dev/null
+++ b/src/main/resources/templates/febs/views/modules/mallMember/mallAgentRecord.html
@@ -0,0 +1,194 @@
+<div class="layui-fluid layui-anim febs-anim" id="febs-agent-apply-list" lay-title="代理申请列表">
+ <div class="layui-row febs-container">
+ <div class="layui-col-md12">
+ <div class="layui-card">
+ <div class="layui-card-body febs-table-full">
+ <form class="layui-form layui-table-form" lay-filter="user-table-form">
+ <div class="layui-row">
+ <div class="layui-col-md10">
+ <div class="layui-form-item">
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input type="text" placeholder="微信昵称" name="memberName" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input type="text" placeholder="姓名" name="name" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <div class="layui-input-inline">
+ <input type="text" placeholder="电话" name="phone" autocomplete="off" class="layui-input">
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label layui-form-label-sm">申请状态</label>
+ <div class="layui-input-inline">
+ <select name="state">
+ <option value="">请选择</option>
+ <option value="1">申请中</option>
+ <option value="2">通过</option>
+ <option value="3">拒绝</option>
+ </select>
+ </div>
+ </div>
+<!-- <div class="layui-inline">-->
+<!-- <label class="layui-form-label layui-form-label-sm">会员类型</label>-->
+<!-- <div class="layui-input-inline">-->
+<!-- <select name="level">-->
+<!-- <option value="">请选择</option>-->
+<!-- <option value="FIRST_LEVEL">普通会员</option>-->
+<!-- <option value="SECOND_LEVEL">一星</option>-->
+<!-- <option value="THIRD_LEVEL">二星</option>-->
+<!-- <option value="FOUR_LEVEL">三星</option>-->
+<!-- <option value="FIFTH_LEVEL">四星</option>-->
+<!-- </select>-->
+<!-- </div>-->
+<!-- </div>-->
+ </div>
+ </div>
+ <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
+ <i class="layui-icon"></i>
+ </div>
+ <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
+ <i class="layui-icon"></i>
+ </div>
+ </div>
+ </div>
+ </form>
+ <table lay-filter="agentApplyTable" lay-data="{id: 'agentApplyTable'}"></table>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<!-- 表格操作栏 start -->
+<script type="text/html" id="user-option">
+ <span shiro:lacksPermission="user:view,user:update,user:delete">
+ <span class="layui-badge-dot febs-bg-orange"></span> 无权限
+ </span>
+ <a lay-event="edit" shiro:hasPermission="user:update"><i
+ class="layui-icon febs-edit-area febs-blue"></i></a>
+</script>
+<style>
+ .layui-form-onswitch {
+ background-color: #5FB878 !important;
+ }
+</style>
+<script data-th-inline="none" type="text/javascript">
+ // 引入组件并初始化
+ layui.use([ 'jquery', 'form', 'table', 'febs'], function () {
+ var $ = layui.jquery,
+ febs = layui.febs,
+ form = layui.form,
+ table = layui.table,
+ $view = $('#febs-agent-apply-list'),
+ $query = $view.find('#query'),
+ $reset = $view.find('#reset'),
+ $searchForm = $view.find('form'),
+ sortObject = {field: 'phone', type: null},
+ tableIns;
+
+ form.render();
+
+ // 表格初始化
+ initTable();
+
+ // 初始化表格操作栏各个按钮功能
+ table.on('tool(agentApplyTable)', function (obj) {
+ var data = obj.data,
+ layEvent = obj.event;
+
+ if (layEvent === 'agree') {
+ febs.modal.confirm('通过', '通过用户的代理申请?', function () {
+ agree(data.id);
+ });
+ }
+ if (layEvent === 'disagree') {
+ febs.modal.confirm('拒绝', '拒绝用户的代理申请?', function () {
+ disagree(data.id);
+ });
+ }
+ });
+ function agree(id) {
+ febs.get(ctx + 'admin/mallMember/agreeAgentApply/' + id, null, function () {
+ febs.alert.success('已同意');
+ $query.click();
+ });
+ }
+ function disagree(id) {
+ febs.get(ctx + 'admin/mallMember/disagreeAgentApply/' + id, null, function () {
+ febs.alert.success('已拒绝');
+ $query.click();
+ });
+ }
+
+ // 查询按钮
+ $query.on('click', function () {
+ var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type});
+ tableIns.reload({where: params, page: {curr: 1}});
+ });
+
+ // 刷新按钮
+ $reset.on('click', function () {
+ $searchForm[0].reset();
+ sortObject.type = 'null';
+ tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
+ });
+
+ function initTable() {
+ tableIns = febs.table.init({
+ elem: $view.find('table'),
+ id: 'agentApplyTable',
+ url: ctx + 'admin/mallMember/getAgentApplyList',
+ defaultToolbar:[],
+ cols: [[
+ {field: 'memberName', title: '微信昵称', minWidth: 150,align:'left'},
+ {field: 'name', title: '姓名', minWidth: 100,align:'left'},
+ {field: 'phone', title: '电话', minWidth: 100,align:'left'},
+ {field: 'province', title: '省', minWidth: 100,align:'left'},
+ {field: 'city', title: '市', minWidth: 100,align:'left'},
+ {field: 'area', title: '区、县', minWidth: 100,align:'left'},
+ {field: 'storeAddress', title: '详细地址', minWidth: 100,align:'left'},
+ {field: 'storeName', title: '店铺名称', minWidth: 100,align:'left'},
+ {field: 'state', title: '申请状态',
+ templet: function (d) {
+ if (d.state === 1) {
+ return '<span style="color:green;">申请中</span>'
+ }else if (d.state === 2) {
+ return '<span style="color:blue;">通过</span>'
+ }else if (d.state === 3) {
+ return '<span style="color:red;">拒绝</span>'
+ }else{
+ return ''
+ }
+ }, minWidth: 100,align:'center'},
+ {field: 'createdTime', title: '申请时间', minWidth: 180,align:'center'},
+ {title: '操作',
+ templet: function (d) {
+ if(d.state === 1 ){
+ return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="agree" shiro:hasPermission="user:update">同意</button>'
+ +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="disagree" shiro:hasPermission="user:update">拒绝</button>'
+ }else{
+ return ''
+ }
+ },minWidth: 200,align:'center', fixed:"right"
+ }
+ ]]
+ });
+ }
+
+ // 获取查询参数
+ function getQueryParams() {
+ return {
+ memberName: $searchForm.find('input[name="memberName"]').val().trim(),
+ name: $searchForm.find('input[name="name"]').val().trim(),
+ phone: $searchForm.find('input[name="phone"]').val().trim(),
+ state: $searchForm.find("select[name='state']").val()
+ };
+ }
+
+ })
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html
index a110623..3870aaf 100644
--- a/src/main/resources/templates/index.html
+++ b/src/main/resources/templates/index.html
@@ -3,7 +3,7 @@
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<meta charset="utf-8">
- <title>壹元蔬菜 权限系统</title>
+ <title>钱阿姨 权限系统</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
--
Gitblit v1.9.1