罗元桥
2021-09-28 f86434155580a034e041dd53b6aad5bf0a4dcd6b
Merge branch 'test' into 'test_bak'

Test

See merge request root/zhihuishequ!213
8个文件已删除
3个文件已添加
26个文件已修改
1507 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActCommiteeVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 168 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductSpecificationDAO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductSpecificationMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientServiceCategoryMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/KafkaConfig.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketClient.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketConfig.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/CallForward.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/CallForwardDto.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/CustomBtn.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceDto.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceInfoDto.java 255 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/TaskDetail.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/TaskInfo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/listener/OrderListener.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/bootstrap.yml 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java
@@ -307,7 +307,6 @@
    @ApiOperation(value = "新增便民服务商家")
    @PostMapping("/merchant/add")
    public R addMerchant(@RequestBody @Validated(AddGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
        log.error("catTimeStamp进入appletsbackstage", Instant.now().toEpochMilli());
        convenientMerchantDTO.setCreatedBy(this.getUserId());
        return communityService.addMerchant(convenientMerchantDTO);
    }
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActCommiteeVO.java
@@ -1,5 +1,7 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -38,6 +40,7 @@
     * 小区id
     */
    @ApiModelProperty(value = "小区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long areaId;
    /**
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyVO.java
@@ -1,5 +1,7 @@
package com.panzhihua.common.model.vos.community;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -76,5 +78,6 @@
    private String areaName;
    @ApiModelProperty("小区id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long areaId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -6555,4 +6555,12 @@
     */
    @PostMapping("/cluster/member/export/admin")
    R exportClusterMember(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto);
    /**
     * 社区后台分页查询微心愿
     * @param comActMicroWishVO 请求参数
     * @return  微心愿列表
     */
    @PostMapping("pagemicrowishAdmin")
    R pageMicroWishAdmin(@RequestBody ComActMicroWishVO comActMicroWishVO);
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -1226,15 +1226,15 @@
        List<String> head5 = new ArrayList<String>();
        head5.add("与户主关系");
        List<String> head6 = new ArrayList<String>();
        head6.add("*街/路/巷");
        head6.add("*街/路/巷(如:格沙拉大道)");
        List<String> head7 = new ArrayList<String>();
        head7.add("*小区号(政府对于每个小区都有特定编号)");
        head7.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head8 = new ArrayList<String>();
        head8.add("楼排号");
        head8.add("*楼排号(注:仅填写数字即可)");
        List<String> head9 = new ArrayList<String>();
        head9.add("单元号");
        head9.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head10 = new ArrayList<String>();
        head10.add("户室(四位数表示。前两位楼层,后两位户号)");
        head10.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head11 = new ArrayList<String>();
        head11.add("建筑用途");
        List<String> head12 = new ArrayList<String>();
@@ -1357,19 +1357,19 @@
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        head3.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("*街/路/巷");
        head5.add("*街/路/巷(如:格沙拉大道)");
        List<String> head6 = new ArrayList<String>();
        head6.add("*小区号(政府对于每个小区都有特定编号)");
        head6.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head7 = new ArrayList<String>();
        head7.add("楼排号");
        head7.add("*楼排号(注:仅填写数字即可)");
        List<String> head8 = new ArrayList<String>();
        head8.add("单元号");
        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head9 = new ArrayList<String>();
        head9.add("户室(四位数表示。前两位楼层,后两位户号)");
        head9.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head10 = new ArrayList<String>();
        head10.add("是否租住(是/否)");
        List<String> head11 = new ArrayList<String>();
@@ -1447,19 +1447,19 @@
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        head3.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("*街/路/巷");
        head5.add("*街/路/巷(如:格沙拉大道)");
        List<String> head6 = new ArrayList<String>();
        head6.add("*小区号(政府对于每个小区都有特定编号)");
        head6.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head7 = new ArrayList<String>();
        head7.add("楼排号");
        head7.add("*楼排号(注:仅填写数字即可)");
        List<String> head8 = new ArrayList<String>();
        head8.add("单元号");
        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head9 = new ArrayList<String>();
        head9.add("户室(四位数表示。前两位楼层,后两位户号)");
        head9.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head10 = new ArrayList<String>();
        head10.add("是否租住(是/否)");
        List<String> head11 = new ArrayList<String>();
@@ -1487,13 +1487,13 @@
        List<String> head22 = new ArrayList<String>();
        head22.add("原判刑期");
        List<String> head23 = new ArrayList<String>();
        head23.add("原判刑开始日期");
        head23.add("原判刑开始日期(日期格式:2020/02/05)");
        List<String> head24 = new ArrayList<String>();
        head24.add("原判刑结束日期");
        head24.add("原判刑结束日期(日期格式:2020/02/05)");
        List<String> head25 = new ArrayList<String>();
        head25.add("矫正开始日期");
        head25.add("矫正开始日期(日期格式:2020/02/05)");
        List<String> head26 = new ArrayList<String>();
        head26.add("矫正结束日期");
        head26.add("矫正结束日期(日期格式:2020/02/05)");
        List<String> head27 = new ArrayList<String>();
        head27.add("接收方式");
        List<String> head28 = new ArrayList<String>();
@@ -1592,17 +1592,17 @@
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        head2.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head3 = new ArrayList<String>();
        head3.add("*街/路/巷");
        head3.add("*街/路/巷(如:格沙拉大道)");
        List<String> head4 = new ArrayList<String>();
        head4.add("*小区号(政府对于每个小区都有特定编号)");
        head4.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head5 = new ArrayList<String>();
        head5.add("楼排号");
        head5.add("*楼排号(注:仅填写数字即可)");
        List<String> head6 = new ArrayList<String>();
        head6.add("单元号");
        head6.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head7 = new ArrayList<String>();
        head7.add("户室(四位数表示。前两位楼层,后两位户号)");
        head7.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head8 = new ArrayList<String>();
        head8.add("是否租住(是/否)");
        List<String> head9 = new ArrayList<String>();
@@ -1685,7 +1685,7 @@
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        head2.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head3 = new ArrayList<String>();
        head3.add("民族");
        List<String> head4 = new ArrayList<String>();
@@ -1697,15 +1697,15 @@
        List<String> head7 = new ArrayList<String>();
        head7.add("政治面貌");
        List<String> head8 = new ArrayList<String>();
        head8.add("*街/路/巷");
        head8.add("*街/路/巷(如:格沙拉大道)");
        List<String> head9 = new ArrayList<String>();
        head9.add("*小区号(政府对于每个小区都有特定编号)");
        head9.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head10 = new ArrayList<String>();
        head10.add("楼排号");
        head10.add("*楼排号(注:仅填写数字即可)");
        List<String> head11 = new ArrayList<String>();
        head11.add("单元号");
        head11.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head12 = new ArrayList<String>();
        head12.add("户室(四位数表示。前两位楼层,后两位户号)");
        head12.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head13 = new ArrayList<String>();
        head13.add("是否租住(是/否)");
        List<String> head14 = new ArrayList<String>();
@@ -1723,7 +1723,7 @@
        List<String> head20 = new ArrayList<String>();
        head20.add("基本情况(参加邪教的活动情况)");
        List<String> head21 = new ArrayList<String>();
        head21.add("参加邪教时间");
        head21.add("参加邪教时间(日期格式:2020/02/05))");
        List<String> head22 = new ArrayList<String>();
        head22.add("是否对外宣传");
        List<String> head23 = new ArrayList<String>();
@@ -1765,21 +1765,21 @@
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        head3.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("籍贯");
        List<String> head6 = new ArrayList<String>();
        head6.add("*街/路/巷");
        head6.add("*街/路/巷(如:格沙拉大道)");
        List<String> head7 = new ArrayList<String>();
        head7.add("*小区号(政府对于每个小区都有特定编号)");
        head7.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head8 = new ArrayList<String>();
        head8.add("楼排号");
        head8.add("*楼排号(注:仅填写数字即可)");
        List<String> head9 = new ArrayList<String>();
        head9.add("单元号");
        head9.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head10 = new ArrayList<String>();
        head10.add("户室(四位数表示。前两位楼层,后两位户号)");
        head10.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head11 = new ArrayList<String>();
        head11.add("是否租住(是/否)");
        List<String> head12 = new ArrayList<String>();
@@ -1803,19 +1803,19 @@
        List<String> head21 = new ArrayList<String>();
        head21.add("是否累犯");
        List<String> head22 = new ArrayList<String>();
        head22.add("原判刑期");
        head22.add("原判刑期(日期格式:2020/02/05)");
        List<String> head23 = new ArrayList<String>();
        head23.add("服刑日期");
        head23.add("服刑日期(日期格式:2020/02/05)");
        List<String> head24 = new ArrayList<String>();
        head24.add("原罪名");
        List<String> head25 = new ArrayList<String>();
        head25.add("释放日期");
        head25.add("释放日期(日期格式:2020/02/05)");
        List<String> head26 = new ArrayList<String>();
        head26.add("服刑场所");
        List<String> head27 = new ArrayList<String>();
        head27.add("危险性评估");
        List<String> head28 = new ArrayList<String>();
        head28.add("衔接日期");
        head28.add("衔接日期(日期格式:2020/02/05)");
        List<String> head29 = new ArrayList<String>();
        head29.add("衔接情况");
        List<String> head30 = new ArrayList<String>();
@@ -1825,7 +1825,7 @@
        List<String> head32 = new ArrayList<String>();
        head32.add("安置情况");
        List<String> head33 = new ArrayList<String>();
        head33.add("安置日期");
        head33.add("安置日期(日期格式:2020/02/05)");
        List<String> head34 = new ArrayList<String>();
        head34.add("未安置原因");
        List<String> head35 = new ArrayList<String>();
@@ -1888,21 +1888,21 @@
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        head3.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("籍贯");
        List<String> head6 = new ArrayList<String>();
        head6.add("*街/路/巷");
        head6.add("*街/路/巷(如:格沙拉大道)");
        List<String> head7 = new ArrayList<String>();
        head7.add("*小区号(政府对于每个小区都有特定编号)");
        head7.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head8 = new ArrayList<String>();
        head8.add("楼排号");
        head8.add("*楼排号(注:仅填写数字即可)");
        List<String> head9 = new ArrayList<String>();
        head9.add("单元号");
        head9.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head10 = new ArrayList<String>();
        head10.add("户室(四位数表示。前两位楼层,后两位户号)");
        head10.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head11 = new ArrayList<String>();
        head11.add("是否租住(是/否)");
        List<String> head12 = new ArrayList<String>();
@@ -2025,27 +2025,27 @@
        List<String> head3 = new ArrayList<String>();
        head3.add("*姓名");
        List<String> head4 = new ArrayList<String>();
        head4.add("*身份证号码");
        head4.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head5 = new ArrayList<String>();
        head5.add("联系电话");
        List<String> head6 = new ArrayList<String>();
        head6.add("照片");
        List<String> head7 = new ArrayList<String>();
        head7.add("户籍性质");
        head7.add("户籍性质(城镇户口、农村户口)");
        List<String> head8 = new ArrayList<String>();
        head8.add("户口所在地(身份证地址)");
        List<String> head9 = new ArrayList<String>();
        head9.add("本地/外地");
        List<String> head10 = new ArrayList<String>();
        head10.add("*街/路/巷");
        head10.add("*街/路/巷(如:格沙拉大道)");
        List<String> head11 = new ArrayList<String>();
        head11.add("*小区号(政府对于每个小区都有特定编号)");
        head11.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head12 = new ArrayList<String>();
        head12.add("楼排号");
        head12.add("*楼排号(注:仅填写数字即可)");
        List<String> head13 = new ArrayList<String>();
        head13.add("单元号");
        head13.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head14 = new ArrayList<String>();
        head14.add("户室(四位数表示。前两位楼层,后两位户号)");
        head14.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head15 = new ArrayList<String>();
        head15.add("是否租住(是/否)");
        List<String> head16 = new ArrayList<String>();
@@ -2053,11 +2053,11 @@
        List<String> head17 = new ArrayList<String>();
        head17.add("房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head18 = new ArrayList<String>();
        head18.add("控状态(常规/关注/管控)");
        head18.add("管控状态(常规/关注/管控)");
        List<String> head19 = new ArrayList<String>();
        head19.add("入伍时间");
        head19.add("入伍时间(初次发现日期(日期格式:2020/02/05)");
        List<String> head20 = new ArrayList<String>();
        head20.add("退伍时间");
        head20.add("退伍时间(日期格式:2020/02/05)");
        List<String> head21 = new ArrayList<String>();
        head21.add("人员类别");
        List<String> head22 = new ArrayList<String>();
@@ -2213,7 +2213,7 @@
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        head2.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head3 = new ArrayList<String>();
        head3.add("办证状况");
        List<String> head4 = new ArrayList<String>();
@@ -2227,15 +2227,15 @@
        List<String> head8 = new ArrayList<String>();
        head8.add("联系电话");
        List<String> head9 = new ArrayList<String>();
        head9.add("*街/路/巷");
        head9.add("*街/路/巷(如:格沙拉大道)");
        List<String> head10 = new ArrayList<String>();
        head10.add("*小区号(政府对于每个小区都有特定编号)");
        head10.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head11 = new ArrayList<String>();
        head11.add("楼排号");
        head11.add("*楼排号(注:仅填写数字即可)");
        List<String> head12 = new ArrayList<String>();
        head12.add("单元号");
        head12.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head13 = new ArrayList<String>();
        head13.add("户室(四位数表示。前两位楼层,后两位户号)");
        head13.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head14 = new ArrayList<String>();
        head14.add("是否租住(是/否)");
        List<String> head15 = new ArrayList<String>();
@@ -2282,7 +2282,7 @@
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        head2.add("*身份证(性别和年龄自动根据身份证号识别)");
        List<String> head3 = new ArrayList<String>();
        head3.add("联系电话");
        List<String> head4 = new ArrayList<String>();
@@ -2302,15 +2302,15 @@
        List<String> head11 = new ArrayList<String>();
        head11.add("户主编码");
        List<String> head12 = new ArrayList<String>();
        head12.add("*街/路/巷");
        head12.add("*街/路/巷(如:格沙拉大道)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*小区号(政府对于每个小区都有特定编号)");
        head13.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head14 = new ArrayList<String>();
        head14.add("楼排号");
        head14.add("*楼排号(注:仅填写数字即可)");
        List<String> head15 = new ArrayList<String>();
        head15.add("单元号");
        head15.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head16 = new ArrayList<String>();
        head16.add("户室(四位数表示。前两位楼层,后两位户号)");
        head16.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head17 = new ArrayList<String>();
        head17.add("是否租住(是/否)");
        List<String> head18 = new ArrayList<String>();
@@ -2362,7 +2362,7 @@
        List<String> head41 = new ArrayList<String>();
        head41.add("纬度");
        List<String> head42 = new ArrayList<String>();
        head42.add("始发年月");
        head42.add("始发年月(初次发现日期(日期格式:2020/02/05)");
        List<String> head43 = new ArrayList<String>();
        head43.add("护理费");
        List<String> head44 = new ArrayList<String>();
@@ -2432,15 +2432,15 @@
        List<String> head4 = new ArrayList<String>();
        head4.add("是否租住");
        List<String> head5 = new ArrayList<String>();
        head5.add("*街/路/巷");
        head5.add("*街/路/巷(如:格沙拉大道)");
        List<String> head6 = new ArrayList<String>();
        head6.add("*小区号(政府对于每个小区都有特定编号)");
        head6.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head7 = new ArrayList<String>();
        head7.add("楼排号");
        head7.add("*楼排号(注:仅填写数字即可)");
        List<String> head8 = new ArrayList<String>();
        head8.add("单元号");
        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head9 = new ArrayList<String>();
        head9.add("户室(四位数表示。前两位楼层,后两位户号)");
        head9.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head10 = new ArrayList<String>();
        head10.add("房屋状态(自住/租住/其他)");
        List<String> head11 = new ArrayList<String>();
@@ -2514,15 +2514,15 @@
        List<String> head4 = new ArrayList<String>();
        head4.add("是否租住");
        List<String> head5 = new ArrayList<String>();
        head5.add("*街/路/巷(社区内无住所可填写社区街路巷地址)");
        head5.add("*街/路/巷(如:格沙拉大道)");
        List<String> head6 = new ArrayList<String>();
        head6.add("*小区号(政府对于每个小区都有特定编号)(社区内无住所可填写社区街路巷号)");
        head6.add("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
        List<String> head7 = new ArrayList<String>();
        head7.add("楼排号");
        head7.add("*楼排号(注:仅填写数字即可)");
        List<String> head8 = new ArrayList<String>();
        head8.add("单元号");
        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
        List<String> head9 = new ArrayList<String>();
        head9.add("户室(四位数表示。前两位楼层,后两位户号)");
        head9.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
        List<String> head10 = new ArrayList<String>();
        head10.add("房屋状态(自住/租住/其他)");
        List<String> head11 = new ArrayList<String>();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -2446,4 +2446,14 @@
    public R wishHandleListAdmin(@RequestParam(value = "communityId") Long communityId,@RequestParam("type") Integer type){
        return R.ok(comActMicroWishService.wishHandleListAdmin(communityId,type));
    }
    /**
     * 社区后台分页查询微心愿
     * @param comActMicroWishVO 请求参数
     * @return  微心愿列表
     */
    @PostMapping("pagemicrowishAdmin")
    public R pageMicroWishAdmin(@RequestBody ComActMicroWishVO comActMicroWishVO) {
        return comActMicroWishService.pageMicroWishAdmin(comActMicroWishVO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java
@@ -365,7 +365,6 @@
     */
    @PostMapping("/merchant/add")
    public R addMerchant(@RequestBody ConvenientMerchantDTO convenientMerchantDTO) {
        log.error("catTimeStamp进入service_community", Instant.now().toEpochMilli());
        return convenientMerchantService.addMerchant(convenientMerchantDTO);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
@@ -107,6 +107,13 @@
            "</script>")
    IPage<ComActMicroWishVO> pageMicroWish(Page page, @Param("comActMicroWishVO") ComActMicroWishVO comActMicroWishVO);
    /**
     * 社区后台分页查询微心愿
     * @param comActMicroWishVO 请求参数
     * @return  微心愿列表
     */
    IPage<ComActMicroWishVO> pageMicroWishAdmin(Page page, @Param("comActMicroWishVO") ComActMicroWishVO comActMicroWishVO);
    IPage<ComActMicroWishVO> pageMicroWishApplets(Page page, @Param("comActMicroWishVO") ComActMicroWishVO comActMicroWishVO);
    @Select("SELECT " +
            "w.id, " +
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductSpecificationDAO.java
@@ -27,9 +27,10 @@
    /**
     * 删除传入ID以外的关联
     * @param notNeedDelIds
     * @param productId
     * @return
     */
    int deleteLoseRelationSpecifications(@Param("notNeedDelIds") List<Long> notNeedDelIds);
    int deleteLoseRelationSpecifications(@Param("notNeedDelIds") List<Long> notNeedDelIds, @Param("productId") Long productId);
    /**
     * 通过产品ID删除相关规格
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java
@@ -38,6 +38,7 @@
    /**
     * 图片地址 多个用逗号隔开
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String photoPah;
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java
@@ -100,4 +100,11 @@
     * @return  处理人列表
     */
    R wishHandleListAdmin(Long communityId,Integer type);
    /**
     * 社区后台分页查询微心愿
     * @param comActMicroWishVO 请求参数
     * @return  微心愿列表
     */
    R pageMicroWishAdmin(ComActMicroWishVO comActMicroWishVO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
@@ -484,4 +484,37 @@
        }
        return result;
    }
    /**
     * 社区后台分页查询微心愿
     * @param comActMicroWishVO 请求参数
     * @return  微心愿列表
     */
    @Override
    public R pageMicroWishAdmin(ComActMicroWishVO comActMicroWishVO) {
        Long userId = comActMicroWishVO.getResponsibleId();
        IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWishAdmin(new Page(comActMicroWishVO.getPageNum()
                ,comActMicroWishVO.getPageSize()), comActMicroWishVO);
        List<ComActMicroWishVO> records = iPage.getRecords();
        if (!ObjectUtils.isEmpty(records)) {
            records.forEach(comActMicroWishVO1 -> {
                if(userId != null){
                    Long id = comActMicroWishVO1.getId();
                    ComActMicroWishUserDO comActMicroWishUserDO = comActMicroWishUserDAO.selectOne(new QueryWrapper<ComActMicroWishUserDO>().lambda().eq(ComActMicroWishUserDO::getMicroWishId, id)
                            .eq(ComActMicroWishUserDO::getUserId, userId));
                    if (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
                        comActMicroWishVO1.setHaveGiveThumbsUp(0);
                    } else {
                        comActMicroWishVO1.setHaveGiveThumbsUp(1);
                    }
                }
                comActMicroWishVO1.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO1.getSponsorPhone()));
                //查询处理人
                comActMicroWishVO1.setResponsibleName(this.getWishHandleName(comActMicroWishVO1.getHandleId()));
            });
            iPage.setRecords(records);
        }
        return R.ok(iPage);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java
@@ -5,7 +5,6 @@
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -13,7 +12,6 @@
import javax.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -56,6 +54,8 @@
import com.panzhihua.service_community.model.dos.ConvenientViewStatisticsDO;
import com.panzhihua.service_community.service.ConvenientMerchantService;
import lombok.extern.slf4j.Slf4j;
/**
 * @title: ConvenientMerchantServiceImpl
 * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
@@ -83,7 +83,6 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addMerchant(ConvenientMerchantDTO convenientMerchantDTO) {
        log.error("catTimeStamp开始执行addMerchant", Instant.now().toEpochMilli());
        ComActDO comActDO = comActDAO.selectById(convenientMerchantDTO.getCommunityId());
        ConvenientMerchantDO convenientMerchantDO = new ConvenientMerchantDO();
        BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
@@ -103,7 +102,6 @@
                });
            }
        }
        log.error("catTimeStamp商家创建完成开始添加用户", Instant.now().toEpochMilli());
        //添加user
        R addUserResult = userService.addConvenientMerchantUser(convenientMerchantDTO);
        if (R.isOk(addUserResult)) {
@@ -113,7 +111,6 @@
        } else {
            throw new ServiceException("406", addUserResult.getMsg());
        }
        log.error("catTimeStamp全部完成", Instant.now().toEpochMilli());
        return R.ok();
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductServiceImpl.java
@@ -106,8 +106,7 @@
        convenientProductDO.setUpdatedBy(updatedBy);
        this.baseMapper.updateById(convenientProductDO);
        List<ConvenientProductSpecificationDTO> productSpecificationDTOList = convenientProductDTO.getProductSpecificationDTOList();
        List<Long> notNeedDelIds = productSpecificationDTOList.stream().filter(specificationDTO -> nonNull(specificationDTO.getId()))
                .map(ConvenientProductSpecificationDTO::getId).collect(Collectors.toList());
        List<Long> notNeedDelIds = new ArrayList<>();
        productSpecificationDTOList.forEach(specificationDTO -> {
            Long specificationId = specificationDTO.getId();
            if (isNull(specificationId)) {
@@ -118,16 +117,18 @@
                convenientProductSpecificationDO.setCreatedAt(nowDate);
                convenientProductSpecificationDO.setCreatedBy(updatedBy);
                convenientProductSpecificationDAO.insert(convenientProductSpecificationDO);
                notNeedDelIds.add(convenientProductSpecificationDO.getId());
            } else {
                //更新
                ConvenientProductSpecificationDO convenientProductSpecificationDO = convenientProductSpecificationDAO.selectById(specificationId);
                BeanUtils.copyProperties(specificationDTO, convenientProductSpecificationDO);
                convenientProductSpecificationDO.setUpdatedBy(updatedBy);
                convenientProductSpecificationDAO.updateById(convenientProductSpecificationDO);
                notNeedDelIds.add(specificationId);
            }
        });
        //删除已失去关联的规格
        convenientProductSpecificationDAO.deleteLoseRelationSpecifications(notNeedDelIds);
        convenientProductSpecificationDAO.deleteLoseRelationSpecifications(notNeedDelIds, productId);
        return R.ok();
    }
@@ -215,6 +216,7 @@
        List<ConvenientProductVO> productVOList = this.baseMapper.getMerchantProduct(merchantId);
        List<ConvenientProductSpecificationVO> specificationVOList = this.baseMapper.getProductSpecifications(merchantId);
        List<ConvenientProductLevelInfoVO> levelInfoVOList = new ArrayList<>();
        List<String> categoryList = new ArrayList<>();
        if (!productVOList.isEmpty()) {
            productVOList.forEach(productVO -> {
                List<ConvenientProductSpecificationVO> currentProductSpecificationVOList = new ArrayList<>();
@@ -224,22 +226,22 @@
                    }
                });
                productVO.setProductSpecificationVOList(currentProductSpecificationVOList);
                if (!categoryList.contains(productVO.getCategoryName())) {
                    categoryList.add(productVO.getCategoryName());
                }
            });
            //分类
            Map<String, List<ConvenientProductVO>> levelGroup = productVOList.stream()
                    .collect(Collectors.groupingBy(ConvenientProductVO::getCategoryName));
            Set<String> categoryNames = levelGroup.keySet();
            Iterator<String> iterator = categoryNames.iterator();
            while (iterator.hasNext()) {
                String categoryName = iterator.next();
            categoryList.forEach(category -> {
                ConvenientProductLevelInfoVO levelInfoVOLevelInfoVO = new ConvenientProductLevelInfoVO();
                levelInfoVOLevelInfoVO.setCategoryName(categoryName);
                List<ConvenientProductVO> productVOS = levelGroup.get(categoryName);
                levelInfoVOLevelInfoVO.setCategoryName(category);
                List<ConvenientProductVO> productVOS = levelGroup.get(category);
                List<ConvenientProductVO> sortedProductVOS = productVOS.stream()
                        .sorted(Comparator.comparing(ConvenientProductVO::getOnShelfAt).reversed()).collect(Collectors.toList());
                levelInfoVOLevelInfoVO.setProductVOList(sortedProductVOS);
                levelInfoVOList.add(levelInfoVOLevelInfoVO);
            }
            });
        }
        return R.ok(levelInfoVOList);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml
@@ -54,6 +54,6 @@
    </select>
    <select id="getIndexTopActivityList" resultMap="BaseResultMap">
        SELECT * FROM `com_act_activity`
        WHERE community_id = #{communityId} and is_top = 1 and sign_up_end &gt;= now() and sign_up_begin &lt;= now()
        WHERE community_id = #{communityId} and is_top = 1 and sign_up_end &gt;= now()
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
@@ -27,7 +27,7 @@
            cadc.`comment`,
            cadc.`is_author`,
            su.`image_url`,
            IFNULL( su.`name`, su.nick_name ) AS userNameBack,
            IFNULL( su.`name`, su.nick_name ) AS userName,
            cadc.create_at
        FROM
            com_act_discuss_comment AS cadc
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml
@@ -108,4 +108,59 @@
        select user_id,IFNULL(`name`,nick_name) as `name`,`type`,is_volunteer,is_partymember from sys_user where user_id = #{userId}
    </select>
    <select id="pageMicroWishAdmin" resultType="com.panzhihua.common.model.vos.community.ComActMicroWishVO">
        SELECT
        w.id,
        u.`name` sponsor_name,
        u.nick_name userNickName,
        u.image_url ,
        w.sponsor_phone,
        w.wish_name,
        w.`status`,
        w.`feedback_at`,
        w.`examine_at`,
        w.`distribution_at`,
        w.`evaluate_at`,
        w.`photo_path_list`,
        count(wu.id)star_num,
        w.`detail`,
        w.form,
        w.reject_reason,
        su1.`name` responsible_name,
        w.score,
        w.img_width,
        w.finish_at,
        w.aim_num,
        w.img_height,
        w.handle_id,
        w.create_at
        FROM
        com_act_micro_wish w
        left join com_act_micro_wish_user wu on w.id=wu.micro_wish_id
        left JOIN sys_user u ON w.sponsor_id = u.user_id
        LEFT JOIN sys_user su1 ON w.responsible_id = su1.user_id
        <where>
            <if test='comActMicroWishVO.communityId != null and comActMicroWishVO.communityId != 0'>
                and w.community_id=#{comActMicroWishVO.communityId}
            </if>
            <if test='comActMicroWishVO.createBegin != null '>
                AND w.create_at BETWEEN #{comActMicroWishVO.createBegin}
                AND #{comActMicroWishVO.createEnd}
            </if>
            <if test='comActMicroWishVO.sponsorPhone != null and comActMicroWishVO.sponsorPhone != &quot;&quot;'>
                AND u.`phone` like concat(#{comActMicroWishVO.sponsorPhone},'%')
            </if>
            <if test='comActMicroWishVO.sponsorName != null and comActMicroWishVO.sponsorName != &quot;&quot;'>
                AND u.`name` like concat(#{comActMicroWishVO.sponsorName},'%')
            </if>
            <if test='comActMicroWishVO.responsibleName != null and comActMicroWishVO.responsibleName != &quot;&quot;'>
                AND su1.`name` like concat(#{comActMicroWishVO.responsibleName},'%')
            </if>
            <if test='comActMicroWishVO.status != null'>
                AND w.`status` = #{comActMicroWishVO.status}
            </if>
        </where>
        ORDER BY  w.create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml
@@ -60,7 +60,7 @@
                    OR ccm.phone LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%')
                )
        </if>
        GROUP BY ccm.id
        GROUP BY ccm.id ORDER BY ccm.created_at DESC
    </select>
    <select id="selectMerchantById" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
        SELECT ccm.*, su.account, su.status AS accountStatus
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductMapper.xml
@@ -56,6 +56,7 @@
        <if test="pageConvenientProductDTO.onShelf != null">
            AND ccp.on_shelf = #{pageConvenientProductDTO.onShelf}
        </if>
        ORDER BY ccp.created_at DESC
    </select>
    <select id="getMerchantProduct" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO">
        SELECT  ccp.id, ccp.name, ccp.category_id, ccp.on_shelf_at, ccp.introduction, ccpc.name AS categoryName
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductSpecificationMapper.xml
@@ -29,7 +29,7 @@
    </insert>
    <update id="deleteLoseRelationSpecifications" parameterType="java.util.List">
        UPDATE com_convenient_product_specifications SET is_del = 1
        WHERE id NOT IN
        WHERE product_id = #{productId} AND id NOT IN
        <foreach collection="notNeedDelIds" open="(" separator="," close=")" index="index" item="item">
            #{item}
        </foreach>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientServiceCategoryMapper.xml
@@ -50,6 +50,6 @@
        FROM com_convenient_service_categories ccsc
        INNER JOIN com_convenient_service_scope ccss ON ccsc.id = ccss.service_category_id
        LEFT JOIN com_convenient_merchants ccm ON ccss.merchant_id = ccm.id
        WHERE ccsc.is_del = 0 AND ccm.is_del = 0 AND ccm.community_id = #{communityId} AND ccm.business_status = 1 GROUP BY ccsc.id
        WHERE ccsc.is_del = 0 AND ccm.is_del = 0 AND ccm.community_id = #{communityId} AND ccm.business_status = 1 GROUP BY ccsc.id ORDER BY ccsc.weight desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml
@@ -111,22 +111,10 @@
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!--kafka依赖 -->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
            <version>2.7.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
            <version>2.7.6</version>
        </dependency>
        <!--json转换工具包依赖 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
            <version>2.3.4.RELEASE</version>
        </dependency>
    </dependencies>
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/KafkaConfig.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketClient.java
New file
@@ -0,0 +1,129 @@
package com.panzhihua.service_property.config;
import java.io.IOException;
import java.util.Date;
import javax.annotation.Resource;
import javax.websocket.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.service_property.dao.ComPropertyAlarmDao;
import com.panzhihua.service_property.dto.DeviceDto;
import com.panzhihua.service_property.entity.ComPropertyAlarm;
import cn.hutool.extra.spring.SpringUtil;
import lombok.extern.slf4j.Slf4j;
/**
 * 应用模块名称
 * <p>
 * 一键报警设备消息 代码描述
 * <p>
 * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
 * <p>
 * Company: 成都呐喊信息技术有限公司
 * <p>
 *
 * @author manailin
 * @since 2021/9/27 16:31
 */
@Slf4j
@Component
@ClientEndpoint
public class WebSocketClient {
    private static final Logger logger = LoggerFactory.getLogger(WebSocketClient.class);
    /** 保存报警记录服务 */
    @Resource
    private ComPropertyAlarmDao comPropertyAlarmDao;
    /**
     * session
     */
    private Session session;
    /**
     * <beforeInit>
     *
     * @throws
     */
    public static void beforeInit() {
        // 在socket配置类中调用此方法可以完成一些需要初始化注入的操作
    }
    @OnOpen
    public void onOpen(Session session) {
        logger.info("连接开启...");
        this.session = session;
    }
    @OnMessage
    public void onMessage(String message, Session session) {
        // 提取数据
        dealData(message);
    }
    @Async
    void dealData(String message) {
        comPropertyAlarmDao = SpringUtil.getBean(ComPropertyAlarmDao.class);
        DeviceDto deviceInfo = JSONObject.parseObject(message, DeviceDto.class);
        if (deviceInfo.getCallstatus().equals("RINGING")) {
            logger.info("收到设备报警信息:{}", message);
            ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm();
            comPropertyAlarm.setSerialNo(deviceInfo.getCallid());
            comPropertyAlarm.setStatus(1);
            comPropertyAlarm.setCreateTime(new Date());
            comPropertyAlarmDao.insert(comPropertyAlarm);
        }
    }
    @OnClose
    public void onClose() {
        logger.info("长连接关闭...");
    }
    @OnError
    public void onError(Session session, Throwable t) {
        logger.error("error, cause: ", t);
    }
    /**
     * <异步发送message>
     *
     * @param message
     *            message @throws
     */
    public void send(String message) {
        this.session.getAsyncRemote().sendText(message);
    }
    /**
     * <发送message>
     *
     * @param message
     *            message @throws
     */
    public void sendMessage(String message) {
        try {
            session.getBasicRemote().sendText(message);
        } catch (IOException ex) {
            logger.error("error, cause: ", ex);
        }
    }
    /**
     * <关闭连接>
     *
     * @throws
     */
    public void close() throws IOException {
        if (this.session.isOpen()) {
            this.session.close();
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketConfig.java
New file
@@ -0,0 +1,136 @@
package com.panzhihua.service_property.config;
import java.net.URI;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import javax.websocket.ContainerProvider;
import javax.websocket.WebSocketContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
/**
 * 应用模块名称
 * <p>
 * 一键报警websocket 配置 代码描述
 * <p>
 * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
 * <p>
 * Company: 成都呐喊信息技术有限公司
 * <p>
 *
 * @author manailin
 * @since 2021/9/27 16:31
 */
@Configuration
@Order(1)
public class WebSocketConfig implements ApplicationRunner {
    private static final Logger logger = LoggerFactory.getLogger(WebSocketConfig.class);
    private static Boolean isOk;
    private static WebSocketContainer container = ContainerProvider.getWebSocketContainer();
    private WebSocketClient client;
    /**
     * 定义定时任务线程
     */
    private ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
    @Value("${websocket.uri}")
    private String uri;
    @Value("${websocket.ip}")
    private String ip;
    /**
     * <run>
     *
     * @param args
     *            args @throws
     */
    @Override
    public void run(ApplicationArguments args) throws Exception {
        logger.info("[WebSocketConfig] web socket init start.");
        // websocket客户端初始化
        wsClientInit();
    }
    /**
     * <websocket客户端初始化>
     *
     * @throws
     */
    public void wsClientInit() {
        logger.info("[WebSocketConfig] start to wsClientInit");
        try {
            client = new WebSocketClient();
            WebSocketClient.beforeInit();
            container.connectToServer(client, new URI(uri));
            isOk = true;
        } catch (Exception e) {
            isOk = false;
            logger.error("error, cause: ", e);
        }
        /**
         * 参数:1、任务体 2、首次执行的延时时间 3、任务执行间隔 4、间隔时间单位
         **/
        scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
            @Override
            public void run() {
                // 心跳检测 断线重连
                heartbeatCheck();
            }
        }, 1, 30, TimeUnit.SECONDS);
        logger.info("[WebSocketConfig] end to wsClientInit");
    }
    /**
     * <心跳检测 断线重连>
     *
     *
     */
    private void heartbeatCheck() {
        logger.info("[WebSocketConfig] start to heartbeatCheck");
        if (isOk != null && isOk) {
            try {
                client.send("ping " + ip);
            } catch (Exception e) {
                isOk = false;
            }
        } else {
            // 系统连接失败进行重试
            logger.warn("系统连接失败,正在重连...");
            try {
                client.send("ping " + ip);
                logger.warn("系统重连成功!");
                isOk = true;
            } catch (Exception e) {
                try {
                    client = new WebSocketClient();
                    container.connectToServer(client, new URI(uri));
                    isOk = true;
                } catch (Exception e1) {
                    isOk = false;
                }
                if (isOk != null && isOk) {
                    logger.warn("系统重连成功!");
                }
            }
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/CallForward.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/CallForwardDto.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/CustomBtn.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceDto.java
New file
@@ -0,0 +1,33 @@
package com.panzhihua.service_property.dto;
import lombok.Data;
/**
 * 应用模块名称
 * <p>
 * 一键报警设备消息 代码描述
 * <p>
 * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
 * <p>
 * Company: 成都呐喊信息技术有限公司
 * <p>
 *
 * @author manailin
 * @since 2021/9/27 16:31
 */
@Data
public class DeviceDto {
    /** 呼叫状态 */
    private String callstatus;
    /** 指令 */
    private String cmd;
    /** 状态 */
    private String status;
    /** 呼叫人员ID */
    private String userid;
    /** 呼叫iD */
    private String callid;
    /** 呼叫时间 */
    private String _ts;
}
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceInfoDto.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/TaskDetail.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/TaskInfo.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/listener/OrderListener.java
File was deleted
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/bootstrap.yml
@@ -1,25 +1,6 @@
spring:
  application:
    name: property
  kafka:
    bootstrap-servers: 182.151.37.143:9092 #kafka地址
    consumer:
      group-id: order-consumer
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer #kafkaTemplate.send()方法参数类型
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      auto-offset-reset: earliest
      security:
        protocol: PLAINTEXT
    producer:
      batch-size: 16384
      buffer-memory: 33554432
      retries: 0
      key-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      value-deserializer: org.apache.kafka.common.serialization.StringDeserializer
      properties:
        linger.ms: 1
      security:
        protocol: PLAINTEXT
  cloud:
    config:
      discovery:
@@ -39,7 +20,6 @@
  client:
    service-url:
      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
#实体加密、解密、字段脱敏拦截设置
domain:
@@ -62,9 +42,7 @@
    tags:
      application: property
# kafka自定义消息发送配置
kafka:
  topic:
    kafka-demo-topic: Task_Info
    kafka-demo-key: order-key
    autoCreate: false
#从一键报警设备websocket订阅时间消息配置
websocket:
  uri: ws://182.151.37.143:8086/status
  ip:  182.151.37.143
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java
@@ -4,6 +4,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_user.model.dos.SysRoleMenuDO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -12,4 +15,12 @@
 * @create: 2020-12-25 09:51
 **/
@Mapper
public interface SysRoleMenuDAO extends BaseMapper<SysRoleMenuDO> {}
public interface SysRoleMenuDAO extends BaseMapper<SysRoleMenuDO> {
    /**
     * 批量插入角色菜单关系
     * @param menuIds
     * @param roleId
     * @return
     */
    int batchInsertWithRoleId(@Param("menuIds") List<Long> menuIds, @Param("roleId") Long roleId);
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -3,7 +3,6 @@
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import java.time.Instant;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
@@ -1203,19 +1202,28 @@
        // 获取所有权限id
        List<SysMenuDO> menuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
            .eq(SysMenuDO::getCommunityId, 2l).orderByAsc(SysMenuDO::getOrderNum));
            .eq(SysMenuDO::getCommunityId, 2L).orderByAsc(SysMenuDO::getOrderNum));
        if (!menuDOList.isEmpty()) {
            menuIds = menuDOList.stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList());
            for (int i = 0; i < menuIds.size(); i++) {
                SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda()
                    .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId));
                if (sysRoleMenuDO == null) {
                    sysRoleMenuDO = new SysRoleMenuDO();
                    sysRoleMenuDO.setMenuId(menuIds.get(i));
                    sysRoleMenuDO.setRoleId(roleId);
                    sysRoleMenuDAO.insert(sysRoleMenuDO);
                }
            List<SysRoleMenuDO> sysRoleMenuDOList = sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId).in(SysRoleMenuDO::getMenuId, menuIds));
            if (!sysRoleMenuDOList.isEmpty()) {
                menuIds = menuIds.stream().filter(menuId -> !sysRoleMenuDOList.stream()
                        .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList());
            }
            if (!menuIds.isEmpty()) {
                sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId);
            }
//            for (int i = 0; i < menuIds.size(); i++) {
//                SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda()
//                    .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId));
//                if (sysRoleMenuDO == null) {
//                    sysRoleMenuDO = new SysRoleMenuDO();
//                    sysRoleMenuDO.setMenuId(menuIds.get(i));
//                    sysRoleMenuDO.setRoleId(roleId);
//                    sysRoleMenuDAO.insert(sysRoleMenuDO);
//                }
//            }
        }
        return R.ok();
    }
@@ -2168,7 +2176,6 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addGridUser(EventGridMemberAddDTO eventGridMemberAddDTO) {
        //todo 网格
        SysRoleDO gridMemberDefaultRole = roleDAO.selectOne(
            new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, Constants.GRID_DEFAULT_ROLE_KEY));
        if (gridMemberDefaultRole == null) {
@@ -2591,41 +2598,17 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R addConvenientMerchantUser(ConvenientMerchantDTO convenientMerchantDTO) {
        // todo 便民
        log.error("catTimeStamp进入addConvenientMerchantUser", Instant.now().toEpochMilli());
        SysUserDO sysUserDO = new SysUserDO();
        Long communityId = 0L;
        // 新增社区高级管理员角色
        SysRoleDO sysRoleDO = new SysRoleDO();
        sysRoleDO.setCommunityId(communityId);
        sysRoleDO.setRoleName(convenientMerchantDTO.getName());
        sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount());
        sysRoleDO.setRoleSort(0);
        sysRoleDO.setCreateBy(convenientMerchantDTO.getCreatedBy());
        try {
            int insert = roleDAO.insert(sysRoleDO);
            if (insert != 1) {
                return R.fail("网络错误");
            }
        } catch (Exception e) {
            log.error("新增角色报错【{}】", e.getMessage());
            if (e.getMessage().contains("unique_role_name_community_id")) {
                return R.fail("商家名称已被占用");
            } else {
                return R.fail("建立商家角色失败,商家名称可能已被占用!");
            }
        SysUserDO sysUserDO;
        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, convenientMerchantDTO.getAccount()));
        if (nonNull(sysUserDO)) {
            return R.fail("账户已经存在");
        }
        log.error("catTimeStamp-SysRoleDO创建完成", Instant.now().toEpochMilli());
        // 新角色设置所有权限
        MenuRoleVO menuRoleVO = new MenuRoleVO();
        menuRoleVO.setIsAll(1);
        menuRoleVO.setCommunityId(communityId);
        menuRoleVO.setRoleId(sysRoleDO.getRoleId());
        this.putMenuRole(menuRoleVO);
        log.error("catTimeStamp-MenuRoleVO创建完成", Instant.now().toEpochMilli());
        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, convenientMerchantDTO.getPhone()));
        if (nonNull(sysUserDO)) {
            return R.fail("手机号已经存在");
        }
        // sys_user 表
        sysUserDO = new SysUserDO();
        String encode = new BCryptPasswordEncoder().encode(convenientMerchantDTO.getPassword());
        BeanUtils.copyProperties(convenientMerchantDTO, sysUserDO);
        sysUserDO.setAccount(convenientMerchantDTO.getAccount());
