Merge remote-tracking branch 'origin/test' into test
| | |
| | | |
| | | @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸认证 3.线下认证)") |
| | | private String authMethod; |
| | | |
| | | private String idCard; |
| | | } |
| | |
| | | private String idCard; |
| | | |
| | | @ApiModelProperty("咨询电话") |
| | | @Pattern(groups = {AddGroup.class}, message = "咨询电话格式错误", regexp = "(1[3|4|5|7|8][0-9]\\d{8})|(\\d{3}-\\d{8}|\\d{4}-\\d{7})") |
| | | @Pattern(groups = {AddGroup.class}, message = "咨询电话格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$") |
| | | private String phone; |
| | | |
| | | @ApiModelProperty("商家地址") |
| | |
| | | private Integer businessStatus; |
| | | |
| | | @ApiModelProperty("管理账号") |
| | | @Pattern(groups = {AddGroup.class}, message = "请输入6-10位管理账号,由英文或数字组成", regexp = "^[0-9A-Za-z]{6,10}$") |
| | | @NotBlank(groups = {AddGroup.class}, message = "管理账号不能为空") |
| | | private String account; |
| | | |
| | | @ApiModelProperty("登陆密码") |
| | | // @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成", |
| | | // regexp = "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,12}$") |
| | | @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成", |
| | | regexp = "^(?=.*[A-Za-z])(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s).{8,}$") |
| | | regexp = "^(?=.*[A-Za-z])(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s).{8,12}$") |
| | | private String password; |
| | | |
| | | @ApiModelProperty(value = "所属社区id") |
| | |
| | | |
| | | @ApiModelProperty(value = "处理人", hidden = true) |
| | | private Long updatedBy; |
| | | |
| | | @ApiModelProperty(value = "被禁用商家关联用户id", hidden = true) |
| | | private List<Long> userIds; |
| | | } |
| | |
| | | @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件", hidden = false, example = "1") |
| | | // @NotNull(message = "事件分类不能为空") |
| | | private Integer eventType; |
| | | @ApiModelProperty(value = "事件类型") |
| | | private String eventClazz; |
| | | @Max(127) |
| | | @ApiModelProperty(value = "危险级别", hidden = false, example = "1") |
| | | private Integer dangerLevel; |
| | |
| | | |
| | | @ApiModelProperty("新密码") |
| | | @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成", |
| | | regexp = "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,12}$") |
| | | regexp = "^(?=.*[A-Za-z])(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s).{8,12}$") |
| | | private String newPassword; |
| | | } |
| | |
| | | |
| | | @ApiModelProperty("浏览量") |
| | | private Integer viewNum; |
| | | |
| | | public void setOnShelf(Boolean onShelf) { |
| | | this.onShelf = onShelf ? 1 : 0; |
| | | } |
| | | } |
| | |
| | | AreaAddressVO getAreaAddress(@Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode, |
| | | @Param("districtCode") String districtCode); |
| | | |
| | | @Select("select count(id) as populationTotal " |
| | | @Select("select count(cmpct.id) as populationTotal " |
| | | + ",(select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = #{communityId} and cmp.out_or_local = 1) as localTotal " |
| | | + ",(select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = #{communityId} and cmp.out_or_local = 2) as outTotal " |
| | | + ",(select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = #{communityId} and IFNULL(cmpct.label,'') != '') as specialTotal " |
| | |
| | | + ",(select count(id) from com_mng_population_community_tags where community_id = #{communityId} and label LIKE CONCAT('%','退役军人','%')) as veteransTotal " |
| | | + ",(select count(id) from com_mng_population_community_tags where community_id = #{communityId} and label LIKE CONCAT('%','残疾人','%')) as disabilityTotal " |
| | | + ",(select count(id) from com_mng_population_community_tags where community_id = #{communityId} and label LIKE CONCAT('%','低保户','%')) as lowSecurityTotal " |
| | | + " from com_mng_population_community_tags as cmpct where community_id = #{communityId}") |
| | | + " from com_mng_population_community_tags as cmpct inner join com_mng_population as cmp on cmp.id = cmpct.population_id where community_id = #{communityId}") |
| | | ComMngPopulationTotalVO getPopulationTotalByAdmin(@Param("communityId") Long communityId); |
| | | |
| | | @Select("select count(id) as populationTotal," + |
| | |
| | | + "</foreach>" + " </script>") |
| | | Integer getPopulationVisitingCount(@Param("ids") List<Long> ids); |
| | | |
| | | /** |
| | | * 综治后台删除居民,并清理人口与社区绑定关系 |
| | | * @param ids 需要删除的人口id集合 |
| | | */ |
| | | void deletePopulaitonRelation(@Param("ids") List<Long> ids); |
| | | |
| | | @Select("<script> " + "SELECT " + " cmp.id, " + " cmp.`name`, " + " cmp.card_no as idCard, " |
| | | + " cmpct.label, " + " cmp.sex, " + " IFNULL( cmp.phone, '暂无' ) as phone, " + " cmp.address, " |
| | | + " cmp.political_outlook " + " FROM " |
| | |
| | | } |
| | | page.setSize(pageSize); |
| | | page.setCurrent(pageNum); |
| | | |
| | | try { |
| | | //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录 |
| | | String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey); |
| | | pageElderAuthRecordsDTO.setIdCard(idCard); |
| | | }catch (Exception e){ |
| | | log.error("查询高龄认证记录转换身份证号失败"); |
| | | } |
| | | |
| | | IPage<ComElderAuthRecordVO> iPage = comElderAuthRecordsDAO.pageElderAuthRecords(page, pageElderAuthRecordsDTO); |
| | | if (!iPage.getRecords().isEmpty()) { |
| | | iPage.getRecords().forEach(comElderAuthRecordVO -> { |
| | |
| | | } |
| | | // 查询该房屋的住户信息 |
| | | List<PopulationListVO> populationList = |
| | | this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(), null, 1); |
| | | this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(), null, null); |
| | | if (!populationList.isEmpty()) { |
| | | populationList.forEach(population -> { |
| | | try { |
| | |
| | | return R.fail("您选择的数据中存在被引用的,无法删除"); |
| | | } |
| | | this.baseMapper.deleteBatchIds(ids); |
| | | //删除人口并删除人口和社区关联关系 |
| | | this.baseMapper.deletePopulaitonRelation(ids); |
| | | return R.ok("删除成功"); |
| | | } |
| | | |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | import com.panzhihua.common.model.vos.community.convenient.ConvenientProductSpecificationVO; |
| | | import com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO; |
| | | import com.panzhihua.common.model.vos.community.convenient.ConvenientViewStatisticsVO; |
| | | import com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO; |
| | | import com.panzhihua.common.service.user.UserService; |
| | | import com.panzhihua.service_community.dao.ComActDAO; |
| | | import com.panzhihua.service_community.dao.ConvenientConsultationStatisticsDAO; |
| | |
| | | }); |
| | | } |
| | | BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO); |
| | | convenientMerchantDO.setIntroduction(convenientMerchantDTO.getIntroduction()); |
| | | this.baseMapper.updateById(convenientMerchantDO); |
| | | return R.ok(); |
| | | } |
| | |
| | | |
| | | @Override |
| | | public R disableOrEnableMerchant(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) { |
| | | List<ConvenientMerchantDO> convenientMerchantDOList = this.baseMapper.selectList(new QueryWrapper<ConvenientMerchantDO>() |
| | | .lambda().in(ConvenientMerchantDO::getId, disableOrEnableConvenientMerchantDTO.getIds())); |
| | | List<Long> userIds = convenientMerchantDOList.stream().map(ConvenientMerchantDO::getUserId).collect(Collectors.toList()); |
| | | disableOrEnableConvenientMerchantDTO.setUserIds(userIds); |
| | | R result = userService.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO); |
| | | if (R.isOk(result)) { |
| | | return R.ok(); |
| | |
| | | SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String moth = mothFormat.format(nowDate); |
| | | String day = dayFormat.format(nowDate); |
| | | int consultationCount = convenientConsultationStatisticsDAO.selectCount(new QueryWrapper<ConvenientConsultationStatisticsDO>() |
| | | .lambda().eq(ConvenientConsultationStatisticsDO::getMerchantId, merchantId)); |
| | | int monthConsultationVolume = convenientConsultationStatisticsDAO.selectMonthConsultationVolume(merchantId, moth); |
| | | int dayConsultationVolume = convenientConsultationStatisticsDAO.selectDayConsultationVolume(merchantId, day); |
| | | Integer viewCount = convenientViewStatisticsDAO.selectCount(new QueryWrapper<ConvenientViewStatisticsDO>() |
| | | .lambda().eq(ConvenientViewStatisticsDO::getMerchantId, merchantId)); |
| | | int monthViewNum = convenientViewStatisticsDAO.selectMonthViewNum(merchantId, moth); |
| | | int dayViewNum = convenientViewStatisticsDAO.selectDayViewNum(merchantId, day); |
| | | convenientMerchantVO.setConsultationVolume(consultationCount); |
| | | convenientMerchantVO.setViewNum(viewCount); |
| | | convenientMerchantVO.setMonthConsultationVolume(monthConsultationVolume); |
| | | convenientMerchantVO.setDayConsultationVolume(dayConsultationVolume); |
| | | convenientMerchantVO.setMonthViewNum(monthViewNum); |
| | |
| | | </resultMap> |
| | | |
| | | <select id="pageList" resultType="com.panzhihua.common.model.vos.community.ComActCommiteeVO"> |
| | | select t.*,t1.account,t1.password,t2.name as areaName,t3.role_id as roleId from com_act_committee t |
| | | select t.*,t1.account,t1.password,t2.address as areaName,t3.role_id as roleId from com_act_committee t |
| | | left join sys_user t1 on t.user_id = t1.user_id |
| | | left join com_mng_village t2 on t.area_id = t2.village_id |
| | | left join sys_user_role t3 on t.user_id = t3.user_id |
| | |
| | | and t.position like concat(#{commonPage.position},'%') |
| | | </if> |
| | | <if test="commonPage.keyword !=null and commonPage.keyword !=''"> |
| | | and (t1.name like concat(#{commonPage.keyword},'%') or t1.phone like concat(#{commonPage.keyword},'%') or t.jurisdiction_content like concat(#{commonPage.keyword},'%')) |
| | | and (t1.name like concat(#{commonPage.keyword},'%') or t1.phone like concat(#{commonPage.keyword},'%') or t.jurisdiction_content like concat('%',#{commonPage.keyword},'%')) |
| | | </if> |
| | | <if test="commonPage.status !=null"> |
| | | and t1.status =#{commonPage.status} |
| | |
| | | </if> |
| | | <if test="pageElderAuthRecordsDTO.searchKey != null and pageElderAuthRecordsDTO.searchKey != ''"> |
| | | and (ceae.`name` like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%') |
| | | or cear.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%')) |
| | | or cear.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%') |
| | | or ceae.id_card = #{pageElderAuthRecordsDTO.idCard}) |
| | | </if> |
| | | order by cear.create_at desc |
| | | </select> |
| | |
| | | select t.village_id as villageId,concat(t.alley,t.house_num,'号') as villageName,t1.id,concat(t1.unit_no,'栋',t1.floor,'单元',t1.code,'号') as name from com_mng_village t left join com_mng_population_house t1 on t.village_id = t1.village_id where t.community_id=#{communityId} and t1.id is not null |
| | | </select> |
| | | |
| | | <delete id="deletePopulaitonRelation"> |
| | | delete from com_mng_population_community_tags where population_id in |
| | | <foreach item="item" collection="ids" separator="," open="(" close=")" index=""> |
| | | #{item} |
| | | </foreach> |
| | | </delete> |
| | | |
| | | </mapper> |
| | |
| | | </resultMap> |
| | | |
| | | <select id="pageList" resultType="com.panzhihua.common.model.vos.community.ComPropertyVO"> |
| | | select t.*,t1.account,t1.password,t2.name as areaName,t3.role_id as roleId from com_property t |
| | | select t.*,t1.account,t1.password,t2.address as areaName,t3.role_id as roleId from com_property t |
| | | left join sys_user t1 on t.user_id = t1.user_id |
| | | left join com_mng_village t2 on t.area_id = t2.village_id |
| | | left join sys_user_role t3 on t.user_id = t3.user_id |
| | |
| | | AND ccm.business_status = #{pageConvenientMerchantDTO.businessStatus} |
| | | </if> |
| | | <if test="pageConvenientMerchantDTO.keyword != null and pageConvenientMerchantDTO.keyword != """> |
| | | AND ccm.name LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%') |
| | | AND ccm.address LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%') |
| | | AND ccm.phone LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%') |
| | | AND ( |
| | | ccm.name LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%') |
| | | OR ccm.address LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%') |
| | | OR ccm.phone LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%') |
| | | ) |
| | | </if> |
| | | GROUP BY ccm.id |
| | | </select> |
| | |
| | | FROM com_convenient_merchants ccm |
| | | LEFT JOIN com_convenient_consultation_statistics cccs ON ccm.id = cccs.merchant_id |
| | | LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id |
| | | WHERE ccm.community_id = #{communityId} AND (cccs.statistic_date LIKE #{currentMon} OR cccs.statistic_date IS NULL) GROUP BY cccs.id |
| | | WHERE ccm.community_id = #{communityId} AND ccm.business_status = 1 AND (cccs.statistic_date LIKE #{currentMon} OR cccs.statistic_date IS NULL) GROUP BY cccs.id |
| | | ) temp GROUP BY temp.id ORDER BY SUM(temp.consultation_volume) DESC |
| | | </select> |
| | | <select id="getClassifyMerchants" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO"> |
| | |
| | | FROM com_convenient_merchants ccm |
| | | LEFT JOIN com_convenient_consultation_statistics cccs ON ccm.id = cccs.merchant_id |
| | | LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id |
| | | WHERE ccm.community_id = #{pageClassifyMerchantDTO.communityId} AND ccss.service_category_id = #{pageClassifyMerchantDTO.serviceId} |
| | | WHERE ccm.community_id = #{pageClassifyMerchantDTO.communityId} AND ccm.business_status = 1 AND ccss.service_category_id = #{pageClassifyMerchantDTO.serviceId} |
| | | AND (cccs.statistic_date LIKE #{currentMon} OR cccs.statistic_date IS NULL) GROUP BY cccs.id |
| | | ) temp GROUP BY temp.id ORDER BY SUM(temp.consultation_volume) DESC |
| | | </select> |
| | |
| | | ccm.id, ccm.name, ccm.introduction, ccm.logo, ccm.phone, ccm.begin_at, ccm.end_at, ccm.period, |
| | | ccm.address, ccm.lat, ccm.lon, cccs.consultation_volume,GROUP_CONCAT(ccss.service_name) AS serviceScope |
| | | FROM com_convenient_merchants ccm |
| | | INNER JOIN com_convenient_consultation_statistics cccs ON ccm.id = cccs.merchant_id |
| | | LEFT JOIN com_convenient_consultation_statistics cccs ON ccm.id = cccs.merchant_id |
| | | LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id |
| | | WHERE ccm.id = #{merchantId} AND (cccs.statistic_date LIKE #{currentMon} OR cccs.statistic_date IS NULL) GROUP BY cccs.id |
| | | ) temp GROUP BY temp.id ORDER BY SUM(temp.consultation_volume) DESC |
| | |
| | | FROM com_convenient_merchants ccm |
| | | INNER JOIN com_convenient_consultation_statistics cccs ON ccm.id = cccs.merchant_id |
| | | LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id |
| | | WHERE ccm.community_id = #{pageSearchDTO.communityId} AND ccm.`name` LIKE CONCAT('%', #{pageSearchDTO.keyword}, '%') |
| | | WHERE ccm.community_id = #{pageSearchDTO.communityId} AND ccm.business_status = 1 AND ccm.`name` LIKE CONCAT('%', #{pageSearchDTO.keyword}, '%') |
| | | AND ccm.is_del = 0 AND (cccs.statistic_date LIKE #{currentMon} OR cccs.statistic_date IS NULL) GROUP BY cccs.id |
| | | ) temp GROUP BY temp.id ORDER BY SUM(temp.consultation_volume) DESC |
| | | </select> |
| | |
| | | AND ccm.business_status = #{exportMerchantDTO.businessStatus} |
| | | </if> |
| | | <if test="exportMerchantDTO.keyword != null and exportMerchantDTO.keyword != """> |
| | | AND ccm.name LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%') |
| | | AND ccm.address LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%') |
| | | AND ccm.phone LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%') |
| | | AND ( |
| | | ccm.name LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%') |
| | | OR ccm.address LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%') |
| | | OR ccm.phone LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%') |
| | | ) |
| | | </if> |
| | | GROUP BY ccm.id |
| | | </select> |
| | |
| | | SELECT ccp.id,ccp.`name`,ccp.category_id,ccp.merchant_id,ccp.introduction |
| | | FROM com_convenient_products ccp |
| | | LEFT JOIN com_convenient_merchants ccm ON ccp.merchant_id = ccm.id |
| | | WHERE ccm.community_id = #{pageSearchDTO.communityId} AND ccp.`name` LIKE CONCAT('%', #{pageSearchDTO.keyword}, '%') |
| | | INNER JOIN com_convenient_product_specifications ccps ON ccp.id = ccps.product_id |
| | | WHERE ccm.community_id = #{pageSearchDTO.communityId} AND ccp.is_del = 0 |
| | | AND ccp.on_shelf = 1 AND ccps.is_del = 0 AND ccp.`name` LIKE CONCAT('%', #{pageSearchDTO.keyword}, '%') GROUP BY ccp.id |
| | | </select> |
| | | </mapper> |
| | |
| | | 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} 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 |
| | | </select> |
| | | </mapper> |
| | |
| | | <if test="pageEventManageDTO.yellowCard!=null"> |
| | | AND e.yellow_card = #{pageEventManageDTO.yellowCard} |
| | | </if> |
| | | <if test="pageEventManageDTO.eventClazz != null and pageEventManageDTO.eventClazz != """> |
| | | AND e.event_clazz like concat('%',#{pageEventDTO.eventClazz},'%') |
| | | </if> |
| | | <if test="pageEventManageDTO.urgent!=null"> |
| | | AND e.urgent = #{pageEventManageDTO.urgent} |
| | | </if> |
| | |
| | | <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> |
| | | </dependency> |
| | | </dependencies> |
| | | |
| | | |
New file |
| | |
| | | package com.panzhihua.service_property.config; |
| | | |
| | | import org.apache.kafka.clients.admin.NewTopic; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.kafka.annotation.EnableKafka; |
| | | import org.springframework.kafka.config.TopicBuilder; |
| | | |
| | | /** |
| | | * @author manailin |
| | | * @version 1.0 |
| | | * @description kafka配置类 开启Kafka监听器标注的端点 |
| | | * @date 2021/9/26 15:33 |
| | | */ |
| | | @Configuration |
| | | @EnableKafka |
| | | public class KafkaConfig { |
| | | |
| | | @Value("${kafka.topic.kafka-demo-topic}") |
| | | private String orderTopic; |
| | | |
| | | /** 条件匹配,如果配置kafka.topic.autoCreate=true的话,该配置类生效,反之则无效 */ |
| | | @Bean |
| | | @ConditionalOnProperty(name = "kafka.topic.autoCreate", havingValue = "true") |
| | | public NewTopic orderTopic() { |
| | | return TopicBuilder.name(orderTopic).build(); |
| | | } |
| | | |
| | | } |
New file |
| | |
| | | package com.panzhihua.service_property.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 应用模块名称 |
| | | * <p> |
| | | * * 应用模块名称 |
| | | * <p> |
| | | * 订阅一键报警的设备信息主题返回的对象 代码描述 |
| | | * <p> |
| | | * Copyright; Copyright (C) 2021 XXX, Inc. All rights reserved. |
| | | * <p> |
| | | * Company; 成都呐喊信息技术有限公司 |
| | | * <p> |
| | | * |
| | | * @author manailin |
| | | * @since 2021/9/26 16;33 |
| | | */ |
| | | @Data |
| | | public class CallForward { |
| | | /** |
| | | * 呼叫转移记录GUID |
| | | */ |
| | | private String CallForwardId; |
| | | /** |
| | | * 呼叫者GUID |
| | | */ |
| | | private String Caller; |
| | | /** |
| | | * 呼叫顺序 |
| | | */ |
| | | private String Order; |
| | | /** |
| | | * 被呼叫者GUID |
| | | */ |
| | | private String Callee; |
| | | /** |
| | | * 预定的呼叫时间 |
| | | */ |
| | | private String CallDateTime; |
| | | /** |
| | | * 呼叫次数 |
| | | */ |
| | | private String CallNums; |
| | | /** |
| | | * 呼叫持续时间 |
| | | */ |
| | | private String CallSeconds; |
| | | /** |
| | | * 呼叫策略 |
| | | */ |
| | | private String CallStrate; |
| | | /** |
| | | * 策略名称 |
| | | */ |
| | | private String ProName; |
| | | /** |
| | | * 是否自动接听 |
| | | */ |
| | | private String AutoAnswer; |
| | | /** |
| | | * 呼叫等待mp3文件id |
| | | */ |
| | | private String WaitMp3Id; |
| | | /** |
| | | * 呼叫应答mp3文件id |
| | | */ |
| | | private String CallMp3Id; |
| | | } |
New file |
| | |
| | | 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/26 16:23 |
| | | */ |
| | | @Data |
| | | public class CallForwardDto { |
| | | |
| | | private String CallForwardId; |
| | | /** 呼叫转移记录GUID */ |
| | | private String Caller; |
| | | /** 呼叫者GUID */ |
| | | private String Order; |
| | | /** 呼叫顺序 */ |
| | | private String Callee; |
| | | /** 被呼叫者GUID */ |
| | | private String CallDateTime; |
| | | /** 预定的呼叫时间 */ |
| | | private String CallNums; |
| | | /** 呼叫次数 */ |
| | | private String CallSeconds; |
| | | /** 呼叫持续时间 */ |
| | | private String CallStratus; |
| | | /** 呼叫策略 */ |
| | | private String ProName; |
| | | /** 策略名称 */ |
| | | private String AutoAnswer; |
| | | /** 是否自动接听 */ |
| | | private String WaitMp3Id; |
| | | /** 呼叫等待mp3文件id */ |
| | | private String CallMp3Id; |
| | | /** 呼叫应答mp3文件id */ |
| | | } |
New file |
| | |
| | | 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/26 16:23 |
| | | */ |
| | | @Data |
| | | public class CustomBtn { |
| | | |
| | | /** |
| | | * 按键所属终端id |
| | | */ |
| | | private String TerminalId; |
| | | /** |
| | | * 按键编码 |
| | | */ |
| | | private String BtnCode; |
| | | /** |
| | | * 按键任务guid |
| | | */ |
| | | private String TskGuid; |
| | | /** |
| | | * 按键对应的响应终端id |
| | | */ |
| | | private String ResTerminalId; |
| | | /** |
| | | * 播放曲目文件id |
| | | */ |
| | | private String FileId; |
| | | /** |
| | | * 播放音量 |
| | | */ |
| | | private String SoundVol; |
| | | /** |
| | | * 灯光模式 |
| | | */ |
| | | private String LightMode; |
| | | /** |
| | | * 报警强切 |
| | | */ |
| | | private String CutAlarm; |
| | | /** |
| | | * 短路输出1 |
| | | */ |
| | | private String IoOut1; |
| | | /** |
| | | * 短路输出2 |
| | | */ |
| | | private String IoOut2; |
| | | /** |
| | | * 终端短路输出频率 |
| | | */ |
| | | private String IoOutFreQuency; |
| | | /** |
| | | * 终端短路输出持续时间 |
| | | */ |
| | | private String IoOutDuration; |
| | | } |
New file |
| | |
| | | package com.panzhihua.service_property.dto; |
| | | |
| | | import java.util.ArrayList; |
| | | |
| | | import lombok.*; |
| | | |
| | | /** |
| | | * 应用模块名称 |
| | | * <p> |
| | | * 订阅一键报警的设备信息主题返回的对象 代码描述 |
| | | * <p> |
| | | * Copyright;Copyright (C) 2021 XXX Inc. All rights reserved. |
| | | * <p> |
| | | * Company;成都呐喊信息技术有限公司 |
| | | * <p> |
| | | * |
| | | * @author manailin |
| | | * @since 2021/9/26 16:33 |
| | | */ |
| | | @Data |
| | | @Builder |
| | | @NoArgsConstructor |
| | | @AllArgsConstructor |
| | | @ToString |
| | | public class DeviceInfoDto { |
| | | |
| | | private String DeviceType; |
| | | /** |
| | | * 设备类型 |
| | | */ |
| | | private String DeviceName; |
| | | /** |
| | | * 设备用户名 |
| | | */ |
| | | private String DeviceNickName; |
| | | /** |
| | | * 设备用户昵称 |
| | | */ |
| | | private String DeviceGuid; |
| | | /** |
| | | * 设备GUID |
| | | */ |
| | | private String DevicePwd; |
| | | /** |
| | | * 设备用户密码 |
| | | */ |
| | | private String DeviceAreaId; |
| | | /** |
| | | * 用户所在分区GUID |
| | | */ |
| | | private String DeviceIp; |
| | | /** |
| | | * 设备IP |
| | | */ |
| | | private String DevicePriority; |
| | | /** |
| | | * 设备用户级别 |
| | | */ |
| | | private String DeviceStatus; |
| | | /** |
| | | * 设备用户状态 |
| | | */ |
| | | private String HasVid; |
| | | /** |
| | | * 有无视频 |
| | | */ |
| | | private String HasTalk; |
| | | /** |
| | | * 有无对讲 |
| | | */ |
| | | private String RtspUrl; |
| | | /** |
| | | * 关联rtsp相机流地址 |
| | | */ |
| | | private String IoInCnt; |
| | | /** |
| | | * IO输入口数量 |
| | | */ |
| | | private String IoIn1State; |
| | | /** |
| | | * IO输入口1状态 |
| | | */ |
| | | private String IoIn2State; |
| | | /** |
| | | * IO输入口2状态 |
| | | */ |
| | | private String IoIn3State; |
| | | /** |
| | | * IO输入口3状态 |
| | | */ |
| | | private String IoIn4State; |
| | | /** |
| | | * IO输入口4状态 |
| | | */ |
| | | private String IoIn5State; |
| | | /** |
| | | * IO输入口5状态 |
| | | */ |
| | | private String IoIn6State; |
| | | /** |
| | | * IO输入口6状态 |
| | | */ |
| | | private String IoIn2Tp; |
| | | /** |
| | | * 报警输入2类型 |
| | | */ |
| | | private String IoOutCnt; |
| | | /** |
| | | * IO输出口数量 |
| | | */ |
| | | private String IoOut1State; |
| | | /** |
| | | * IO输出口1状态 |
| | | */ |
| | | private String IoOut2State; |
| | | /** |
| | | * IO输出口2状态 |
| | | */ |
| | | private String IoOut3State; |
| | | /** |
| | | * IO输出口3状态 |
| | | */ |
| | | private String IoOut4State; |
| | | /** |
| | | * IO输出口4状态 |
| | | */ |
| | | private String IoOut5State; |
| | | /** |
| | | * IO输出口5状态 |
| | | */ |
| | | private String IoOut6State; |
| | | /** |
| | | * IO输出口6状态 |
| | | */ |
| | | private String PlayTalkVol; |
| | | /** |
| | | * 对讲的播放音量 |
| | | */ |
| | | private String PlayBcVol; |
| | | /** |
| | | * 广播的播放音量 |
| | | */ |
| | | private String PlayBellVol; |
| | | /** |
| | | * 铃声的播放音量 |
| | | */ |
| | | private String CollTalkVol; |
| | | /** |
| | | * 采集的对讲音量 |
| | | */ |
| | | private String CollWatchVol; |
| | | /** |
| | | * 采集的监视音量 |
| | | */ |
| | | private String DeviceSerialNumber; |
| | | /** |
| | | * 设备序列号 |
| | | */ |
| | | private String ManufactureDate; |
| | | /** |
| | | * 出厂日期 |
| | | */ |
| | | private String DbAlarm; |
| | | /** |
| | | * 喧哗报警阈值 |
| | | */ |
| | | private String Model; |
| | | /** |
| | | * 设备模式 |
| | | */ |
| | | private String MoDet1; |
| | | /** |
| | | * 设备模式 |
| | | */ |
| | | private String MoDet2; |
| | | /** |
| | | * 设备模式 |
| | | */ |
| | | private String DeamonTime; |
| | | /** |
| | | * ARM守护程序发布时间 |
| | | */ |
| | | private String CompileTime; |
| | | /** |
| | | * ARM主程序发布时间 |
| | | */ |
| | | private String DeviceAbility; |
| | | /** |
| | | * 设备功能 |
| | | */ |
| | | private String DeviceCode; |
| | | /** |
| | | * 设备编码 |
| | | */ |
| | | private String DeviceDesc; |
| | | /** |
| | | * 设备描述 |
| | | */ |
| | | private String DeviceToken; |
| | | /** |
| | | * 加密狗id |
| | | */ |
| | | private String TimeStamp; |
| | | /** |
| | | * 当前时间戳 |
| | | */ |
| | | private String DeviceVer; |
| | | /** |
| | | * 设备版本 |
| | | */ |
| | | private String CurrentTaskGuid; |
| | | /** |
| | | * 当前执行的任务guid |
| | | */ |
| | | private String CurrentSoundSrc; |
| | | /** |
| | | * 当前音源 |
| | | */ |
| | | private String SipUsr; |
| | | /** |
| | | * sip账号 |
| | | */ |
| | | private String SipPwd; |
| | | /** |
| | | * sip密码 |
| | | */ |
| | | private String ProtocalType; |
| | | /** |
| | | * 协议类型 1:私有协议 2:sip协议 3:都有 |
| | | */ |
| | | private String TaskStatus; |
| | | /** |
| | | * 任务状态 |
| | | */ |
| | | private String CtlType; |
| | | /** |
| | | * 更改类型 1 添加 2 更新 3 删除 4权限改变 |
| | | */ |
| | | private String ReservedField1; |
| | | /** |
| | | * 扩展字段1 |
| | | */ |
| | | private String ReservedField2; |
| | | /** |
| | | * 扩展字段2 |
| | | */ |
| | | private String ReservedField3; |
| | | /** |
| | | * 扩展字段3 |
| | | */ |
| | | |
| | | private ArrayList<CallForwardDto> CallForwardList; |
| | | |
| | | private ArrayList<CustomBtn> customBtns; |
| | | } |
New file |
| | |
| | | package com.panzhihua.service_property.dto; |
| | | |
| | | import java.util.ArrayList; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 应用模块名称 |
| | | * <p> |
| | | * 一键报警kafka 订阅主题 任务消息对象 代码描述 |
| | | * <p> |
| | | * Copyright;Copyright (C) 2021 XXX Inc. All rights reserved. |
| | | * <p> |
| | | * Company;成都呐喊信息技术有限公司 |
| | | * <p> |
| | | * |
| | | * @author manailin |
| | | * @since 2021/9/26 16:33 |
| | | */ |
| | | @Data |
| | | public class TaskDetail { |
| | | /** |
| | | * 对讲服务地址 |
| | | */ |
| | | private String TalkServer; |
| | | /** |
| | | * 对讲服务端口 |
| | | */ |
| | | private String TalkPort; |
| | | /** |
| | | * 任务拨号时间 |
| | | */ |
| | | private String TskCallStartTime; |
| | | /** |
| | | * 任务启动时间 |
| | | */ |
| | | private String TskStartTime; |
| | | /** |
| | | * 任务guid |
| | | */ |
| | | private String TskGuid; |
| | | /** |
| | | * 任务级别 |
| | | */ |
| | | private String TskPrio; |
| | | /** |
| | | * 呼叫者guid |
| | | */ |
| | | private String CallerGuid; |
| | | /** |
| | | * 被呼叫者guid |
| | | */ |
| | | private String CalleeGuid; |
| | | /** |
| | | * 呼叫者等级 |
| | | */ |
| | | private String CallerLevel; |
| | | /** |
| | | * 任务状态 |
| | | */ |
| | | private String TskStatus; |
| | | /** |
| | | * 任务参数:通道号 |
| | | */ |
| | | private String ChIdx; |
| | | /** |
| | | * 任务参数:传输方式 |
| | | */ |
| | | private String TransProto; |
| | | /** |
| | | * 任务参数:数据类型 |
| | | */ |
| | | private String MdTp; |
| | | /** |
| | | * 对讲音量 |
| | | */ |
| | | private String TalkVolumn; |
| | | /** |
| | | * 第三方厂家策略 |
| | | */ |
| | | private String CustomJson; |
| | | /** |
| | | * 呼叫转移记录GUID |
| | | */ |
| | | private ArrayList<CallForward> CallForwardList; |
| | | /** |
| | | * 任务超时时间unix时间戳 |
| | | */ |
| | | private String TskTimeout; |
| | | /** |
| | | * 码流属性,0主码流 1子码流 |
| | | */ |
| | | private String StrmMode; |
| | | /** |
| | | * 是否已处理 1未 2已 |
| | | */ |
| | | private String AlreadyDeal; |
| | | /** |
| | | * 创建者guid |
| | | */ |
| | | private String Creater; |
| | | /** |
| | | * 启动者guid |
| | | */ |
| | | private String Starter; |
| | | /** |
| | | * 呼叫者名字 |
| | | */ |
| | | private String CallerName; |
| | | /** |
| | | * 被呼叫者名字 |
| | | */ |
| | | private String CalleeName; |
| | | /** |
| | | * 协议类型 1:私有协议 2:sip协议 3:都有 |
| | | */ |
| | | private String ProtocalType; |
| | | /** |
| | | * 扩展字段1 发起者类型 1 ARM 2 PC |
| | | */ |
| | | private String ReservedField1; |
| | | /** |
| | | * 扩展字段2 |
| | | */ |
| | | private String ReservedField2; |
| | | /** |
| | | * 扩展字段3 |
| | | */ |
| | | private String ReservedField3; |
| | | } |
New file |
| | |
| | | package com.panzhihua.service_property.dto; |
| | | |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 应用模块名称 |
| | | * <p> |
| | | * 一键报警kafka 订阅主题 任务消息对象 代码描述 |
| | | * <p> |
| | | * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved. |
| | | * <p> |
| | | * Company: 成都呐喊信息技术有限公司 |
| | | * <p> |
| | | * |
| | | * @author manailin |
| | | * @since 2021/9/26 16:30 |
| | | */ |
| | | @Data |
| | | public class TaskInfo { |
| | | |
| | | /** 任务类型(1) */ |
| | | private Integer task_type; |
| | | /** 更改类型 1 添加 2 更新 3 删除 */ |
| | | private Integer CtlType; |
| | | /** 任务 */ |
| | | private TaskDetail talk; |
| | | |
| | | } |
New file |
| | |
| | | package com.panzhihua.service_property.listener; |
| | | |
| | | import java.util.Date; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import org.springframework.kafka.annotation.KafkaListener; |
| | | 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.TaskInfo; |
| | | import com.panzhihua.service_property.entity.ComPropertyAlarm; |
| | | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | |
| | | /** |
| | | * @author manailin |
| | | * @version 1.0 |
| | | * @description kafka 消息消费者 |
| | | * @date 2021/9/26 15:33 |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class OrderListener { |
| | | |
| | | @Resource |
| | | private ComPropertyAlarmDao comPropertyAlarmDao; |
| | | |
| | | /** 用于监听kafka,符合条件的消息能够即时消费 */ |
| | | @KafkaListener(topics = {"${kafka.topic.kafka-demo-topic}"}, autoStartup = "${kafka.topic.autoCreate:true}") |
| | | public void processing(String message) throws Exception { |
| | | log.info("监控来消息了:{}", message); |
| | | try { |
| | | TaskInfo task = JSONObject.parseObject(message, TaskInfo.class); |
| | | if (task.getCtlType() == 1) { |
| | | saveTask(task); |
| | | } |
| | | } catch (Exception e) { |
| | | throw new Exception(); |
| | | } |
| | | } |
| | | |
| | | @Async |
| | | void saveTask(TaskInfo task) { |
| | | ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm(); |
| | | comPropertyAlarm.setSerialNo(task.getTalk().getCallerGuid()); |
| | | comPropertyAlarm.setStatus(1); |
| | | comPropertyAlarm.setCreateTime(new Date()); |
| | | comPropertyAlarmDao.insert(comPropertyAlarm); |
| | | } |
| | | |
| | | } |
| | |
| | | if(!stringRedisTemplate.hasKey(comPropertyEquipment.getSerialNo())){ |
| | | ComPropertyAlarm comPropertyAlarm=new ComPropertyAlarm(); |
| | | comPropertyAlarm.setCreateTime(DateUtil.date()); |
| | | comPropertyAlarm.setPhone(comPropertyEquipment.getPhone()); |
| | | comPropertyAlarm.setSerialNo(comPropertyEquipment.getSerialNo()); |
| | | comPropertyAlarm.setType(ComPropertyAlarm.type.one); |
| | | comPropertyAlarm.setCommunityId(comPropertyEquipment.getCommunityId()); |
| | |
| | | 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: |
| | |
| | | service-url: |
| | | defaultZone: http://${EUREKA_URL:localhost}:8192/eureka |
| | | |
| | | |
| | | #实体加密、解密、字段脱敏拦截设置 |
| | | domain: |
| | | decrypt: true |
| | |
| | | |
| | | metrics: |
| | | tags: |
| | | application: property |
| | | application: property |
| | | |
| | | # kafka自定义消息发送配置 |
| | | kafka: |
| | | topic: |
| | | kafka-demo-topic: Task_Info |
| | | kafka-demo-key: order-key |
| | | autoCreate: false |
| | |
| | | throw new ServiceException("手机号已经存在"); |
| | | } else if (e.getMessage().contains("union_account_type")) { |
| | | throw new ServiceException("账户已经存在"); |
| | | }else if(e.getMessage().contains("23000")){ |
| | | throw new ServiceException("手机号已存在"); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | @Override |
| | | public R disableOrEnableMerchantUsers(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) { |
| | | userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getIds()); |
| | | userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getUserIds()); |
| | | return R.ok(); |
| | | } |
| | | } |
| | |
| | | package com.panzhihua.shop_backstage.api; |
| | | |
| | | import java.io.InputStream; |
| | | import java.util.ArrayList; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.TreeSet; |
| | | import java.util.UUID; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import javax.validation.Valid; |
| | | import javax.validation.constraints.NotEmpty; |
| | | |
| | | import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductSpecificationDTO; |
| | | import com.panzhihua.common.model.vos.community.convenient.ConvenientProductShelfVO; |
| | | import org.apache.commons.io.FilenameUtils; |
| | | import org.springframework.beans.BeanUtils; |
| | |
| | | @ApiOperation(value = "便民服务商家后台新增产品") |
| | | @PostMapping("/product/add") |
| | | public R addProduct(@RequestBody @Validated(AddGroup.class) ConvenientProductDTO convenientProductDTO) { |
| | | List<ConvenientProductSpecificationDTO> specificationDTOList = convenientProductDTO.getProductSpecificationDTOList(); |
| | | ArrayList<ConvenientProductSpecificationDTO> filteredSpecificationList = specificationDTOList.stream() |
| | | .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ConvenientProductSpecificationDTO::getName))), ArrayList::new)); |
| | | if (specificationDTOList.size() != filteredSpecificationList.size()) { |
| | | return R.fail("规格名称重复!"); |
| | | } |
| | | Long userId = this.getUserId(); |
| | | convenientProductDTO.setCreatedBy(userId); |
| | | R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(userId); |
| | |
| | | @ApiOperation(value = "便民服务商家后台编辑产品") |
| | | @PutMapping("/product/put") |
| | | public R putProduct(@RequestBody @Validated(PutGroup.class) ConvenientProductDTO convenientProductDTO) { |
| | | List<ConvenientProductSpecificationDTO> specificationDTOList = convenientProductDTO.getProductSpecificationDTOList(); |
| | | ArrayList<ConvenientProductSpecificationDTO> filteredSpecificationList = specificationDTOList.stream() |
| | | .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ConvenientProductSpecificationDTO::getName))), ArrayList::new)); |
| | | if (specificationDTOList.size() != filteredSpecificationList.size()) { |
| | | return R.fail("规格名称重复!"); |
| | | } |
| | | Long userId = this.getUserId(); |
| | | convenientProductDTO.setUpdatedBy(userId); |
| | | R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(userId); |
| | |
| | | boolean convenientLogin = "/convenient/login".equals(uri); |
| | | boolean isConvenientReq = uri.contains("/convenient"); |
| | | boolean storeLogin = "/login".equals(uri); |
| | | boolean isUpload = "/convenient/upload/file".equals(uri); |
| | | |
| | | if (isDoc) { |
| | | if (isDoc || isUpload) { |
| | | //放过swagger请求 |
| | | } else { |
| | | if (!storeLogin && !isConvenientReq) { |
| | |
| | | noLoginUrl.add("/api/applets/convenient/merchant/incr-consult"); |
| | | noLoginUrl.add("/api/applets/convenient/merchant/incr-view"); |
| | | noLoginUrl.add("/api/applets/convenient/product/incr-view"); |
| | | noLoginUrl.add("/api/shopbackstage/convenient/upload/file"); |
| | | if (noLoginUrl.contains(requestURI)) { |
| | | List<SimpleGrantedAuthority> authorities = new ArrayList<>(); |
| | | authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS)); |