对比新文件 |
| | |
| | | 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); |
| | | } |
| | | } |
| | | } |