k94314517
2024-07-25 0d4ff0b2396e202a028a6f952b088d19b5545550
代码提交
已添加1个文件
已修改16个文件
330 ■■■■ 文件已修改
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTImageListResponse.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/News.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/web/reqeust/EditShopDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/web/reqeust/GenerateQRCodeRequest.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/UsersService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/GetCrmDataServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CustomerApi.java 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/ZTContentListRequest.java
@@ -29,7 +29,7 @@
//    @ApiModelProperty(value = "标签")
//    private String tagCodes;
    @ApiModelProperty(value = "排序方式 NORMAL - é»˜è®¤ï¼›HOT - æœ€çƒ­ï¼›LATEST - æœ€æ–°ï¼›")
    @ApiModelProperty(value = "排序 é»˜è®¤ä¸ä¼ ï¼›æœ€çƒ­greet;最新time")
    private String sortType;
    @ApiModelProperty(value = "多个标签唯一编码的列表,多个标签唯一编码的列表")
server/service/src/main/java/com/doumee/biz/zbom/model/zhongtai/response/ZTImageListResponse.java
@@ -1,6 +1,7 @@
package com.doumee.biz.zbom.model.zhongtai.response;
import com.doumee.biz.zbom.model.zhongtai.APISpaceCaseVo;
import com.doumee.dao.business.model.Users;
import lombok.Data;
import java.io.Serializable;
@@ -15,4 +16,6 @@
    private List<String> imageurlList;
    private Users users;
}
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -680,7 +680,7 @@
        // æ­£å¼ç‰ˆä¸º "release",体验版为 "trial",开发版为 "develop"。默认是正式版。
        String env_version = "trial";
        body.put("env_version", env_version);
        if(env_version.equals("release")){
        if(env_version.equals("release")&&StringUtils.isNotBlank(page)){
            body.put("page", page);
        }
        // é€æ˜Žï¼Œæ ¹æ®ä½ çš„场景自行设置body参数
server/service/src/main/java/com/doumee/dao/business/model/News.java
@@ -112,6 +112,10 @@
    @TableField(exist = false)
    private List<Multifile> fileList;
    @ApiModelProperty(value = "是否查询发布:0=否;1=是")
    @TableField(exist = false)
    private Integer isPublish;
    @ApiModelProperty(value = "素材类型 0推广资讯 1定制服务", example = "1")
    @ExcelColumn(name="素材类型 0推广资讯 1定制服务")
    private Integer type;
server/service/src/main/java/com/doumee/dao/web/reqeust/EditShopDTO.java
@@ -39,4 +39,7 @@
    @ApiModelProperty(value = "纬度", example = "1")
    private BigDecimal latitude;
    @ApiModelProperty(value = "操作人", hidden = true)
    private Long userId;
}
server/service/src/main/java/com/doumee/dao/web/reqeust/GenerateQRCodeRequest.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
package com.doumee.dao.web.reqeust;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/7/25 10:35
 */
