package com.doumee.service.business.impl; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.config.listener.event.VisitEvent; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.LabelsMapper; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.ShopJoinMapper; import com.doumee.dao.business.ShopMapper; import com.doumee.dao.business.join.ProductLabelJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.business.model.Labels; import com.doumee.dao.business.model.Shop; import com.doumee.dao.business.model.ShopComment; import com.doumee.dao.business.model.ShopScan; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.SystemUser; import com.doumee.dao.web.dto.CouponDTO; import com.doumee.dao.web.dto.MemberDTO; import com.doumee.dao.web.dto.MultiFileDTO; import com.doumee.dao.web.dto.ResetSystemUserPwdDTO; import com.doumee.dao.web.dto.shop.*; import com.doumee.service.business.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.RandomStringUtils; import org.apache.shiro.SecurityUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; /** * 店铺基本信息表Service实现 * @author 江蹄蹄 * @date 2023/03/21 15:48 */ @Service public class ShopServiceImpl implements ShopService { @Autowired private ShopMapper shopMapper; @Autowired private ShopCommentService shopCommentService; @Autowired private ProductLabelService productLabelService; @Autowired private ShopMenuService shopMenuService; @Resource private ApplicationEventPublisher applicationEventPublisher; @Autowired public CouponService couponService; @Autowired private ShopJoinMapper shopJoinMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Autowired private MemberMapper memberMapper; @Autowired private SystemUserMapper systemUserMapper; @Autowired private ProductLabelJoinMapper productLabelJoinMapper; @Autowired private ShopFollowService shopFollowService; @Autowired private ShopScanService shopScanService; @Autowired private MemberCouponService memberCouponService; @Autowired private ShopNewsService shopNewsService; @Autowired private LabelsMapper labelsMapper; @Autowired private MultifileService multifileService; @Override public Integer create(Shop shop) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); isCreateParamValid(shop,user); shop.setCreator(user.getId()); shop.setCreateDate(new Date()); shop.setEditor(user.getId()); shop.setEditDate(shop.getCreateDate()); shop.setIsdeleted(Constants.ZERO); shop.setStatus(Constants.ZERO); shop.setIsrec(Constants.ONE); shop.setOrigin(Constants.ONE); shop.setSaleType(Constants.formatIntegerNum(shop.getSaleType())); String salt = RandomStringUtils.randomAlphabetic(6); shop.setPassword(shop.getCode()+"@123456"); // 生成密码 shop.setPassword(Utils.Secure.encryptPassword(shop.getPassword(), salt)); shop.setSalt(salt); shopMapper.insert(shop); return shop.getId(); } public void isCreateParamValid(Shop shop , LoginUserInfo user){ try { String[] ss = shop.getLocationInfo().split(","); shop.setLatitude(BigDecimal.valueOf(Double.parseDouble(ss[0]))); shop.setLongitude(BigDecimal.valueOf(Double.parseDouble(ss[1]))); }catch (Exception e){ } if(StringUtils.isBlank(shop.getUsername()) || StringUtils.isBlank(shop.getPhone()) || StringUtils.isBlank(shop.getBusinessImg()) || StringUtils.isBlank(shop.getStartTime()) || shop.getLatitude()==null || shop.getLongitude()==null || shop.getBigAreaId()==null || shop.getAreaId()==null || StringUtils.isBlank(shop.getRealname()) || StringUtils.isBlank(shop.getName()) || StringUtils.isBlank(shop.getCode())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(AreasServiceImpl.getAddressByAreaId(shop.getAreaId()) ==null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请选择正确的省市区信息~"); } if(labelsMapper.selectById(shop.getBigAreaId()) ==null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"请选择正确的区域信息~"); } if(shopMapper.selectCount(new QueryWrapper().lambda() .eq(Shop::getName,shop.getName()) .ne(shop.getId()!=null,Shop::getId,shop.getId()) .eq(Shop::getIsdeleted,Constants.ZERO))>0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"经销商名称重复,请返回修改~"); } if(shopMapper.selectCount(new QueryWrapper().lambda() .eq(Shop::getCode,shop.getCode()) .ne(shop.getId()!=null,Shop::getId,shop.getId()) .eq(Shop::getIsdeleted,Constants.ZERO))>0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"门店ID重复,请返回修改~"); } if(shopMapper.selectCount(new QueryWrapper().lambda() .eq(Shop::getUsername,shop.getUsername()) .ne(shop.getId()!=null,Shop::getId,shop.getId()) .eq(Shop::getIsdeleted,Constants.ZERO))>0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"登录账号重复,请返回修改~"); } } @Override public void deleteById(Integer id) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Shop shop =new Shop(); shop.setId(id); shop.setEditor(user.getId()); shop.setEditDate(new Date()); shop.setIsdeleted(Constants.ONE); shopMapper.updateById(shop); } @Override public void delete(Shop shop) { UpdateWrapper deleteWrapper = new UpdateWrapper<>(shop); shopMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } shopMapper.deleteBatchIds(ids); } @Override public void updateById(Shop shop) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(shop.getId()==null ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); } isCreateParamValid(shop,user); shop.setEditor(user.getId()); shop.setEditDate(new Date()); shopMapper.updateById(shop); } @Override public void updateIsRecById(Shop shop) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); shop.setEditor(user.getId()); shop.setEditDate(new Date()); shopMapper.updateById(shop); } @Override public void updateByIdInBatch(List shops) { if (CollectionUtils.isEmpty(shops)) { return; } for (Shop shop: shops) { this.updateById(shop); } } @Transactional(rollbackFor = {Exception.class,BusinessException.class}) @Override public void update(ShopDTO shopDTO, Integer memberId) { // LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().eq(SystemUser::getMemberId,memberId); SystemUser user = systemUserMapper.selectById(wrapper); Shop shop = new Shop(); shop.setId(shopDTO.getId()); shop.setEditor(user.getId()); shop.setEditDate(new Date()); shop.setImgurl(shopDTO.getImgurl()); shop.setName(shopDTO.getName()); shop.setAddr(shopDTO.getAddr()); shop.setStartTime(shopDTO.getStartTime()); shop.setEndTime(shopDTO.getEndTime()); shop.setBrandStory(shopDTO.getBrandStory()); if (!CollectionUtils.isEmpty(shopDTO.getMultiFileDTOS())){ multifileService.refreshObjMultiFile(shopDTO.getId(),Constants.MultiFile.SHOP_PICTURE.getKey(),shopDTO.getMultiFileDTOS()); } if (!CollectionUtils.isEmpty(shopDTO.getLabels())){ shopDTO.getLabels().forEach(s->{ ProductLabel productLabel = new ProductLabel(); productLabel.setCreator(user.getId()); productLabel.setCreateDate(new Date()); productLabel.setEditor(user.getId()); productLabel.setEditDate(new Date()); productLabel.setIsdeleted(Constants.ZERO); productLabel.setLabelId(s); productLabel.setShopId(shopDTO.getId()); productLabelService.create(productLabel); }); } } @Override public Shop findById(Integer id) { MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(Shop.class); queryWrapper.eq(Shop::getId,id); queryWrapper.select("(select AVG(SCORE) from shop_comment where ISDELETED=0 and OBJ_ID=t.id) as score");//门店评分 /** ----------------start店铺访问数据----------------*/ queryWrapper.select("(select count(id) from shop_scan where ISDELETED=0 and SHOP_ID=t.id) as shopTotalVisits");//主页总访问量 queryWrapper.select("(select count(id) from shop_scan where ISDELETED=0 and SHOP_ID=t.id and to_days(CREATE_DATE)=to_days(now()) ) as shopNowVisits");//今日访问量 queryWrapper.select("(select count(id) from shop_scan where ISDELETED=0 and SHOP_ID=t.id and to_days(CREATE_DATE)=to_days(DATE_SUB(CURDATE(), INTERVAL 1 DAY)) ) as shopYesterdayVisits");//昨日日访问量 queryWrapper.select("(select count(s.MEMBER_ID) from (select MEMBER_ID,SHOP_ID from shop_scan where ISDELETED=0 group by MEMBER_ID) as s where s.SHOP_ID = t.id) as shopMemberVisits");//访问总用户数 /** ----------------end店铺访问数据----------------*/ /** ----------------start店铺互动数据----------------*/ queryWrapper.select("(select count(id) from shop_follow where ISDELETED=0 and OBJ_ID=t.id and OBJ_TYPE=0) as shopFollower");//粉丝数 queryWrapper.select("(select count(id) from shop_menu where ISDELETED=0 and SHOP_ID=t.id ) as shopMenu");//菜品数 queryWrapper.select("(select count(id) from shop_comment where ISDELETED=0 and OBJ_ID=t.id ) as shopComment");//评论数 queryWrapper.select("(select count(id) from shop_news where ISDELETED=0 and SHOP_ID=t.id ) as shopNews");//新鲜事 /** ----------------end店铺互动数据----------------*/ /** ----------------start优惠券数据----------------*/ queryWrapper.select("(select count(id) from coupon where ISDELETED=0 and SHOP_ID=t.id and type=0) as couponCount");//优惠券发放总数(张) queryWrapper.select("(select count(id) from member_coupon where ISDELETED=0 and SHOP_ID=t.id and type=0) as couponDrawCount");//优惠券领取总数(张) queryWrapper.select("(select count(id) from member_coupon where ISDELETED=0 and SHOP_ID=t.id and type=0 and STATUS=1 ) as couponUserComment");//优惠券使用总数(张) queryWrapper.select("(select sum(LIMIT_PRICE) from member_coupon where ISDELETED=0 and SHOP_ID=t.id and type=0 and STATUS=1 ) as couponUserMoney");//优惠券使用金额(元) /** ----------------end店铺优惠券数据----------------*/ Shop shop= shopJoinMapper.selectJoinOne(Shop.class,queryWrapper); String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHOP_FILE).getCode(); if(Objects.nonNull(shop)&&StringUtils.isNotBlank(shop.getImgurl())){ shop.setImgFullUrl(path+shop.getImgurl()); } shop.setAreas(AreasServiceImpl.getAddressByAreaId(shop.getAreaId())); if(shop.getLatitude()!=null && shop.getLongitude()!=null){ shop.setLocationInfo(shop.getLatitude().doubleValue()+","+shop.getLongitude().doubleValue()); } MPJLambdaWrapper queryproduct = new MPJLambdaWrapper<>(); queryproduct.selectAs(Labels::getName,ProductLabel::getLablesName); queryproduct.eq(ProductLabel::getIsdeleted,Constants.ZERO); queryproduct.eq(ProductLabel::getShopId,shop.getId()); queryproduct.leftJoin(Labels.class, Labels::getId,ProductLabel::getLabelId); List list=productLabelJoinMapper.selectJoinList(ProductLabel.class,queryproduct); shop.setProductList(list); return shop; } @Override public Shop findOne(Shop shop) { QueryWrapper wrapper = new QueryWrapper<>(shop); return shopMapper.selectOne(wrapper); } @Override public List findList(Shop shop) { QueryWrapper wrapper = new QueryWrapper<>(shop); return shopMapper.selectList(wrapper); } @Override public PageData findPage(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.selectAll(Shop.class); queryWrapper.selectAs(Labels::getName,Shop::getBigAreaName); queryWrapper.selectAs(Member::getNickname,Shop::getNickName); queryWrapper.selectAs(Member::getImgurl,Shop::getMemberImgurl); queryWrapper.selectAs(Member::getPhone,Shop::getMemberPhone); queryWrapper.leftJoin(Member.class,Member::getId,Shop::getMemberId); queryWrapper.leftJoin(Labels.class,Labels::getId,Shop::getBigAreaId); queryWrapper.eq(Shop::getIsdeleted, Constants.ZERO); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCode()) ,Shop::getCode,pageWrap.getModel().getCode()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getUsername()) ,Shop::getName,pageWrap.getModel().getUsername()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()) ,Shop::getName,pageWrap.getModel().getName()); queryWrapper.eq(pageWrap.getModel().getSaleType()!=null, Shop::getSaleType, pageWrap.getModel().getSaleType()); queryWrapper.eq(pageWrap.getModel().getStatus()!=null, Shop::getStatus, pageWrap.getModel().getStatus()); queryWrapper.eq(pageWrap.getModel().getIsrec()!=null, Shop::getIsrec, pageWrap.getModel().getIsrec()); queryWrapper.orderByDesc(Shop::getCreateDate); IPage result = shopJoinMapper.selectJoinPage(page, Shop.class, queryWrapper); String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.SHOP_FILE).getCode(); for(Shop model:result.getRecords()){ model.setImgFullUrl(path); model.setAreas( AreasServiceImpl.getAddressByAreaId(model.getAreaId())); if(model.getLatitude()!=null && model.getLongitude()!=null){ model.setLocationInfo(model.getLatitude().doubleValue()+","+model.getLongitude().doubleValue()); } } return PageData.from(result ); } @Override public List findAll(PageWrap pageWrap) { MPJLambdaWrapper queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.selectAll(Shop.class); queryWrapper.eq(Shop::getIsdeleted, Constants.ZERO); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()), Shop::getName, pageWrap.getModel().getName()); queryWrapper.orderByDesc(Shop::getCreateDate); List result = shopJoinMapper.selectList(queryWrapper); return result; } @Override public long count(Shop shop) { QueryWrapper wrapper = new QueryWrapper<>(shop); return shopMapper.selectCount(wrapper); } @Override public ShopSimpleDTO getShopSimpleDTO(Integer shopId) { Shop queryShop = new Shop(); queryShop.setId(shopId); QueryWrapper queryWapper = new QueryWrapper<>(queryShop); queryWapper.lambda().eq(Shop::getIsdeleted, Constants.ZERO); queryWapper.select("*,(select avg(score) from shop_comment b where b.OBJ_ID = shop.id and b.isdeleted=0) as starNum"); queryWapper.lambda().last(" limit 1"); Shop shop = shopMapper.selectOne(queryWapper); if(shop !=null){ /* ShopComment avg = shopCommentService.findAvg(shopId); if(avg!=null){ shopSimpleDTO.setStarNum(avg.getScore()); }*/ ShopSimpleDTO shopSimpleDTO = new ShopSimpleDTO(); BeanUtils.copyProperties(shop,shopSimpleDTO); return shopSimpleDTO; } return null; } @Override public List getShopSimpleDTOList(List shopIds) { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.lambda().in(Shop::getId,shopIds); List shops = shopMapper.selectList(wrapper); List avgs = shopCommentService.getAvgs(shopIds); final Map collect = avgs.stream().collect(Collectors.toMap(ShopComment::getObjId, s -> s)); final Map> labelsByIds = productLabelService.getLabelsByIds(shopIds); List shopSimpleList = shops.stream().map(s -> { ShopSimpleDTO dto = new ShopSimpleDTO(); BeanUtils.copyProperties(s, dto); ShopComment shopComment = collect.get(s.getId()); List labels = labelsByIds.get(s.getId()); dto.setLabels(labels); dto.setStarNum(shopComment != null ? shopComment.getScore() : null); return dto; }).collect(Collectors.toList()); return shopSimpleList; } @Override public ShopFaceDetailDTO getShopFaceDetailDTO(Integer shopId,Integer memberId) { // LoginUserInfo info = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Shop queryShop = new Shop(); queryShop.setId(shopId); Shop shop = shopMapper.selectOne(new QueryWrapper<>(queryShop) .lambda().eq(Shop::getIsdeleted, Constants.ZERO)); shop = Optional.ofNullable(shop).orElseThrow(()->new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,商家信息不存在!")); ShopFaceDetailDTO dto = new ShopFaceDetailDTO(); Map> objAllFileUrl = multifileService.getOBJAllFileUrl(shopId, Constants.MultiFile.SHOP_PICTURE.getKey(), Constants.ZERO,Constants.SHOP_FILE); //附件信息 dto.setBannerImgUrlList((List) MapUtils.getObject(objAllFileUrl,Constants.MultiFile.SHOP_PICTURE.getKey())); BeanUtils.copyProperties(shop,dto); CouponDTO couponDTO = couponService.findCouponDTO(shopId, memberId); dto.setCouponDTO(couponDTO); List labels = productLabelService.getLabelsById(shopId); labels = Optional.ofNullable(labels).orElse(new ArrayList<>()); dto.setLabels(labels.stream().map(s->s.getName()).collect(Collectors.toList())); List shopMenuDTO = shopMenuService.findShopMenuDTO(shopId); dto.setShopMenuDTOList(shopMenuDTO); //访问操作 VisitEvent shopVisitEvent = new VisitEvent<>(this,shop); applicationEventPublisher.publishEvent(shopVisitEvent); return dto; } @Override public MemberDTO getShopMemberDTO(Integer shopId, Integer memberId) { // LoginUserInfo info = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); MemberDTO memberDTO = shopFollowService.getMemberDTO(shopId, memberId,Constants.ZERO); return memberDTO; } @Override public PageData getShopSimpleDTOList(PageWrap pageWrap) { IPage page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); Utils.MP.blankToNull(pageWrap.getModel()); QueryWrapper wrapper = new QueryWrapper<>(); //左上 Position upperLeft = pageWrap.getModel().getUpperLeft(); //右下 Position lowRight = pageWrap.getModel().getLowRight(); wrapper.lambda() .like(Shop::getName,pageWrap.getModel().getName()) .between((Objects.nonNull(upperLeft.getLongitude()) && Objects.nonNull(lowRight.getLongitude())), Shop::getLongitude, upperLeft.getLongitude(), lowRight.getLongitude()) .between((Objects.nonNull(upperLeft.getLatitude()) && Objects.nonNull(lowRight.getLatitude())), Shop::getLongitude, upperLeft.getLatitude(), lowRight.getLatitude()); IPage shopIPage = shopMapper.selectPage(page, wrapper); if (CollectionUtils.isEmpty(shopIPage.getRecords())){ return PageData.from(new Page<>()); } List shopIds = shopIPage.getRecords().stream().map(s -> s.getId()).collect(Collectors.toList()); List avgs = shopCommentService.getAvgs(shopIds); final Map collect = avgs.stream().collect(Collectors.toMap(ShopComment::getObjId, s -> s)); final Map> labelsByIds = productLabelService.getLabelsByIds(shopIds); List shopSimpleList = shopIPage.getRecords().stream().map(s -> { ShopSimpleDTO dto = new ShopSimpleDTO(); BeanUtils.copyProperties(s, dto); ShopComment shopComment = collect.get(s.getId()); List labels = labelsByIds.get(s.getId()); dto.setLabels(labels); dto.setStarNum(shopComment != null ? shopComment.getScore() : new BigDecimal("0")); return dto; }).collect(Collectors.toList()); IPage shopSimpleDTOIPage = new Page<>(); shopSimpleDTOIPage.setPages(shopIPage.getPages()); shopSimpleDTOIPage.setRecords(shopSimpleList); shopSimpleDTOIPage.setTotal(shopIPage.getTotal()); shopSimpleDTOIPage.setSize(shopIPage.getSize()); shopSimpleDTOIPage.setCurrent(shopIPage.getCurrent()); return PageData.from(shopSimpleDTOIPage); } @Override public ShopDataStatisticsDTO getShopDataStatisticsDTO(Integer shopId) { MemberCoupon memberCoupon = new MemberCoupon(); memberCoupon.setShopId(shopId); memberCoupon.setType(Constants.ZERO); memberCoupon.setStatus(Constants.ONE); Integer shopCouponUseCount = memberCouponService.count(memberCoupon); ShopFollow shopFollow = new ShopFollow(); shopFollow.setObjId(shopId); shopFollow.setObjType(Constants.ZERO); Integer shopFansCount = shopFollowService.count(shopFollow); ShopNews shopNews = new ShopNews(); shopNews.setShopId(shopId); Integer shopNewCount = shopNewsService.count(shopNews); ShopDataStatisticsDTO shopDataStatisticsDTO = new ShopDataStatisticsDTO(); shopDataStatisticsDTO.setShopCouponUseCount(shopCouponUseCount) .setShopFansCount(shopFansCount).setShopNewCount(shopNewCount); return shopDataStatisticsDTO; } @Override public void visitOperation(Object o) { // LoginUserInfo info = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Shop shop = (Shop) o; UpdateWrapper wrapper = new UpdateWrapper<>(); wrapper.lambda().set(Shop::getLooknum, Objects.isNull(shop.getLooknum()) ? 1 : shop.getLooknum()+1); shopMapper.update(null,wrapper); ShopScan shopScan = new ShopScan(); // shopScan.setCreator(info.getId()); shopScan.setCreateDate(new Date()); // shopScan.setEditor(info.getId()); shopScan.setEditDate(new Date()); shopScan.setShopId(shop.getId()); shopScan.setMemberId(shop.getMemberId()); shopScanService.create(shopScan); } @Override public void resetPwd(Shop dto) { // 查询用户 Shop shop = findById(dto.getId()); if (shop == null) { throw new BusinessException(ResponseStatus.DATA_EMPTY); } // 修改密码 Shop updateUserDto = new Shop(); updateUserDto.setId(dto.getId()); updateUserDto.setPassword(Utils.Secure.encryptPassword( shop.getCode()+"@123456", shop.getSalt())); shopMapper.updateById(updateUserDto); } }