123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321 |
- package com.caimei365.user.service.impl;
- import com.caimei365.user.mapper.BaseMapper;
- import com.caimei365.user.mapper.ClubMapper;
- import com.caimei365.user.mapper.RegisterMapper;
- import com.caimei365.user.model.ResponseJson;
- import com.caimei365.user.model.dto.ClubUpdateDto;
- import com.caimei365.user.model.po.UserBeansHistoryPo;
- import com.caimei365.user.model.po.UserPo;
- import com.caimei365.user.model.vo.*;
- import com.caimei365.user.service.ClubService;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.stereotype.Service;
- import javax.annotation.Resource;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * Description
- *
- * @author : Charles
- * @date : 2021/3/15
- */
- @Slf4j
- @Service
- public class ClubServiceImpl implements ClubService {
- @Resource
- private ClubMapper clubMapper;
- @Resource
- private BaseMapper baseMapper;
- @Resource
- private RegisterMapper registerMapper;
- /**
- * 根据用户Id查询机构资料
- *
- * @param userId 用户Id
- * @return Map(userPo, clubPo)
- */
- @Override
- public ResponseJson<Map<String, Object>> getClubUserInfo(Integer userId) {
- if (null == userId) {
- return ResponseJson.error("参数异常:用户Id不能为空!", null);
- }
- // 用户信息
- UserVo user = baseMapper.getUserByUserId(userId);
- if (user == null) {
- return ResponseJson.error("用户信息不存在", null);
- }
- if (!StringUtils.isBlank(user.getAuditNote()) && 2 == user.getAuditStatus()) {
- if (user.getAuditNote().contains(",")) {
- List<String> list = Arrays.asList(user.getAuditNote().split(","));
- user.setAuditNoteList(list);
- } else {
- user.setAuditNoteList(Collections.singletonList(user.getAuditStatus().toString()));
- }
- }
- // 机构信息
- ClubVo club = clubMapper.getClubById(user.getClubId());
- if (club == null) {
- return ResponseJson.error("机构信息不存在", null);
- }
- if (null != club.getTownId()) {
- TownVo town = baseMapper.getTown(club.getTownId());
- CityVo city = baseMapper.getCity(town.getCityId());
- ProvinceVo province = baseMapper.getProvince(city.getProvinceId());
- club.setCityId(city.getCityId());
- club.setProvinceId(province.getProvinceId());
- club.setProvincialAddress(province.getName() + "" + city.getName() + "" + town.getName());
- }
- Map<String, Object> map = new HashMap(2);
- map.put("user", user);
- map.put("club", club);
- return ResponseJson.success(map);
- }
- /**
- * 修改机构资料
- *
- * @param club ClubUpgradeDto:{
- * clubId 机构ID
- * userId 用户ID
- * name 机构名称
- * shortName 机构简称(shortName)
- * contractEmail 邮箱(contractEmail1)
- * contractPhone 固定电话
- * linkMan 联系人(linkMan1)
- * provinceId 省Id
- * cityId 市Id
- * townId 县区Id
- * address 地址
- * shopPhoto 门头照(headpic)
- * businessLicense 营业执照(businessLicenseImage)
- * socialCreditCode 统一社会信用代码(socialCreditCode)
- * firstClubType 一级分类:医美=1和生美=2
- * secondClubType 医美的二级分类:诊所=1、门诊=2、医院=3。 生美没有二级分类
- * department 医美分类下的门诊和医院则需要填写科室
- * medicalPracticeLicense 医美分类必须上传医疗执业许可证(medicalPracticeLicenseImg)
- * mainProduct 主打项目(mainpro)
- * fax 传真
- * profile 公司简介
- * }
- * @return ClubUpdateDto
- */
- @Override
- public ResponseJson<ClubUpdateDto> updateClubUserInfo(ClubUpdateDto club) {
- // 参数校验
- if (club.getUserId() == null) {
- return ResponseJson.error("参数异常:用户Id不能为空!", null);
- }
- if (club.getClubId() == null) {
- return ResponseJson.error("参数异常:机构Id不能为空!", null);
- }
- if (club.getLinkMan() == null) {
- return ResponseJson.error("参数异常:联系人不能为空!", null);
- }
- if (StringUtils.isNotBlank(club.getContractEmail())) {
- Integer userIdByEmail = baseMapper.getUserIdByEmail(club.getContractEmail());
- if (null != userIdByEmail && !userIdByEmail.equals(club.getUserId())) {
- return ResponseJson.error("该邮箱已被使用", null);
- }
- }
- UserPo user = new UserPo();
- // 用户Id
- user.setUserId(club.getUserId());
- // 用户名
- user.setUserName(club.getLinkMan());
- // 邮箱
- if (StringUtils.isNotBlank(club.getContractEmail())) {
- user.setEmail(club.getContractEmail());
- }
- // 机构名称
- if (StringUtils.isNotBlank(club.getName())) {
- user.setName(club.getName());
- }
- // 更新机构用户信息
- clubMapper.updateClubUserByUpdateInfo(user);
- // 更新机构信息
- clubMapper.updateClubByUpdateInfo(club);
- UserVo userVo = baseMapper.getUserByUserId(club.getUserId());
- if (userVo != null && userVo.getUserIdentity() == 4) {
- Integer id = clubMapper.findBeansHistoryByType(club.getUserId(), 3);
- boolean b = StringUtils.isNotBlank(club.getLinkMan()) && StringUtils.isNotBlank(club.getFax())
- && StringUtils.isNotBlank(club.getContractPhone()) && StringUtils.isNotBlank(club.getProfile());
- if (b && id == null) {
- saveUserBeans(userVo);
- }
- } else if (userVo != null && userVo.getUserIdentity() == 2) {
- Integer id = clubMapper.findBeansHistoryByType(club.getUserId(), 4);
- boolean b = StringUtils.isNotBlank(club.getLinkMan()) && StringUtils.isNotBlank(club.getFax()) && club.getTownId() != null
- && StringUtils.isNotBlank(club.getContractPhone()) && StringUtils.isNotBlank(club.getProfile()) && StringUtils.isNotBlank(club.getAddress())
- && StringUtils.isNotBlank(club.getName()) && StringUtils.isNotBlank(club.getShortName()) && StringUtils.isNotBlank(club.getContractEmail())
- && StringUtils.isNotBlank(club.getSocialCreditCode()) && StringUtils.isNotBlank(club.getBusinessLicense()) && StringUtils.isNotBlank(club.getShopPhoto())
- && club.getFirstClubType() != null && StringUtils.isNotBlank(club.getMainProduct());
- if (b) {
- if (club.getFirstClubType() == 1) {
- //医美
- b = club.getSecondClubType() != null && StringUtils.isNotBlank(club.getMedicalPracticeLicense());
- if (b && ("2".equals(club.getMedicalPracticeLicense()) || "3".equals(club.getMedicalPracticeLicense()))) {
- b = StringUtils.isNotBlank(club.getDepartment());
- }
- }
- }
- if (b && id == null) {
- saveUserBeans(userVo);
- }
- }
- return ResponseJson.success("修改机构资料成功", club);
- }
- private void saveUserBeans(UserVo user) {
- //机构完善资料,送500采美豆
- UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
- beansHistory.setUserId(user.getUserId());
- if (user.getUserIdentity() == 4) {
- //普通机构完善资料
- beansHistory.setBeansType(3);
- } else {
- //会员机构完善资料
- beansHistory.setBeansType(4);
- }
- beansHistory.setType(1);
- beansHistory.setNum(500);
- beansHistory.setPushStatus(0);
- beansHistory.setAddTime(new Date());
- registerMapper.insertBeansHistory(beansHistory);
- Integer userBeans = user.getUserBeans();
- userBeans = userBeans == null ? 500 : userBeans + 500;
- clubMapper.updateUserBeans(user.getUserId(), userBeans);
- }
- /**
- * 机构个人中心
- *
- * @param userId 用户Id
- * @return Map(userPo, clubPo)
- */
- @Override
- public ResponseJson<Map<String, Object>> getClubHomeData(Integer userId) {
- if (null == userId) {
- return ResponseJson.error("参数异常:用户Id不能为空!", null);
- }
- // 用户信息
- UserVo user = baseMapper.getUserByUserId(userId);
- if (user == null) {
- return ResponseJson.error("用户信息不存在", null);
- }
- ClubVo club = clubMapper.getClubById(user.getClubId());
- if (club == null) {
- return ResponseJson.error("机构信息不存在", null);
- }
- Map<String, Object> map = new HashMap<>(10);
- map.put("user", user);
- map.put("club", club);
- OrderCountVo countVo = clubMapper.getOrderCount(userId);
- //待确认数量
- map.put("confirmedCount", countVo != null ? countVo.getConfirmedCount() : 0);
- //待付款数量
- map.put("paymentCount", countVo != null ? countVo.getPaymentCount() : 0);
- //待发货数量
- map.put("waitShipmentsCount", countVo != null ? countVo.getWaitShipmentsCount() : 0);
- //已发货数量
- map.put("shipmentsCount", countVo != null ? countVo.getShipmentsCount() : 0);
- //退货款数量
- map.put("salesReturnCount", countVo != null ? countVo.getSalesReturnCount() : 0);
- //联系电话
- String contactNumber = baseMapper.getAfterSalesPhone();
- map.put("contactNumber", contactNumber);
- //完善资料是否送豆
- boolean isModify = true;
- Integer id = null;
- if (user.getUserIdentity() == 4) {
- id = clubMapper.findBeansHistoryByType(userId, 3);
- } else if (user.getUserIdentity() == 2) {
- id = clubMapper.findBeansHistoryByType(userId, 4);
- }
- if (id != null && id > 0) {
- isModify = false;
- }
- map.put("isModify", isModify);
- //优惠券可用数量
- Integer couponNum = clubMapper.findCountCoupon(userId);
- map.put("couponNum", couponNum);
- return ResponseJson.success(map);
- }
- @Override
- public ResponseJson<BeansHistoryVo> beansPopUps(Integer userId) {
- BeansHistoryVo beansHistory = clubMapper.findBeansHistory(userId);
- if (beansHistory == null) {
- beansHistory = new BeansHistoryVo();
- //线上支付送豆
- Integer num = clubMapper.findByBeansType(userId, 6);
- beansHistory.setBeansType(6);
- if (num == null || num == 0) {
- //下单送豆
- num = clubMapper.findByBeansType(userId, 5);
- beansHistory.setBeansType(5);
- }
- beansHistory.setNum(num);
- }
- if (beansHistory.getNum() == null || beansHistory.getNum() == 0) {
- return ResponseJson.error("无推送", null);
- }
- clubMapper.updatePushStatus(userId);
- return ResponseJson.success(beansHistory);
- }
- @Override
- public ResponseJson<Map<String, Object>> beansHistory(Integer userId, Integer year, Integer month, Integer type, int pageNum, int pageSize) {
- Map<String, Object> map = new HashMap<>(2);
- UserVo user = baseMapper.getUserByUserId(userId);
- SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
- Calendar calendar = Calendar.getInstance();
- calendar.set(Calendar.YEAR, year);
- calendar.set(Calendar.MONTH, month - 1);
- calendar.set(Calendar.DAY_OF_MONTH, calendar.getMinimum(Calendar.DATE));
- String startTime = format.format(calendar.getTime()) + " 00:00:00";
- calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DATE));
- String endTime = format.format(calendar.getTime()) + " 23:59:59";
- PageHelper.startPage(pageNum, pageSize);
- List<BeansHistoryVo> historyList = clubMapper.findAllBeansHistory(userId, startTime, endTime, type);
- PageInfo<BeansHistoryVo> pageInfo = new PageInfo<>(historyList);
- map.put("pageInfo", pageInfo);
- map.put("userBeans", user.getUserBeans());
- return ResponseJson.success(map);
- }
- @Override
- public ResponseJson archiveDeduction(Integer userId, Integer archiveId) {
- // 查询是否已存在用户对该资料的抵扣记录
- Integer historyId = clubMapper.findBeansHistoryByArchiveId(userId, archiveId);
- if (null != historyId) {
- return ResponseJson.error(-1,"请勿重复抵扣");
- }
- // 查询用户采美豆数量
- Integer beansNum = clubMapper.getBeansNumByUserId(userId);
- if (null == beansNum || beansNum < 50) {
- return ResponseJson.error(-2, "抱歉,您的采美豆不足以抵扣,无法访问该商品资料");
- }
- UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
- beansHistory.setUserId(userId);
- beansHistory.setArchiveId(archiveId);
- beansHistory.setBeansType(13);
- beansHistory.setType(2);
- beansHistory.setNum(100);
- beansHistory.setPushStatus(0);
- beansHistory.setAddTime(new Date());
- registerMapper.insertBeansHistory(beansHistory);
- beansNum = beansNum - 100;
- clubMapper.updateUserBeans(userId, beansNum);
- return ResponseJson.success("抵扣成功");
- }
- }
|