Bladeren bron

Merge remote-tracking branch 'origin/dev-1.1.0' into dev-1.1.0

LiRong 3 maanden geleden
bovenliggende
commit
052abb6901

+ 3 - 2
leromro-core/src/main/java/com/leromro/core/controller/VolunteerInfoController.java

@@ -13,6 +13,7 @@ import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.VolunteerFaceRecord;
 import com.leromro.core.domain.VolunteerInfo;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
+import com.leromro.core.domain.dto.VolunteerListDTO;
 import com.leromro.core.domain.vo.VolunteerInfoDetailVO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
 import com.leromro.core.service.IVolunteerFaceRecordService;
@@ -105,9 +106,9 @@ public class VolunteerInfoController extends BaseController {
      * 获取志愿者信息列表
      * 已测试
      */
-    @ApiOperation(value = "查询志愿者信息列表",notes = "传入进行分类的字段,根据分类字段查询,返回List 集合")
+    @ApiOperation(value = "(小程序)查询志愿者信息列表",notes = "传入进行分类的字段,根据分类字段查询,返回List 集合")
     @GetMapping ("/list")
-    public TableDataInfo<VolunteerInfoVO> list( VolunteerInfo volunteerInfo)
+    public TableDataInfo<VolunteerInfoVO> list( VolunteerListDTO volunteerInfo)
     {
         startPage();
         List<VolunteerInfoVO> list = volunteerInfoService.selectVolunteerInfoList(volunteerInfo);

+ 119 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/VolunteerListDTO.java

@@ -0,0 +1,119 @@
+package com.leromro.core.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class VolunteerListDTO {
+
+    @ApiModelProperty(value = "用户id")
+    private Long volunteerId;
+
+    @ApiModelProperty(value = "志愿者姓名")
+    private String name;
+
+    @ApiModelProperty(value = "评分")
+    private Double score;
+
+    @ApiModelProperty(value = "大类别")
+    private Long serviceCategory;
+
+
+    @ApiModelProperty(value = "技能描述")
+    private String skillDescribe;
+
+    //    @Sensitive(desensitizedType = DesensitizedType.PHONE)
+    @ApiModelProperty(value = "联系电话")
+    private String phonenumber;
+
+    @ApiModelProperty(value = "性别 0女 1男")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "状态 0 不接单  1 正在接单")
+    private Integer status;
+
+    @ApiModelProperty(value = "证书图片")
+    private String certificationPicture;
+
+    @ApiModelProperty(value = "志愿者照片")
+    private String volunteerPicture;
+
+
+    @ApiModelProperty(value = "地区")
+    private String city;
+
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+
+    @ApiModelProperty(value = "业务id")
+    private Long businessManagementId;
+
+    @ApiModelProperty(value = "审批状态 1待审批2已通过3已驳回")
+    private String appStatus;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReason;
+
+    @TableField("project_name")
+    @ApiModelProperty("服务项目名称")
+    private String projectName;
+
+    @TableField("project_type_name")
+    @ApiModelProperty("项目类别名称")
+    private String  projectTypeName;
+
+    @ApiModelProperty("科目名称")
+    private String serviceSubjectName;
+
+    @ApiModelProperty("业务层级名称")
+    private String businessTierName;
+
+    @ApiModelProperty("业务价格")
+    private BigDecimal businessPrice;
+
+    @ApiModelProperty("业务时长(整数分钟)")
+    private Integer businessDuration;
+
+    @TableField("min_quantity")
+    @ApiModelProperty("最少购买数量")
+    private Long minQuantity;
+
+    @TableField("business_unit")
+    @ApiModelProperty("购买单位")
+    private String  businessUnit;
+
+    @TableField("business_describe")
+    @ApiModelProperty("服务描述")
+    private String businessDescribe;
+
+    @TableField("province_code")
+    @ApiModelProperty("省级区划编号")
+    private String provinceCode;
+
+    @TableField("province_name")
+    @ApiModelProperty("省级名称")
+    private String provinceName;
+
+    @TableField("city_code")
+    @ApiModelProperty("市级编号")
+    private String cityCode;
+
+    @TableField("city_name")
+    @ApiModelProperty("市级名称")
+    private String cityName;
+
+    @TableField("district_code")
+    @ApiModelProperty("区级区划编号")
+    private String districtCode;
+
+    @TableField("district_name")
+    @ApiModelProperty("区级名称")
+    private String districtName;
+
+}

+ 13 - 4
leromro-core/src/main/java/com/leromro/core/facade/OrdersFacade.java

@@ -15,11 +15,11 @@ import com.leromro.common.core.domain.R;
 import com.leromro.common.exception.ServiceException;
 import com.leromro.core.domain.MainOrders;
 import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.VolunteerInfo;
 import com.leromro.core.domain.dto.ConversationMsgDTO;
-import com.leromro.core.service.IConversationRecordService;
-import com.leromro.core.service.IMainOrderService;
-import com.leromro.core.service.IOrderRefundService;
-import com.leromro.core.service.ISecondOrderService;
+import com.leromro.core.service.*;
+import com.leromro.core.utils.SendSmsUtil;
+import com.leromro.framework.config.ConstantsConfig;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.redisson.api.RLock;
@@ -60,6 +60,9 @@ public class OrdersFacade {
     @Autowired
     private IConversationRecordService conversationRecordService;
 
+    @Autowired
+    private IVolunteerInfoService volunteerInfoService;
+
 
     /**
      * 支付超时或取消
@@ -127,6 +130,12 @@ public class OrdersFacade {
                             .system(2).volunteerId(mainOrders.getVolunteerId())
                             .msgContent("您有新的订单,请及时查看")
                             .build());
+                    //向志愿者推送短信
+                    //发送短信通知
+                    VolunteerInfo info = volunteerInfoService.getById(mainOrders.getVolunteerInfoId());
+                    if (ObjectUtil.isNotNull(info)) {
+                        SendSmsUtil.send(info.getPhonenumber(), "", ConstantsConfig.SMS_TEMPLATE_TYPE_VOLUNTEER_NEW_ORDER.getValue());
+                    }
 
                 }else if ("FAIL".equals(notifyResult.getResultCode())){
                     //调用支付取消接口

+ 2 - 1
leromro-core/src/main/java/com/leromro/core/mapper/VolunteerInfoMapper.java

@@ -6,6 +6,7 @@ import com.leromro.core.domain.VolunteerInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
+import com.leromro.core.domain.dto.VolunteerListDTO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -24,7 +25,7 @@ public interface VolunteerInfoMapper extends BaseMapper<VolunteerInfo> {
 
     List<VolunteerInfo> webList(ListPermission listPermission,@Param("dto") VolunteerInfoDTO dto);
 
-    List<VolunteerInfoVO> selectVolunteerInfoSimple(@Param("info") VolunteerInfo volunteerInfo);
+    List<VolunteerInfoVO> selectVolunteerInfoSimple(@Param("info") VolunteerListDTO volunteerInfo);
 
 
 

+ 2 - 1
leromro-core/src/main/java/com/leromro/core/service/IVolunteerInfoService.java

@@ -5,6 +5,7 @@ import com.leromro.core.domain.VolunteerInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
+import com.leromro.core.domain.dto.VolunteerListDTO;
 import com.leromro.core.domain.vo.VolunteerInfoDetailVO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
 
@@ -28,7 +29,7 @@ public interface IVolunteerInfoService extends IService<VolunteerInfo> {
 
     VolunteerInfoDetailVO selectLVolunteerInfoByVolunteerId(VolunteerInfo volunteerInfo);
 
-    List<VolunteerInfoVO> selectVolunteerInfoList(VolunteerInfo volunteerInfo);
+    List<VolunteerInfoVO> selectVolunteerInfoList(VolunteerListDTO volunteerInfo);
 
 
     List<VolunteerInfo> getCurrentOrgVolunteerList(HomePageDTO dto);

+ 5 - 4
leromro-core/src/main/java/com/leromro/core/service/impl/MainOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.leromro.core.service.impl;
 
 import cn.hutool.core.lang.Snowflake;
+import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
@@ -24,10 +25,8 @@ import com.leromro.core.mapper.*;
 import com.leromro.core.service.IConversationRecordService;
 import com.leromro.core.service.IMainOrderService;
 import com.leromro.core.service.IOrderSettlementApplicationService;
-import com.leromro.core.utils.BigDecimalUtil;
-import com.leromro.core.utils.DateTimeUtil;
-import com.leromro.core.utils.JsonParser;
-import com.leromro.core.utils.NoUtil;
+import com.leromro.core.utils.*;
+import com.leromro.framework.config.ConstantsConfig;
 import com.leromro.system.mapper.SysConfigMapper;
 import com.leromro.system.mapper.SysDeptMapper;
 import com.leromro.system.mapper.SysUserMapper;
@@ -350,6 +349,8 @@ public class MainOrderServiceImpl extends ServiceImpl<MainOrdersMapper, MainOrde
                     .system(2).volunteerId(orders.getVolunteerId())
                     .msgContent("您有新的订单,请及时查看")
                     .build());
+            //发送短信通知
+            SendSmsUtil.send(info.getPhonenumber(), "", ConstantsConfig.SMS_TEMPLATE_TYPE_VOLUNTEER_NEW_ORDER.getValue());
         }
         return R.ok(vo);
     }

+ 3 - 1
leromro-core/src/main/java/com/leromro/core/service/impl/VolunteerInfoServiceImpl.java

@@ -22,6 +22,7 @@ import com.leromro.core.domain.UserPointChange;
 import com.leromro.core.domain.VolunteerInfo;
 import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
+import com.leromro.core.domain.dto.VolunteerListDTO;
 import com.leromro.core.domain.vo.VolunteerInfoDetailVO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
 import com.leromro.core.mapper.VolunteerInfoMapper;
@@ -171,13 +172,14 @@ public class VolunteerInfoServiceImpl extends ServiceImpl<VolunteerInfoMapper, V
      * @return
      */
     @Override
-    public List<VolunteerInfoVO> selectVolunteerInfoList(VolunteerInfo volunteerInfo) {
+    public List<VolunteerInfoVO> selectVolunteerInfoList(VolunteerListDTO volunteerInfo) {
         //查询出志愿者信息
         List<VolunteerInfoVO> infos = volunteerInfoMapper.selectVolunteerInfoSimple(volunteerInfo);
         //查询出所有服务名称
         Map<Long, String> idMapTierName = businessManagementService.list().stream().collect(Collectors.toMap(BusinessManagement::getBusinessManagementId, BusinessManagement::getBusinessTierName));
         if (ObjectUtil.isNotEmpty(infos)){
             infos.forEach(info -> {
+
                 info.setBusinessTierName(idMapTierName.get(info.getBusinessManagementId()));
             });
         }

+ 6 - 2
leromro-core/src/main/resources/mapper/core/VolunteerInfoMapper.xml

@@ -56,14 +56,18 @@
         select volunteer_id, skill_describe,age ,service_category,name,volunteer_picture,score,business_management_id ,business_price,business_tier_name , business_unit,business_describe
         from l_volunteer_info lvi
         where app_status = 2
+        AND EXISTS (
+        SELECT 1
+        FROM l_volunteer_work_date lvw
+        WHERE lvw.volunteer_id = lvi.volunteer_id
+        and lvw.work_date &gt;= curdate()
+        )
         and lvi.business_management_id in (select lbm.business_management_id from l_business_management lbm
             where find_in_set(#{info.businessManagementId},lbm.ancestors) or lbm.business_management_id = #{info.businessManagementId})
         <if test="info.name != null  and info.name != ''"> and lvi.name like concat('%', #{info.name}, '%')</if>
         <if test="info.score != null "> and lvi.score = #{info.score}</if>
         <if test="info.serviceCategory != null and info.serviceCategory != ''"> and lvi.service_category = #{info.serviceCategory}</if>
         <if test="info.skillDescribe != null  and info.skillDescribe != ''"> and lvi.skill_describe = #{info.skillDescribe}</if>
-        <if test="info.city != null  and info.city != ''"> and lvi.city = #{info.city}</if>
-        <if test="info.address != null  and info.address != ''"> and lvi.address = #{info.address}</if>
         <if test="info.provinceCode != null and info.provinceCode != ''">and lvi.province_code = #{info.provinceCode}</if>
         <if test="info.cityCode != null and info.cityCode != ''">and lvi.city_code = #{info.cityCode}</if>
         <if test="info.districtCode != null and info.districtCode != ''">and lvi.district_code = #{info.districtCode}</if>

+ 5 - 2
leromro-framework/src/main/java/com/leromro/framework/config/ConstantsConfig.java

@@ -9,8 +9,11 @@ public enum ConstantsConfig {
 //    志愿者审批通知
     SMS_TEMPLATE_TYPE_VOLUNTEER_RESULT("sms_template_type_volunteer_result","SMS_485465604"),
     //志愿者提现成功通知
-    SMS_TEMPLATE_TYPE_VOLUNTEER_WITGDRAW("sms_template_type_volunteer_withdraw","SMS_486195063");
-
+    SMS_TEMPLATE_TYPE_VOLUNTEER_WITGDRAW("sms_template_type_volunteer_withdraw","SMS_487525281"),
+    //志愿者新订单短信提示
+    SMS_TEMPLATE_TYPE_VOLUNTEER_NEW_ORDER("sms_template_type_volunteer_new_order","SMS_487440338"),
+    //志愿者订单被取消短信提示
+    SMS_TEMPLATE_TYPE_VOLUNTEER_ORDER_CANCELLED("sms_template_type_volunteer_order_cancelled","SMS_487325335");
 
     private final String KEY;
     private final String VALUE;

+ 2 - 1
leromro-framework/src/main/java/com/leromro/framework/config/SecurityConfig.java

@@ -114,7 +114,8 @@ public class SecurityConfig
                 requests.antMatchers("/login","/loginWeb", "/register", "/captchaImage","/system/dict/**,","/websocket/**",
                                 "/core/users/orders/payNotify","/core/users/orders/refundNotify","/system/config/getHomeRollText").permitAll()
                     //微信小程序需要提供部分预览功能
-                    .antMatchers("/core/volunteer/info/**","/web/core/slideshow/**","/core/business/management/**",
+                    .antMatchers("/core/volunteer/info/list","/core/volunteer/info/getDetails",
+                                "/web/core/slideshow/**","/core/business/management/**",
                                 "/core/volunteer/work-date/**","/utils/common/region/**").permitAll()
                     // 静态资源,可匿名访问
                     .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()