@@ -2637,17 +2620,10 @@
        sysUserDO.setPassword(encode);
        try {
            userDao.insert(sysUserDO);
            log.error("catTimeStamp-sysUserDO创建完成", Instant.now().toEpochMilli());
            return R.ok(sysUserDO.getUserId());
        } catch (Exception e) {
            e.printStackTrace();
            log.error("新增后台用户报错【{}】", e.getMessage());
            roleDAO.deleteByRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + convenientMerchantDTO.getAccount());
            if (e.getMessage().contains("union_phone_type")) {
                return R.fail("手机号已经存在");
            } else if (e.getMessage().contains("union_account_type")) {
                return R.fail("账户已经存在");
            }
        }
        return R.fail("新增商户发生错误");
    }
@@ -2664,20 +2640,37 @@
        if (isNull(sysUserDO)) {
            return R.fail("用户不存在");
        }
        String oldAccount = sysUserDO.getAccount();
        sysUserDO.setAccount(account);
        int result = userDao.updateById(sysUserDO);
        if (result > 0) {
            SysRoleDO sysRoleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>()
                    .lambda().eq(SysRoleDO::getRoleKey, Constants.CONVENIENT_MERCHANT_ROLE_KEY + oldAccount));
            if (nonNull(sysRoleDO)) {
                sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + account);
                roleDAO.updateById(sysRoleDO);
            }
        }
        userDao.updateById(sysUserDO);
        return R.ok();
    }
    // /**
    //  * 修改便民服务商家绑定账号
    //  * @param userId 用户id
    //  * @param account 修改账户
    //  * @return 修改结果
    //  */
    // @Override
    // public R putUserAccount(Long userId, String account) {
    //     SysUserDO sysUserDO = userDao.selectById(userId);
    //     if (isNull(sysUserDO)) {
    //         return R.fail("用户不存在");
    //     }
    //     String oldAccount = sysUserDO.getAccount();
    //     sysUserDO.setAccount(account);
    //     int result = userDao.updateById(sysUserDO);
    //     if (result > 0) {
    //         SysRoleDO sysRoleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>()
    //                 .lambda().eq(SysRoleDO::getRoleKey, Constants.CONVENIENT_MERCHANT_ROLE_KEY + oldAccount));
    //         if (nonNull(sysRoleDO)) {
    //             sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + account);
    //             roleDAO.updateById(sysRoleDO);
    //         }
    //     }
    //     return R.ok();
    // }
    @Override
    public R disableOrEnableMerchantUsers(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
        userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getUserIds());
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.xml
@@ -9,6 +9,11 @@
    <sql id="columns">
        `role_id`,`menu_id`
    </sql>
    <insert id="batchInsertWithRoleId">
        INSERT INTO `sys_role_menu`(role_id,menu_id)
        VALUES
        <foreach collection="menuIds" item="item" index="index" separator="," >
            (#{roleId}, #{item})
        </foreach>
    </insert>
</mapper>