From edfaaa8c446a42960ee59c5e8fad99e565fe6462 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E5=87=AF=E5=87=AF?= Date: Thu, 24 Oct 2024 16:41:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=96=B0=E5=A2=9E=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/member/MemberController.java | 33 +++++++ .../mybatis/service/MemberService.java | 13 +++ .../service/impl/MemberServiceImpl.java | 99 +++++++++++++++++++ 3 files changed, 145 insertions(+) create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java create mode 100644 eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java new file mode 100644 index 00000000..cc2197fb --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/member/MemberController.java @@ -0,0 +1,33 @@ +package cn.ysk.cashier.controller.member; + +import cn.ysk.cashier.mybatis.service.MemberService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * @author tankaikai + * @since 2024-10-24 16:13 + */ +@RestController +@RequestMapping("/api/member") +@Api(tags="会员管理") +public class MemberController { + + @Resource + private MemberService memberService; + + @PostMapping + @ApiOperation("保存") + public ResponseEntity save(@RequestBody Map map) { + memberService.createMember(map); + return ResponseEntity.ok().build(); + } +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java new file mode 100644 index 00000000..9f5146d0 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/MemberService.java @@ -0,0 +1,13 @@ +package cn.ysk.cashier.mybatis.service; + +import java.util.Map; + +/** + * 会员管理 + * @author tankaikai + * @since 2024-10-24 16:15 + */ +public interface MemberService { + + void createMember(Map map); +} diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java new file mode 100644 index 00000000..5452bdf9 --- /dev/null +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/MemberServiceImpl.java @@ -0,0 +1,99 @@ +package cn.ysk.cashier.mybatis.service.impl; + +import cn.hutool.core.convert.Convert; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; +import cn.ysk.cashier.exception.BadRequestException; +import cn.ysk.cashier.mybatis.mapper.MpUserInfoMapper; +import cn.ysk.cashier.mybatis.mapper.ShopUserMapper; +import cn.ysk.cashier.mybatis.service.MemberService; +import cn.ysk.cashier.pojo.TbUserInfo; +import cn.ysk.cashier.pojo.shop.TbShopUser; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.sql.Timestamp; +import java.util.List; +import java.util.Map; + +/** + * 会员管理 + * + * @author tankaikai + * @since 2024-10-24 16:16 + */ +@Service +public class MemberServiceImpl implements MemberService { + + @Resource + private ShopUserMapper shopUserMapper; + @Resource + private MpUserInfoMapper mpUserInfoMapper; + + @Override + public void createMember(Map map) { + if (ObjectUtil.isEmpty(map) || !map.containsKey("shopId") || ObjectUtil.isEmpty(map.get("shopId")) + || !map.containsKey("phone") || ObjectUtil.isEmpty(map.get("phone")) + || !map.containsKey("nickName") || ObjectUtil.isEmpty(map.get("nickName")) + || !map.containsKey("sex") || ObjectUtil.isEmpty(map.get("sex")) + || !map.containsKey("level") || ObjectUtil.isEmpty(map.get("level")) || + !map.containsKey("birthDay") || ObjectUtil.isEmpty(map.get("birthDay")) + ) { + throw new BadRequestException("请求参数不允许为空"); + } + String phone = String.valueOf(map.get("phone")); + + String shopId = String.valueOf(map.get("shopId")); + + List tbShopUsers = shopUserMapper.selectList(Wrappers.lambdaQuery().eq(TbShopUser::getShopId, shopId).eq(TbShopUser::getTelephone, phone)); + + if (ObjectUtil.isNotEmpty(tbShopUsers) && tbShopUsers.stream().filter(it -> "1".equals(it.getIsVip().toString())).count() > 0) { + throw new BadRequestException("会员已存在"); + } + + Long count = mpUserInfoMapper.selectCount(Wrappers.lambdaQuery().eq(TbUserInfo::getTelephone, phone)); + if (count > 1) { + throw new BadRequestException("相同的手机号已存在多个记录"); + } + + if (ObjectUtil.isNotNull(tbShopUsers) && ObjectUtil.isNotEmpty(tbShopUsers)) { + TbShopUser tbShopUser = tbShopUsers.get(0); + tbShopUser.setTelephone(phone); + tbShopUser.setBirthDay(String.valueOf(map.get("birthDay"))); + tbShopUser.setName(String.valueOf(map.get("nickName"))); + tbShopUser.setSex(Convert.toInt(map.get("sex"))); + tbShopUser.setLevel(Convert.toInt(map.get("level"))); + tbShopUser.setIsVip(1); + tbShopUser.setUpdatedAt(System.currentTimeMillis()); + tbShopUser.setJoinTime(new Timestamp(System.currentTimeMillis())); + shopUserMapper.updateById(tbShopUser); + return; + } + + TbShopUser tbShopUser = new TbShopUser(); + TbUserInfo tbUserInfo = mpUserInfoMapper.selectOne(Wrappers.lambdaQuery().eq(TbUserInfo::getTelephone, phone)); + if (tbUserInfo != null) { + tbShopUser.setUserId(tbUserInfo.getId().toString()); + } + tbShopUser.setAmount(BigDecimal.ZERO); + tbShopUser.setCreditAmount(BigDecimal.ZERO); + tbShopUser.setConsumeAmount(BigDecimal.ZERO); + tbShopUser.setConsumeNumber(0); + tbShopUser.setLevelConsume(BigDecimal.ZERO); + tbShopUser.setStatus(1); + tbShopUser.setShopId(shopId); + tbShopUser.setTelephone(phone); + tbShopUser.setBirthDay(String.valueOf(map.get("birthDay"))); + tbShopUser.setName(String.valueOf(map.get("nickName"))); + tbShopUser.setSex(Convert.toInt((map.get("sex")))); + tbShopUser.setLevel(Convert.toInt(map.get("level"))); + String code = RandomUtil.randomNumbers(8); + tbShopUser.setCode(code); + tbShopUser.setIsVip(1); + tbShopUser.setCreatedAt(System.currentTimeMillis()); + tbShopUser.setJoinTime(new Timestamp(System.currentTimeMillis())); + shopUserMapper.insert(tbShopUser); + } +}