From 59e91a4e9ddaf23cebb12993c774aa899ab22d16 Mon Sep 17 00:00:00 2001
From: 郑永安 <zyazyz250@sina.com>
Date: Mon, 19 Jun 2023 14:22:45 +0800
Subject: [PATCH] 描述
---
src/main/java/com/gk/firework/Service/ServiceImpl/CustomerServiceImpl.java | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 161 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gk/firework/Service/ServiceImpl/CustomerServiceImpl.java b/src/main/java/com/gk/firework/Service/ServiceImpl/CustomerServiceImpl.java
new file mode 100644
index 0000000..f25eeb7
--- /dev/null
+++ b/src/main/java/com/gk/firework/Service/ServiceImpl/CustomerServiceImpl.java
@@ -0,0 +1,161 @@
+package com.gk.firework.Service.ServiceImpl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.gk.firework.Domain.CustomerInfo;
+import com.gk.firework.Domain.Exception.BusinessException;
+import com.gk.firework.Domain.Utils.Properties;
+import com.gk.firework.Domain.Utils.StringUtils;
+import com.gk.firework.Domain.Utils.UploadUtil;
+import com.gk.firework.Mapper.CustomerInfoMapper;
+import com.gk.firework.Service.CustomerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @author : jingjy
+ * @date : 2021/3/31 14:19
+ */
+@Service("CustomerService")
+public class CustomerServiceImpl extends ServiceImpl<CustomerInfoMapper, CustomerInfo> implements CustomerService {
+ @Autowired
+ private CustomerInfoMapper customerInfoMapper;
+ @Override
+ public CustomerInfo createOrUpdate(JSONObject customer, Integer num, Date salesTime) throws ParseException {
+ //TODO:新增或修改顾客信息
+ String idCardNum = customer.getString("idCardNumber");
+ String workerName = customer.getString("workerName");
+ String nation = customer.getString("nation");
+// String gender = customer.getString("sex");
+ String gender = userType(idCardNum);
+ byte byteGender = 0;
+ if (CustomerInfo.GENDER_MALE.equals(gender)){
+ byteGender = 1;
+ }else if (CustomerInfo.GENDER_FEMALE.equals(gender)){
+ byteGender = 2;
+ }
+
+ String bornDay = customer.getString("csrq");
+ DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+ Date date = new Date();
+ Date born = dateFormat.parse(bornDay);
+ String address = customer.getString("certAddress");
+ CustomerInfo customerInfo = customerInfoMapper.selectCustomerByIdCardNum(idCardNum);
+ if (customerInfo == null){
+ customerInfo = new CustomerInfo(workerName,byteGender,idCardNum,nation,born,address);
+ customerInfo.setFrequency(1);
+ customerInfo.setCreateddate(date);
+ customerInfo.setLasttime(salesTime);
+ customerInfo.setLastnum(num);
+ customerInfo.setNum(num);
+ customerInfoMapper.insert(customerInfo);
+ }else {
+ if (customerInfo.getLasttime().compareTo(salesTime) < 0){
+ customerInfo.setLasttime(salesTime);
+ customerInfo.setLastnum(num);
+ }
+ customerInfo.setFrequency(customerInfo.getFrequency()+1);
+ customerInfo.setNum(customerInfo.getNum() + num);
+ customerInfo.setModifieddate(date);
+ customerInfoMapper.updateById(customerInfo);
+ }
+ return customerInfo;
+
+ }
+
+ //根据身份证号分辨男女
+ public static String userType(String idNumber) {
+ String userType = "";
+ int gender = 0;
+ idNumber = idNumber.replaceAll("[\r\n]","").trim();
+ if(idNumber.length() == 18){
+ //如果身份证号18位,取身份证号倒数第二位
+ char c = idNumber.charAt(idNumber.length() - 2);
+ gender = Integer.parseInt(String.valueOf(c));
+ }else if (idNumber.length() == 15){
+ //如果身份证号15位,取身份证号最后一位
+ char c = idNumber.charAt(idNumber.length() - 1);
+ gender = Integer.parseInt(String.valueOf(c));
+ }
+ if(gender % 2 == 1){
+ userType = "男";
+ }else{
+ userType = "女";
+ }
+ return userType;
+ }
+
+ @Override
+ public CustomerInfo getCustomerByIdCardNum(String idCardNum) {
+ return customerInfoMapper.selectCustomerByIdCardNum(idCardNum);
+ }
+
+ @Override
+ public CustomerInfo getCustomerBySaleOrder(String orderCode) {
+ return customerInfoMapper.getCustomerBySaleOrder(orderCode);
+ }
+
+ @Override
+ public void uploadPhoto(String idCard, MultipartFile file) {
+
+ if (StringUtils.isBlank(idCard))
+ throw new BusinessException("身份证参数传递错误,请联系管理员");
+ if (file == null)
+ throw new BusinessException("请上传文件");
+ CustomerInfo customer = getCustomerByIdCardNum(idCard);
+ if (customer == null)
+ throw new BusinessException("身份证信息不存在,请联系管理员");
+
+ try {
+ String name = UploadUtil.uploadFile(file, Properties.customerPath);
+ customer.setPath(Properties.customer + name);
+ } catch (Exception e) {
+ throw new BusinessException("上传文件失败");
+ }
+ this.updateById(customer);
+
+ }
+
+ @Override
+ public void createOrUpdateCard(String idCardNum, Integer num, Date createdat) throws ParseException {
+ //TODO:新增或修改顾客信息
+ String gender = userType(idCardNum);
+ byte byteGender = 0;
+ if (CustomerInfo.GENDER_MALE.equals(gender)){
+ byteGender = 1;
+ }else if (CustomerInfo.GENDER_FEMALE.equals(gender)){
+ byteGender = 2;
+ }
+
+ String bornDay = idCardNum.substring(6,14);
+ DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+ Date date = new Date();
+ Date born = dateFormat.parse(bornDay);
+
+ CustomerInfo customerInfo = customerInfoMapper.selectCustomerByIdCardNum(idCardNum);
+ if (customerInfo == null){
+ customerInfo = new CustomerInfo("",byteGender,idCardNum,"",born,"");
+ customerInfo.setFrequency(1);
+ customerInfo.setCreateddate(date);
+ customerInfo.setLasttime(createdat);
+ customerInfo.setLastnum(num);
+ customerInfo.setNum(num);
+ customerInfoMapper.insert(customerInfo);
+ }else {
+ if (customerInfo.getLasttime().compareTo(createdat) < 0){
+ customerInfo.setLasttime(createdat);
+ customerInfo.setLastnum(num);
+ }
+ customerInfo.setFrequency(customerInfo.getFrequency()+1);
+ customerInfo.setNum(customerInfo.getNum() + num);
+ customerInfo.setModifieddate(date);
+ customerInfoMapper.updateById(customerInfo);
+ }
+ }
+}
--
Gitblit v1.9.2