@Data
public class GenerateQRCodeRequest {
    @ApiModelProperty(value = "业务类型:0:产品;1:案例;2:实景")
    private Integer businessType;
    @ApiModelProperty(value = "业务主键")
    private String businessId;
    @ApiModelProperty(value = "iam编码")
    private String iamId;
    @ApiModelProperty(value = "跳转地址",hidden = true)
    private String path;
}
server/service/src/main/java/com/doumee/service/business/GetZhongTaiDataService.java
@@ -122,7 +122,7 @@
     * @param userId
     * @return
     */
    ZTProductInfoResponse getProductInfo(String id,String userType,Long userId);
    ZTProductInfoResponse getProductInfo(String id,String userType,Long userId,String salesId);
    /**
     * ä¸­å° - å…¨å±‹èµ„讯详情
@@ -131,7 +131,7 @@
     * @param userId
     * @return
     */
    ZTCaseInfoResponse getWholecaseInfo(String id,String userType,Long userId);
    ZTCaseInfoResponse getWholecaseInfo(String id,String userType,Long userId,String salesId);
    /**
     * ä¸­å° - äº§å“èµ„讯详情
@@ -140,7 +140,7 @@
     * @param userId
     * @return
     */
    ZTProductNewsInfoResponse getProductNewsInfo(String id,String userType,Long userId);
    ZTProductNewsInfoResponse getProductNewsInfo(String id,String userType,Long userId,String salesId);
    /**
     * ä¸­å° - å®žæ™¯æ¡ˆä¾‹
@@ -149,7 +149,7 @@
     * @param userId
     * @return
     */
    ZTRealcaseInfoResponse getRealcaseInfo(String id,String userType,Long userId);
    ZTRealcaseInfoResponse getRealcaseInfo(String id,String userType,Long userId,String salesId);
    /**
     * ä¸­å° - æˆ‘的收藏/喜欢列表
server/service/src/main/java/com/doumee/service/business/UsersService.java
@@ -7,10 +7,12 @@
import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.reqeust.ContentShareImgDto;
import com.doumee.dao.web.reqeust.EditUsersRequest;
import com.doumee.dao.web.reqeust.GenerateQRCodeRequest;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.List;
/**
@@ -124,4 +126,6 @@
    ZTBaseRequst logOff(Long userId,String token);
    AccountResponse getWxMiniPhoneLogin(WxPhoneRequest wxPhoneRequest);
    InputStream getQrCode(GenerateQRCodeRequest generateQRCodeRequest);
}
server/service/src/main/java/com/doumee/service/business/impl/GetCrmDataServiceImpl.java
@@ -56,8 +56,10 @@
        ){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        Users users = usersMapper.selectById(crmCustomerListRequest.getUserId());
        crmCustomerListRequest.setUserName(users.getIamUsername());
        if(StringUtils.isBlank(crmCustomerListRequest.getUserName())){
            Users users = usersMapper.selectById(crmCustomerListRequest.getUserId());
            crmCustomerListRequest.setUserName(users.getIamUsername());
        }
        CRMBaseResponse<List<CRMCustomerListResponse>> crmBaseResponse = zbomCRMService.getCustomerList(crmCustomerListRequest);
        if(Objects.isNull(crmBaseResponse)){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"CRM接口请求失败!");
server/service/src/main/java/com/doumee/service/business/impl/GetZhongTaiDataServiceImpl.java
@@ -10,10 +10,12 @@
import com.doumee.core.exception.BusinessException;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.CustomerUserMapper;
import com.doumee.dao.business.IamInterfaceLogMapper;
import com.doumee.dao.business.MemberMapper;
import com.doumee.dao.business.UsersMapper;
import com.doumee.dao.business.model.Member;
import com.doumee.dao.business.model.Users;
import com.doumee.dao.web.response.ZSZXCatalogResponse;
import com.doumee.dao.web.response.ZTBaseInfoResponse;
import com.doumee.service.business.GetZhongTaiDataService;
@@ -48,6 +50,9 @@
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @Autowired
    private CustomerUserMapper customerUserMapper;
    @Autowired
    private RedisTemplate<String, Object> redisTemplate;
@@ -272,7 +277,7 @@
    @Override
    public ZTProductInfoResponse getProductInfo(String id,String userType,Long userId){
    public ZTProductInfoResponse getProductInfo(String id,String userType,Long userId,String salesId){
        //查询 ä¸­å° TOKEN
        ZTBaseInfoResponse ztBaseInfoResponse  = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
        ZTContentInfoRequest ztContentListRequest = new ZTContentInfoRequest();
@@ -281,6 +286,19 @@
        ztContentListRequest.setId(id);
        ZTProductInfoResponse response = zbomZhongTaiService.getProductInfo(ztContentListRequest);
        if(Objects.nonNull(response)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
                        users.setImgurlFull(prefix + users.getImgurl());
                    }
                    response.setUsers(users);
                }
            }
            List<String> stringList = new ArrayList<String>();
            if (StringUtils.isNotBlank(response.getCoverImage())) {
                stringList.add(response.getCoverImage());
@@ -311,7 +329,7 @@
    }
    @Override
    public ZTCaseInfoResponse getWholecaseInfo(String id,String userType,Long userId){
    public ZTCaseInfoResponse getWholecaseInfo(String id,String userType,Long userId,String salesId){
        //查询 ä¸­å° TOKEN
        ZTBaseInfoResponse ztBaseInfoResponse  = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
        ZTContentInfoRequest ztContentListRequest = new ZTContentInfoRequest();
@@ -319,30 +337,45 @@
        ztContentListRequest.setUserType(ztBaseInfoResponse.getUserType());
        ztContentListRequest.setId(id);
        ZTCaseInfoResponse response = zbomZhongTaiService.getWholecaseInfo(ztContentListRequest);
        List<String> stringList = new ArrayList<String>();
        if (StringUtils.isNotBlank(response.getCoverImage())) {
            stringList.add(response.getCoverImage());
        }
        if(Objects.nonNull(response.getLayoutUlr())){
            stringList.add(response.getLayoutUlr());
        }
        APISpaceCaseVo[]  apiSpaceCaseVoList = response.getApiSpaceCaseVos();
        if(Objects.nonNull(apiSpaceCaseVoList)){
            for (APISpaceCaseVo apiSpaceCaseVo:apiSpaceCaseVoList) {
                if(StringUtils.isNotBlank(apiSpaceCaseVo.getCoverImage())){
                    stringList.add(apiSpaceCaseVo.getCoverImage());
                }
                if(Objects.nonNull(apiSpaceCaseVo.getImgList())){
                    stringList.addAll(Arrays.asList(apiSpaceCaseVo.getImgList()));
        if(Objects.nonNull(response)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
                        users.setImgurlFull(prefix + users.getImgurl());
                    }
                    response.setUsers(users);
                }
            }
            List<String> stringList = new ArrayList<String>();
            if (StringUtils.isNotBlank(response.getCoverImage())) {
                stringList.add(response.getCoverImage());
            }
            if(Objects.nonNull(response.getLayoutUlr())){
                stringList.add(response.getLayoutUlr());
            }
            APISpaceCaseVo[]  apiSpaceCaseVoList = response.getApiSpaceCaseVos();
            if(Objects.nonNull(apiSpaceCaseVoList)){
                for (APISpaceCaseVo apiSpaceCaseVo:apiSpaceCaseVoList) {
                    if(StringUtils.isNotBlank(apiSpaceCaseVo.getCoverImage())){
                        stringList.add(apiSpaceCaseVo.getCoverImage());
                    }
                    if(Objects.nonNull(apiSpaceCaseVo.getImgList())){
                        stringList.addAll(Arrays.asList(apiSpaceCaseVo.getImgList()));
                    }
                }
            }
            response.setImageurlList(stringList);
        }
        response.setImageurlList(stringList);
        return response;
    }
    @Override
    public ZTProductNewsInfoResponse getProductNewsInfo(String id,String userType,Long userId){
    public ZTProductNewsInfoResponse getProductNewsInfo(String id,String userType,Long userId,String salesId){
        //查询 ä¸­å° TOKEN
        ZTBaseInfoResponse ztBaseInfoResponse  = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
        ZTContentInfoRequest ztContentListRequest = new ZTContentInfoRequest();
@@ -351,6 +384,19 @@
        ztContentListRequest.setId(id);
        ZTProductNewsInfoResponse response = zbomZhongTaiService.getProductNewsInfo(ztContentListRequest);
        if(Objects.nonNull(response)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
                        users.setImgurlFull(prefix + users.getImgurl());
                    }
                    response.setUsers(users);
                }
            }
            List<String> stringList = new ArrayList<String>();
            if (StringUtils.isNotBlank(response.getCoverImage())) {
                stringList.add(response.getCoverImage());
@@ -380,7 +426,7 @@
    }
    @Override
    public ZTRealcaseInfoResponse getRealcaseInfo(String id,String userType,Long userId){
    public ZTRealcaseInfoResponse getRealcaseInfo(String id,String userType,Long userId,String salesId){
        //查询 ä¸­å° TOKEN
        ZTBaseInfoResponse ztBaseInfoResponse  = MemberServiceImpl.getZTToken(zbomZhongTaiService,memberMapper,usersMapper,systemDictDataBiz,userId,userType);
        ZTContentInfoRequest ztContentListRequest = new ZTContentInfoRequest();
@@ -389,6 +435,19 @@
        ztContentListRequest.setId(id);
        ZTRealcaseInfoResponse response = zbomZhongTaiService.getRealcaseInfo(ztContentListRequest);
        if(Objects.nonNull(response)){
            //查询导购信息 è¿›è¡Œä¿¡æ¯ç»‘定与返回
            if(StringUtils.isNotBlank(salesId)){
                Users users = usersMapper.selectById(salesId);
                if(Objects.nonNull(users)){
                    MemberServiceImpl.saveCustomerUser(customerUserMapper,users,userId);
                    String prefix = StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.RESOURCE_PATH).getCode()) +
                            StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE,Constants.USERS_FILE).getCode());
                    if(StringUtils.isNotBlank(users.getImgurl())){
                        users.setImgurlFull(prefix + users.getImgurl());
                    }
                    response.setUsers(users);
                }
            }
            List<String> stringList = new ArrayList<String>();
            if (StringUtils.isNotBlank(response.getCoverImage())) {
                stringList.add(response.getCoverImage());
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -267,7 +267,7 @@
    @Override
    public AccountResponse wxLogin(String code,String iamId){
    public AccountResponse wxLogin(String code,String userId){
        try {
//            èŽ·å–å¾®ä¿¡æ•æ„Ÿæ•°æ®
            WxMaJscode2SessionResult session = WxMiniConfig.wxCustomerService.getUserService().getSessionInfo(code);
@@ -278,11 +278,8 @@
//            String openId = code;
            Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("OPENID", openId).isNotNull("phone"));
            Users users = new Users();
            if(StringUtils.isNotBlank(iamId)){
                users = usersMapper.selectOne(new QueryWrapper<Users>().lambda()
                        .eq(Users::getIamId,iamId)
                        .last("limit 1")
                );
            if(StringUtils.isNotBlank(userId)){
                users = usersMapper.selectById(userId);
            }
            if (member == null) {
                member = new Member();
@@ -302,14 +299,14 @@
                    member.setToken(ztUserGetTokenResponse.getToken());
                }
                memberMapper.insert(member);
                this.saveCustomerUser(users,member.getId());
                MemberServiceImpl.saveCustomerUser(customerUserMapper,users,member.getId());
            }else{
                ZTUserGetTokenResponse ztUserGetTokenResponse = this.syncZhongTaiUser(member);
                if(!Objects.isNull(ztUserGetTokenResponse)){
                    member.setToken(ztUserGetTokenResponse.getToken());
                    memberMapper.updateById(member);
                }
                this.saveCustomerUser(users,member.getId());
                MemberServiceImpl.saveCustomerUser(customerUserMapper,users,member.getId());
                member = this.getMemberInfo(member.getId());
            }
            String token = JwtTokenUtil.generateTokenForZb(member.getId(),ZTConstants.CUSTOMER, JSONObject.toJSON(member).toString(),redisTemplate);
@@ -324,7 +321,7 @@
        throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"微信登录异常!请联系管理员");
    }
    public void saveCustomerUser(Users users,Long memberId){
    public static void saveCustomerUser(CustomerUserMapper customerUserMapper,Users users,Long memberId){
        if(Objects.nonNull(users)&&Objects.nonNull(memberId)) {
            if (customerUserMapper.selectCount(new QueryWrapper<CustomerUser>().lambda()
                    .eq(CustomerUser::getIsdeleted, Constants.ZERO)
server/service/src/main/java/com/doumee/service/business/impl/NewsServiceImpl.java
@@ -200,6 +200,9 @@
        if (pageWrap.getModel().getId() != null) {
            queryWrapper.eq(News::getId, pageWrap.getModel().getId());
        }
        if(pageWrap.getModel().getIsPublish()!=null && Constants.equalsInteger(pageWrap.getModel().getIsPublish(),Constants.ONE)){
            queryWrapper.apply(" now() >= t.PUBLISH_DATE ");
        }
        if (pageWrap.getModel().getCreator() != null) {
            queryWrapper.eq(News::getCreator, pageWrap.getModel().getCreator());
        }
@@ -391,9 +394,22 @@
        dailyUpdatesResponse.setShareNum(
                actionsMapper.selectCount(new QueryWrapper<Actions>())
        );
        dailyUpdatesResponse.setNewsList(
                this.getCustomizedNewsList(Constants.ZERO,Constants.THREE,Constants.ZERO)
        List<News> list = newsMapper.selectList(new QueryWrapper<News>().lambda()
                .eq(News::getIsdeleted,Constants.ZERO)
                .eq(News::getType,Constants.ZERO)
                .eq(News::getStatus,Constants.ZERO)
                .eq(News::getFileType,Constants.ZERO)
                .last( "limit 3"  )
                .orderByDesc(News::getCreateDate)
        );
        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(list)){
            List<Long> idList =  list.stream().map(i->i.getId()).collect(Collectors.toList());
            List<Multifile> files = dealMultifileList(idList);
            for(News model : list){
                setFilelistById(model,files);
            }
        }
        dailyUpdatesResponse.setNewsList(list);
        return dailyUpdatesResponse;
    }
server/service/src/main/java/com/doumee/service/business/impl/ShopServiceImpl.java
@@ -100,6 +100,11 @@
    @Override
    public void updateById(Shop shop) {
        shopMapper.updateById(shop);
        usersMapper.update(new UpdateWrapper<Users>().lambda()
                .set(Users::getCardImg,null)
                .isNotNull(Users::getCardImg)
                .eq(Users::getDepartmentId,shop.getId())
        );
    }
    @Override
@@ -1016,6 +1021,11 @@
        Shop updShop = new Shop();
        BeanUtils.copyProperties(editShopDTO,updShop);
        shopMapper.updateById(updShop);
        usersMapper.update(new UpdateWrapper<Users>().lambda()
                .set(Users::getCardImg,null)
                .isNotNull(Users::getCardImg)
                .eq(Users::getDepartmentId,shop.getId())
        );
    }
}
server/service/src/main/java/com/doumee/service/business/impl/UsersServiceImpl.java
@@ -35,6 +35,7 @@
import com.doumee.dao.system.model.SystemUser;
import com.doumee.dao.web.reqeust.EditUsersRequest;
import com.doumee.dao.web.reqeust.ContentShareImgDto;
import com.doumee.dao.web.reqeust.GenerateQRCodeRequest;
import com.doumee.dao.web.reqeust.WxPhoneRequest;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.UsersService;
@@ -44,6 +45,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.interfaces.MPJBaseJoin;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import okhttp3.Response;
import org.apache.catalina.User;
import org.apache.commons.lang3.StringUtils;
import me.chanjar.weixin.common.error.WxErrorException;
@@ -58,7 +60,10 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.Callable;
@@ -671,6 +676,8 @@
    @Override
    public  String getContentShareImg(Users users, ContentShareImgDto param){
        users = usersMapper.selectById(users.getId());
        this.getUsersDetail(users);
        if(StringUtils.isBlank(param.getImgurl())){
            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
        }
@@ -700,7 +707,7 @@
        //内容分享海报图片
        InputStream mpCode =  Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
                //"userId="+users.getId()+"&articleId="+param.getArticleId(),
                 param.getArticleId()+"&"+users.getId(),
                 param.getArticleId()+"_"+users.getId(),
                param.getPageUrl());//小程序
        InputStream inputStream = GeneratePicUtil.generateShareWithUserImg(
@@ -724,7 +731,7 @@
       String url =null;
        //内容分享海报图片
        InputStream mpCode =  Constants.generateWxMiniImgStream(systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
                "userId="+users.getId()+"&articleId="+param.getArticleId(),
                param.getArticleId()+"_"+users.getId(),
                param.getPageUrl());//小程序
        String title = systemDictDataBiz.queryByCode(Constants.WEIXIN_DEFAULT_IMGS, Constants.SHARE_HAIBAO_HEADER_TITLE).getCode();
@@ -745,6 +752,8 @@
    @Override
    public     String getUserCard(Users users){
        users = usersMapper.selectById(users.getId());
        this.getUsersDetail(users);
        String path = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.RESOURCE_PATH).getCode();
        String folder = systemDictDataBiz.queryByCode(Constants.OBJCET_STORAGE, Constants.USERS_FILE).getCode();
        if(StringUtils.isNotBlank(users.getCardImg()) && !StringUtils.equals(users.getCardImg(),"-")){
@@ -829,7 +838,9 @@
            Shop shop = shopMapper.selectById(users.getDepartmentId());
            if(Objects.nonNull(shop)){
                users.setShopName(shop.getName());
                users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                if(!(StringUtils.isBlank(shop.getProvinceName())||StringUtils.isBlank(shop.getCityName())||StringUtils.isBlank(shop.getAreaName()))){
                    users.setShopCity(shop.getProvinceName()+shop.getCityName()+shop.getAreaName());
                }
                if(StringUtils.isNotBlank(shop.getAddress())){
                    users.setShopAddress(shop.getAddress());
                }else{
@@ -890,5 +901,41 @@
        return ztBaseRequst;
    }
    @Override
    public InputStream getQrCode(GenerateQRCodeRequest generateQRCodeRequest){
        if(Objects.isNull(generateQRCodeRequest)
            ||StringUtils.isBlank(generateQRCodeRequest.getIamId())
            || StringUtils.isBlank(generateQRCodeRequest.getBusinessId())
            || Objects.isNull(generateQRCodeRequest.getBusinessType())){
            throw new BusinessException(ResponseStatus.BAD_REQUEST);
        }
        if(generateQRCodeRequest.getBusinessType()<Constants.ZERO || generateQRCodeRequest.getBusinessType() > Constants.THREE){
            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"业务类型错误");
        }
        Users users = usersMapper.selectOne(new QueryWrapper<Users>().lambda().eq(Users::getIamId,
                generateQRCodeRequest.getIamId()).last("limit 1"));
        if(Objects.isNull(users)){
            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到员工信息");
        }
        InputStream inputStream =  Constants.generateWxMiniImgStream(
                systemDictDataBiz.queryByCode(Constants.WX_MINI_CONFIG, Constants.WX_TOKEN_CUSTOMER).getCode(),
                generateQRCodeRequest.getBusinessId()+"_"+generateQRCodeRequest.getBusinessType()+"_"+users.getId(),
                null);//小程序
        return inputStream;
//        try {
//               ByteArrayOutputStream baos = new ByteArrayOutputStream();
//                    byte[] buffer = new byte[1024];
//                    int len = -1;
//                    while ((len = inputStream.read(buffer)) != -1) {
//                        baos.write(buffer, 0, len);
//                    }
//                    return "data:mediatype;base64," + Base64.getEncoder().encodeToString(baos.toByteArray());
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"二维码生成失败");
    }
}
server/web/src/main/java/com/doumee/api/web/CustomerApi.java
@@ -84,8 +84,6 @@
    private ActionsService actionsService;
    @ApiOperation(value = "客户端小程序登陆", notes = "客户端小程序")
    @GetMapping("/wxLoginCustomer")
    @ApiImplicitParams({
@@ -528,9 +526,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTCaseInfoResponse> getWholecaseInfo(@RequestParam String id) {
        ZTCaseInfoResponse ztCaseInfoResponse= getZhongTaiDataService.getWholecaseInfo(id,getUserType(),getMemberId());
    public ApiResponse<ZTCaseInfoResponse> getWholecaseInfo(@RequestParam String id,String salesId) {
        ZTCaseInfoResponse ztCaseInfoResponse= getZhongTaiDataService.getWholecaseInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztCaseInfoResponse);
    }
@@ -543,9 +542,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTProductNewsInfoResponse> getProductNewsInfo(@RequestParam String id) {
        ZTProductNewsInfoResponse ztProductNewsInfoResponse= getZhongTaiDataService.getProductNewsInfo(id,getUserType(),getMemberId());
    public ApiResponse<ZTProductNewsInfoResponse> getProductNewsInfo(@RequestParam String id,String salesId) {
        ZTProductNewsInfoResponse ztProductNewsInfoResponse= getZhongTaiDataService.getProductNewsInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztProductNewsInfoResponse);
    }
@@ -559,14 +559,12 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTRealcaseInfoResponse> getRealcaseInfo(@RequestParam String id) {
        ZTRealcaseInfoResponse ztRealcaseInfoResponse= getZhongTaiDataService.getRealcaseInfo(id,getUserType(),getMemberId());
    public ApiResponse<ZTRealcaseInfoResponse> getRealcaseInfo(@RequestParam String id,String salesId) {
        ZTRealcaseInfoResponse ztRealcaseInfoResponse= getZhongTaiDataService.getRealcaseInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztRealcaseInfoResponse);
    }
    @UserLoginRequired
    @LoginRequired
@@ -575,9 +573,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "id", value = "内容主键", required = true),
            @ApiImplicitParam(paramType = "query", dataType = "String", name = "salesId", value = "导购主键(二维码分享)", required = false),
    })
    public ApiResponse<ZTProductInfoResponse> getProductInfo(@RequestParam String id) {
        ZTProductInfoResponse ztProductInfoResponse= getZhongTaiDataService.getProductInfo(id,getUserType(),getMemberId());
    public ApiResponse<ZTProductInfoResponse> getProductInfo(@RequestParam String id,String salesId) {
        ZTProductInfoResponse ztProductInfoResponse= getZhongTaiDataService.getProductInfo(id,getUserType(),getMemberId(),salesId);
        return ApiResponse.success("查询成功",ztProductInfoResponse);
    }
server/web/src/main/java/com/doumee/api/web/CustomerManageApi.java
@@ -8,12 +8,15 @@
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.business.model.News;
import com.doumee.dao.web.reqeust.GenerateQRCodeRequest;
import com.doumee.dao.web.response.DailyUpdatesResponse;
import com.doumee.dao.web.response.ZSZXCatalogResponse;
import com.doumee.service.business.GetZhongTaiDataService;
import com.doumee.service.business.NewsService;
import com.doumee.service.business.SmsEmailService;
import com.doumee.service.business.UsersService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -22,6 +25,10 @@
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
/**
 * Created by IntelliJ IDEA.
@@ -51,6 +58,9 @@
    @Autowired
    public GetZhongTaiDataService getZhongTaiDataService;
    @Autowired
    public UsersService usersService;
    @UserLoginRequired
    @LoginRequired
@@ -62,6 +72,9 @@
    public ApiResponse<ZSZXCatalogResponse> getZSZXCatalogs() {
        return  ApiResponse.success(getZhongTaiDataService.getZSZXCatalogs(getMemberId(),getUserType()));
    }
@@ -83,6 +96,7 @@
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true),
    })
    public ApiResponse<PageData<News>> newsPage (@RequestBody PageWrap<News> pageWrap) {
        pageWrap.getModel().setIsPublish(Constants.ONE);
        return ApiResponse.success(newsService.findPage(pageWrap));
    }
@@ -98,4 +112,18 @@
    public ApiResponse<String> getCrmAuthUrl(@RequestParam Integer type) {
        return  ApiResponse.success(zbomCRMService.getCrmGoUrl(this.getLoginUserInfo().getIamUsername(),type));
    }
    @ApiOperation(value = "生成小程序码", notes = "PAD端")
    @PostMapping("/getQrCode")
    public void getQrCode(@RequestBody GenerateQRCodeRequest generateQRCodeRequest, HttpServletResponse response) {
        try{
            response.setHeader("Cache-Control", "no-store, no-cache");
            response.setContentType("image/jpeg");
            InputStream inputStream = usersService.getQrCode(generateQRCodeRequest);
            ImageIO.write(ImageIO.read(inputStream),"png",response.getOutputStream());
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
server/web/src/main/java/com/doumee/api/web/PersonnelApi.java
@@ -17,9 +17,11 @@
import com.doumee.dao.business.model.Shop;
import com.doumee.dao.business.model.SmsEmail;
import com.doumee.dao.business.model.Users;
import com.doumee.dao.system.model.SystemDictData;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.AccountResponse;
import com.doumee.service.business.*;
import com.doumee.service.system.SystemDictDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -181,8 +183,22 @@
    }
    @Autowired
    private SystemDictDataBiz systemDictDataBiz;
    @UserLoginRequired
    @LoginRequired
    @ApiOperation(value = "更新token", notes = "员工端小程序")
    @GetMapping("/updateToken")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "用户token值", required = true)
    })
    public ApiResponse updateToken () {
        systemDictDataBiz.updWxMiniToken();
        return ApiResponse.success("操作成功");
    }
    @UserLoginRequired
    @ApiOperation(value = "获取内容分享海报", notes = "获取内容分享海报,加小程序码")