Commit f484d3e3 by sdif

用户端代码提交

parent 546515ac
......@@ -50,7 +50,7 @@ public class AppletDepartmentController extends BaseController {
* 根据医院查询科室列表
*/
@GetMapping("/DepartmentByHospitalId")
public R<List<Department>> departmentByHospitalId(Integer hospitalId) {
public R<List<DepartmentVo>> departmentByHospitalId(Integer hospitalId) {
return R.ok(iDepartmentService.departmentByHospitalId(hospitalId));
}
}
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.pz.common.annotation.Log;
import com.pz.common.annotation.RepeatSubmit;
import com.pz.common.core.controller.BaseController;
import com.pz.common.core.domain.PageQuery;
import com.pz.common.core.domain.R;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import com.pz.common.enums.BusinessType;
import com.pz.common.utils.poi.ExcelUtil;
import com.pz.system.domain.bo.DoctorBo;
import com.pz.system.domain.vo.DoctorVo;
import com.pz.system.service.IDoctorService;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;
/**
* 医生
*
* @author ruoyi
* @date 2023-09-07
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/applet/doctor")
public class AppletDoctorController extends BaseController {
private final IDoctorService iDoctorService;
/**
* 查询医生列表
*/
@GetMapping("/list")
public TableDataInfo<DoctorVo> list(DoctorBo bo, PageQuery pageQuery) {
return iDoctorService.queryPageList(bo, pageQuery);
}
}
......@@ -41,13 +41,17 @@ public class AppletStoreApplyController extends BaseController {
/**
* 新增商城商户申请
*/
@SaCheckPermission("system:apply:add")
@Log(title = "商城商户申请", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody StoreApplyBo bo) {
return toAjax(iStoreApplyService.insertByBo(bo));
}
/**
* 查询商户状态
*/
@GetMapping("/status")
public R<StoreApplyVo> getStatus(){
return R.ok(iStoreApplyService.queryByUserId());
}
}
......@@ -59,8 +59,8 @@ public class AppletStoreGoodsController extends BaseController {
* 商城商品分类列表
*/
@GetMapping("/shopGoodsClassify")
public List<StoreApplyVo> shopGoodsClassify() {
return iStoreGoodsService.shopGoodsClassify();
public R<List<StoreApplyVo>> shopGoodsClassify() {
return R.ok(iStoreGoodsService.shopGoodsClassify());
}
/**
......
......@@ -13,6 +13,7 @@ import com.pz.common.core.domain.R;
import com.pz.common.core.domain.entity.SysDept;
import com.pz.common.core.domain.entity.SysRole;
import com.pz.common.core.domain.entity.SysUser;
import com.pz.common.core.domain.model.LoginUser;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.enums.BusinessType;
import com.pz.common.excel.ExcelResult;
......@@ -70,7 +71,8 @@ public class AppletSysUserController extends BaseController {
*/
@GetMapping("/getIdentity")
public R<UserIdentityVo> getIdentity() {
return R.ok(userService.checkUserIdentity(LoginHelper.getLoginUser().getUserId().intValue()));
LoginUser loginUser = LoginHelper.getLoginUser();
return R.ok(userService.checkUserIdentity(loginUser.getUserId().intValue()));
}
/**
......@@ -99,7 +101,6 @@ public class AppletSysUserController extends BaseController {
*/
@PutMapping
public R<Void> edit(@Validated @RequestBody SysUser user) {
user.setUserId(LoginHelper.getLoginUser().getUserId());
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
if (!userService.checkUserNameUnique(user)) {
......
package com.pz.applet;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.bean.result.BaseWxPayResult;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.pz.common.annotation.Log;
import com.pz.common.annotation.RepeatSubmit;
import com.pz.common.core.controller.BaseController;
......@@ -10,21 +17,27 @@ import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import com.pz.common.enums.BusinessType;
import com.pz.common.helper.LoginHelper;
import com.pz.common.utils.poi.ExcelUtil;
import com.pz.system.domain.bo.CreateOrderBo;
import com.pz.system.domain.bo.PaymentRecordBo;
import com.pz.system.domain.bo.TotalOrderBo;
import com.pz.system.domain.vo.PaymentRecordVo;
import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.system.service.IPayService;
import com.pz.system.service.IPaymentRecordService;
import com.pz.system.service.ITotalOrderService;
import lombok.RequiredArgsConstructor;
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
......@@ -45,11 +58,14 @@ public class AppletTotalOrderController extends BaseController {
private final IPaymentRecordService iPaymentRecordService;
private final IPayService iPayService;
/**
* 查询总订单列表
*/
@GetMapping("/list")
public TableDataInfo<TotalOrderVo> list(TotalOrderBo bo, PageQuery pageQuery) {
bo.setUid(LoginHelper.getLoginUser().getUserId().intValue());
return iTotalOrderService.queryPageList(bo, pageQuery);
}
......@@ -119,4 +135,35 @@ public class AppletTotalOrderController extends BaseController {
public R<Void> cancelOrder(@Validated(AddGroup.class) @RequestBody TotalOrderBo recordBo) {
return toAjax(iTotalOrderService.cancelOrder(recordBo));
}
/**
* 订单支付
*/
@RepeatSubmit()
@PostMapping("/Orderpay")
public R<Object> Orderpay(@Validated(AddGroup.class) @RequestBody TotalOrderBo recordBo) {
return R.ok(iTotalOrderService.payOrder(recordBo));
}
/**
* 订单回调
*/
@ResponseBody
@PostMapping("/orderPayCallBack")
public R<Void> orderPayCallBack(HttpServletRequest request, HttpServletResponse response) {
try {
String xmlResult = IOUtils.toString(request.getInputStream(), request.getCharacterEncoding());
WxPayOrderNotifyResult result = iPayService.parseOrderNotifyResult(xmlResult);
// 加入自己处理订单的业务逻辑,需要判断订单是否已经支付过,否则可能会重复调用
/* String orderNum = result.getOutTradeNo();
iTotalOrderService.*/
return R.ok();
} catch (Exception e) {
System.out.println("微信回调结果异常,异常原因" + e.getMessage());
return R.fail();
}
}
}
......@@ -54,16 +54,12 @@ public class SysUser extends BaseEntity {
/**
* 用户账号
*/
@Xss(message = "用户账号不能包含脚本字符")
@NotBlank(message = "用户账号不能为空")
@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
private String userName;
/**
* 用户昵称
*/
@Xss(message = "用户昵称不能包含脚本字符")
@NotBlank(message = "用户昵称不能为空")
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
private String nickName;
......
......@@ -15,12 +15,12 @@ import lombok.Getter;
public enum UserType {
/**
* pc端
* 普通用户
*/
SYS_USER("sys_user"),
/**
* app端
* 陪诊员
*/
APP_USER("app_user"),
......
......@@ -98,4 +98,14 @@ public class Employees extends BaseEntity {
@TableLogic
private String delFlag;
/**
* 身份证号
*/
private String cardNo;
/**
* 手机号
*/
private String phone;
}
......@@ -5,6 +5,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import com.pz.common.annotation.ExcelDictFormat;
import com.pz.common.convert.ExcelDictConvert;
import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.vo.TotalOrderVo;
import lombok.Data;
import java.util.Date;
......@@ -123,5 +124,10 @@ public class EmployeesVo {
/**
* 最近好评
*/
private List<TotalOrder> totalOrderVo;
private List<TotalOrderVo> totalOrderVo;
/**
* 工作年限
*/
private Integer wrokYear;
}
......@@ -22,8 +22,12 @@ import com.pz.merchant.domain.bo.SetEmployeeWorkingHourBo;
import com.pz.merchant.domain.vo.*;
import com.pz.merchant.mapper.CompanyMapper;
import com.pz.merchant.service.ISonOrderService;
import com.pz.system.domain.Business;
import com.pz.system.domain.TotalOrder;
import com.pz.system.domain.bo.EmployeesCompanyBo;
import com.pz.system.domain.vo.BusinessVo;
import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.system.mapper.BusinessMapper;
import com.pz.system.mapper.CityMapper;
import com.pz.system.mapper.SysUserMapper;
import com.pz.system.mapper.TotalOrderMapper;
......@@ -35,6 +39,7 @@ import com.pz.merchant.mapper.EmployeesMapper;
import com.pz.merchant.service.IEmployeesService;
import org.springframework.web.bind.annotation.GetMapping;
import java.time.LocalDate;
import java.util.*;
/**
......@@ -53,6 +58,7 @@ public class EmployeesServiceImpl implements IEmployeesService {
private final CityMapper cityMapper;
private final TotalOrderMapper totalOrderMapper;
private final SonOrderServiceBuilder sonOrderServiceBuilder;
private final BusinessMapper businessMapper;
/**
* 查询陪诊员
......@@ -143,7 +149,7 @@ public class EmployeesServiceImpl implements IEmployeesService {
*/
SysUser sysUser = new SysUser();
sysUser.setUserId(bo.getUid().longValue());
sysUser.setPhonenumber(bo.getPhone());
//sysUser.setPhonenumber(bo.getPhone());
if (bo.getIdentity() == 2) {
Employees add = BeanUtil.toBean(bo, Employees.class);
add.setNowType(1);
......@@ -190,15 +196,20 @@ public class EmployeesServiceImpl implements IEmployeesService {
*/
@Override
public TableDataInfo<EmployeesVo> queryPageAppNeed(EmployeesBo bo, PageQuery pageQuery) {
// 获取当前日期
LocalDate currentDate = LocalDate.now();
// 获取当前年份
int year = currentDate.getYear();
Page<EmployeesVo> result = baseMapper.selectEmployees(bo, pageQuery.build());
Optional.ofNullable(result.getRecords()).ifPresent(EmployeesVo -> {
EmployeesVo.forEach(t -> {
List<TotalOrder> totalOrder = totalOrderMapper.selectList(Wrappers.<TotalOrder>lambdaQuery()
List<TotalOrderVo> totalOrder = totalOrderMapper.selectVoList(Wrappers.<TotalOrder>lambdaQuery()
.eq(TotalOrder::getEmId, t.getId())
.eq(TotalOrder::getIsSatisfaction, 1)
.orderByDesc(TotalOrder::getId)
.last("LIMIT 1"));
t.setTotalOrderVo(totalOrder);
t.setWrokYear(year - Integer.parseInt(t.getStartYear()));
});
});
return TableDataInfo.build(result);
......@@ -216,7 +227,7 @@ public class EmployeesServiceImpl implements IEmployeesService {
Page<EmployeesVo> result = baseMapper.selectEmployees(bo, pageQuery.build());
Optional.ofNullable(result.getRecords()).ifPresent(EmployeesVo -> {
EmployeesVo.forEach(t -> {
List<TotalOrder> totalOrder = totalOrderMapper.selectList(Wrappers.<TotalOrder>lambdaQuery()
List<TotalOrderVo> totalOrder = totalOrderMapper.selectVoList(Wrappers.<TotalOrder>lambdaQuery()
.eq(TotalOrder::getEmId, t.getId())
.eq(TotalOrder::getIsSatisfaction, 1)
.orderByDesc(TotalOrder::getId)
......@@ -234,10 +245,16 @@ public class EmployeesServiceImpl implements IEmployeesService {
@Override
public EmployeesVo queryByApp(Integer id) {
EmployeesVo employeesVo = baseMapper.selectEmployeesById(id);
List<TotalOrder> totalOrder = totalOrderMapper.selectList(Wrappers.<TotalOrder>lambdaQuery()
List<TotalOrderVo> totalOrder = totalOrderMapper.selectVoList(Wrappers.<TotalOrder>lambdaQuery()
.eq(TotalOrder::getEmId, employeesVo.getId())
.eq(TotalOrder::getIsSatisfaction, 1)
.orderByDesc(TotalOrder::getId));
for (TotalOrderVo order : totalOrder) {
BusinessVo businessVo = businessMapper.selectVoOne(new LambdaQueryWrapper<Business>().eq(Business::getId, order.getBusinessId()));
if(null != businessVo){
order.setProject(businessVo.getName());
}
}
employeesVo.setTotalOrderVo(totalOrder);
return employeesVo;
}
......
......@@ -51,7 +51,7 @@ public class TotalOrder extends BaseEntity {
/**
* 订单价格
*/
private String payMoney;
private Double payMoney;
/**
* 订单状态
*/
......@@ -75,7 +75,7 @@ public class TotalOrder extends BaseEntity {
/**
* 退款金额
*/
private String refundAmount;
private Double refundAmount;
/**
* 删除标志(0代表存在 2代表删除)
*/
......
package com.pz.system.domain.bo;
import com.pz.common.core.domain.BaseEntity;
import com.pz.common.core.validate.AddGroup;
import com.pz.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.util.List;
@Data
......@@ -15,6 +18,16 @@ public class CreateOrderBo extends BaseEntity {
private Integer businessId;
/**
* 经度
*/
private String lng;
/**
* 纬度
*/
private String lat;
/**
* 订单价格
*/
private Double payMoney;
......
......@@ -87,5 +87,7 @@ public class TotalOrderBo extends BaseEntity {
*/
private String refundAmount;
private String orderTitle;
private String openid;
}
......@@ -176,4 +176,9 @@ public class TotalOrderVo {
*/
private String phone;
/**
* 陪护项目
*/
private String project;
}
......@@ -33,6 +33,13 @@ public interface ICityService {
List<CityVo> queryList(CityBo bo);
/**
* 小程序城市接口
* @param bo
* @return
*/
List<CityVo> queryAppList(CityBo bo);
/**
* 新增城市
*/
Boolean insertByBo(CityBo bo);
......
......@@ -32,7 +32,7 @@ public interface IDepartmentService {
* @param
* @return
*/
List<Department> departmentByHospitalId(Integer hospitalId);
List<DepartmentVo> departmentByHospitalId(Integer hospitalId);
/**
* 查询科室列表
......
package com.pz.system.service;
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
import com.github.binarywang.wxpay.bean.request.WxPayRefundQueryRequest;
import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
......@@ -86,7 +87,7 @@ public interface IPayService {
* 微信请求的接口,要求可以公网访问,要放开token校验
* @param xmlData 微信提交的请求参数
*/
String parseOrderNotifyResult(String xmlData) throws WxPayException;
WxPayOrderNotifyResult parseOrderNotifyResult(String xmlData) throws WxPayException;
/**
* 退款回调通知处理
......
......@@ -23,6 +23,12 @@ public interface IStoreApplyService {
StoreApplyVo queryById(Integer id);
/**
* 小程序查看商户申请状态
* @return
*/
StoreApplyVo queryByUserId();
/**
* 查询商城商户申请列表
*/
TableDataInfo<StoreApplyVo> queryPageList(StoreApplyBo bo, PageQuery pageQuery);
......
......@@ -68,6 +68,13 @@ public interface ITotalOrderService {
Boolean cancelOrder(TotalOrderBo bo);
/**
* 统一下单接口
* @param bo
* @return
*/
Object payOrder(TotalOrderBo bo);
/**
* 用户主动退款
* @param bo
* @return
......
......@@ -171,7 +171,7 @@ public class SysLoginService {
sysUser.setUserName(loginBo.getMobilePhone());
String nikeName = StringUtils.isNoneBlank(loginBo.getNikeName()) ? loginBo.getNikeName() : "用户" + RandomUtil.randomString(8);
sysUser.setNickName(nikeName);
sysUser.setUserType(UserType.APP_USER.getUserType());
sysUser.setUserType(UserType.SYS_USER.getUserType());
sysUser.setSex("2");
// 初始密码为123456
sysUser.setPassword(BCrypt.hashpw("123456"));
......
......@@ -58,6 +58,13 @@ public class CityServiceImpl implements ICityService {
return baseMapper.selectVoList(lqw);
}
@Override
public List<CityVo> queryAppList(CityBo bo) {
LambdaQueryWrapper<City> lqw = buildQueryWrapper(bo);
List<CityVo> cityVos = baseMapper.selectVoList(lqw);
return null;
}
private LambdaQueryWrapper<City> buildQueryWrapper(CityBo bo) {
LambdaQueryWrapper<City> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getName()), City::getName, bo.getName());
......
......@@ -86,7 +86,7 @@ public class DepartmentServiceImpl implements IDepartmentService {
}
@Override
public List<Department> departmentByHospitalId(Integer hospitalId) {
public List<DepartmentVo> departmentByHospitalId(Integer hospitalId) {
Hospital hospital = hospitalMapper.selectById(hospitalId);
// 去除方括号
String numbers = hospital.getDepartments().substring(1, hospital.getDepartments().length() - 1);
......@@ -99,15 +99,39 @@ public class DepartmentServiceImpl implements IDepartmentService {
for (String num : numberArray) {
integerList.add(Integer.parseInt(num.trim()));
}
List<Department> departments = baseMapper.selectList(new LambdaQueryWrapper<Department>().in(Department::getId, integerList));
List<DepartmentVo> departments = baseMapper.selectVoList(new LambdaQueryWrapper<Department>().in(Department::getId, integerList));
if (CollectionUtils.isNotEmpty(departments)) {
//查询所有菜单
List<DepartmentVo> allMenu = departments;
// 对父菜单进行排序
Collections.sort(allMenu, new Comparator<DepartmentVo>() {
@Override
public int compare(DepartmentVo o1, DepartmentVo o2) {
// 根据需要进行排序比较,可以根据实际情况修改
return Integer.compare(o1.getSortord(), o2.getSortord());
}
});
if(null != departments){
for (Department department : departments) {
department.setValue(department.getId());
department.setText(department.getTitle());
//根节点集合
List<DepartmentVo> rootMenu = new ArrayList<>();
for (DepartmentVo entity : allMenu) {
entity.setLabel(entity.getTitle());
entity.setValue(entity.getId());
entity.setText(entity.getTitle());
if (entity.getParentId() == 0) { //父节点是0的,为根节点。
rootMenu.add(entity);
}
}
//为根菜单设置子菜单,getClild是递归调用的
for (DepartmentVo entity : rootMenu) {
entity.setLabel(entity.getTitle());
/* 获取根节点下的所有子节点 使用getChild方法*/
List<DepartmentVo> childList = getChild(entity.getId().toString(), allMenu);
entity.setChildren(childList);//给根节点设置子节点
}
return rootMenu;
}
return departments;
}
......
......@@ -119,11 +119,11 @@ public class PayServiceImpl implements IPayService {
* @throws WxPayException
*/
@Override
public String parseOrderNotifyResult(String xmlData) throws WxPayException {
public WxPayOrderNotifyResult parseOrderNotifyResult(String xmlData) throws WxPayException {
// 参数解析
final WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult(xmlData);
// TODO 根据自己业务场景需要构造返回对象
return WxPayNotifyResponse.success("成功");
return notifyResult;
}
/**
......
......@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.pz.common.enums.UserType;
import com.pz.common.helper.LoginHelper;
import com.pz.system.domain.StoreInfo;
import com.pz.system.mapper.StoreInfoMapper;
import com.pz.system.mapper.SysUserMapper;
......@@ -52,6 +53,11 @@ public class StoreApplyServiceImpl implements IStoreApplyService {
return baseMapper.selectVoById(id);
}
@Override
public StoreApplyVo queryByUserId() {
return baseMapper.selectVoOne(new LambdaQueryWrapper<StoreApply>().eq(StoreApply::getUid,LoginHelper.getLoginUser().getUserId()));
}
/**
* 查询商城商户申请列表
*/
......@@ -107,6 +113,7 @@ public class StoreApplyServiceImpl implements IStoreApplyService {
public Boolean insertByBo(StoreApplyBo bo) {
StoreApply add = BeanUtil.toBean(bo, StoreApply.class);
validEntityBeforeSave(add);
bo.setUid(LoginHelper.getLoginUser().getUserId().intValue());
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
......
......@@ -103,6 +103,21 @@ public class StoreGoodsServiceImpl implements IStoreGoodsService {
public TableDataInfo<StoreGoodsVo> shopAppShop(StoreGoodsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<StoreGoods> lqw = buildQueryWrapper(bo);
Page<StoreGoodsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Optional.ofNullable(result.getRecords()).ifPresent(storeGoodsVos -> {
storeGoodsVos.forEach(storeGoodsVo -> {
if (StringUtils.isNotBlank(storeGoodsVo.getTags())) {
List<Integer> ids = JsonUtils.parseArray(storeGoodsVo.getTags(), Integer.class);
//查询商品标签
storeGoodsVo.setList(goodsTagMapper.selectVoList(new LambdaQueryWrapper<StoreGoodsTag>().in(StoreGoodsTag::getId, ids)));
}
if (null != storeGoodsVo.getCategoryId()) {
Optional.ofNullable(storeGoodsCategoryMapper.selectVoById(storeGoodsVo.getCategoryId()))
.ifPresent(storeGoodsCategoryVo -> {
storeGoodsVo.setTypeName(storeGoodsCategoryVo.getTitle());
});
}
});
});
return TableDataInfo.build(result);
}
......@@ -110,6 +125,21 @@ public class StoreGoodsServiceImpl implements IStoreGoodsService {
public TableDataInfo<StoreGoodsVo> searchAppShop(StoreGoodsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<StoreGoods> lqw = buildQueryWrapper(bo);
Page<StoreGoodsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Optional.ofNullable(result.getRecords()).ifPresent(storeGoodsVos -> {
storeGoodsVos.forEach(storeGoodsVo -> {
if (StringUtils.isNotBlank(storeGoodsVo.getTags())) {
List<Integer> ids = JsonUtils.parseArray(storeGoodsVo.getTags(), Integer.class);
//查询商品标签
storeGoodsVo.setList(goodsTagMapper.selectVoList(new LambdaQueryWrapper<StoreGoodsTag>().in(StoreGoodsTag::getId, ids)));
}
if (null != storeGoodsVo.getCategoryId()) {
Optional.ofNullable(storeGoodsCategoryMapper.selectVoById(storeGoodsVo.getCategoryId()))
.ifPresent(storeGoodsCategoryVo -> {
storeGoodsVo.setTypeName(storeGoodsCategoryVo.getTitle());
});
}
});
});
return TableDataInfo.build(result);
}
......@@ -142,7 +172,7 @@ public class StoreGoodsServiceImpl implements IStoreGoodsService {
LambdaQueryWrapper<StoreGoods> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getCityId() != null, StoreGoods::getCityId, bo.getCityId());
lqw.eq(bo.getStoreId() != null, StoreGoods::getStoreId, bo.getStoreId());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), StoreGoods::getTitle, bo.getTitle());
lqw.like(StringUtils.isNotBlank(bo.getTitle()), StoreGoods::getTitle, bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getPrice()), StoreGoods::getPrice, bo.getPrice());
lqw.eq(StringUtils.isNotBlank(bo.getSalePrice()), StoreGoods::getSalePrice, bo.getSalePrice());
lqw.eq(StringUtils.isNotBlank(bo.getSmallCover()), StoreGoods::getSmallCover, bo.getSmallCover());
......
......@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.pz.common.core.domain.model.LoginUser;
import com.pz.common.core.page.TableDataInfo;
import com.pz.common.core.domain.PageQuery;
......@@ -24,6 +25,7 @@ import com.pz.system.domain.*;
import com.pz.system.domain.bo.CreateOrderBo;
import com.pz.system.domain.vo.AccompanyDemandVo;
import com.pz.system.mapper.*;
import com.pz.system.service.IPayService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.pz.system.domain.bo.TotalOrderBo;
......@@ -31,6 +33,7 @@ import com.pz.system.domain.vo.TotalOrderVo;
import com.pz.system.service.ITotalOrderService;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
/**
......@@ -71,17 +74,72 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
private final StoreGoodsMapper storeGoodsMapper;
private final IPayService iPayService;
private final SysUserMapper sysUserMapper;
@Override
public TotalOrderVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
/**
* 查询总订单
* 查询总订单详情
*/
@Override
public TotalOrderVo queryByAppId(Integer id) {
TotalOrderVo totalOrderVo = baseMapper.selectByOrderId(id);
if(totalOrderVo.getBusinessId() == 1){//预约陪诊
totalOrderVo.setServiceStatus(
yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 2){//代办挂号
totalOrderVo.setServiceStatus(
dbghOrderMapper.selectOne(new LambdaQueryWrapper<DbghOrder>().eq(DbghOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 3){//代办问诊
totalOrderVo.setServiceStatus(
dbwzOrderMapper.selectOne(new LambdaQueryWrapper<DbwzOrder>().eq(DbwzOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 4){//住院陪护
totalOrderVo.setServiceStatus(
zyphOrderMapper.selectOne(new LambdaQueryWrapper<ZyphOrder>().eq(ZyphOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 5){//代办买药
totalOrderVo.setServiceStatus(
dbmyOrderMapper.selectOne(new LambdaQueryWrapper<DbmyOrder>().eq(DbmyOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 6){//诊前挂号
totalOrderVo.setServiceStatus(
zqghOrderMapper.selectOne(new LambdaQueryWrapper<ZqghOrder>().eq(ZqghOrder::getOrderId, totalOrderVo.getId())).getStatus()
);
}else if(totalOrderVo.getBusinessId() == 0){//商城订单
StoreOrder storeOrder = storeOrderMapper.selectOne(new LambdaQueryWrapper<StoreOrder>().eq(StoreOrder::getOrderId, totalOrderVo.getId()));
totalOrderVo.setServiceStatus(
storeOrder.getStatus()
);
StoreGoods storeGoods = storeGoodsMapper.selectById(storeOrder.getOrderId());
List<StoreGoodsTag> storeGoodsTags = storeGoodsTagMapper.selectList(new LambdaQueryWrapper<StoreGoodsTag>().in(StoreGoodsTag::getId, getTages(storeGoods.getTags())).select(StoreGoodsTag::getTitle));
totalOrderVo.setTags(storeGoodsTags);
}
return totalOrderVo;
}
......@@ -222,27 +280,34 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
baseMapper.insert(totalOrder);
bo.setOrderId(totalOrder.getId().intValue());
totalOrderVo.setOrderSn(orderSn);
totalOrderVo.setOrderSn(totalOrder.getId()+"");
totalOrderVo.setPayMoney(bo.getPayMoney());
if(bo.getBusinessId() == 1){//预约陪诊
YypzOrder yypzOrder = BeanUtil.toBean(bo, YypzOrder.class);
yypzOrder.setHid(bo.getHospitalId());
yypzOrderMapper.insert(yypzOrder);
}else if(bo.getBusinessId() == 2){//代办挂号
DbghOrder dbghOrder = BeanUtil.toBean(bo, DbghOrder.class);
dbghOrder.setHid(bo.getHospitalId());
dbghOrder.setDid(bo.getDepartmentId());
dbghOrderMapper.insert(dbghOrder);
}else if(bo.getBusinessId() == 3){//代办问诊
DbwzOrder dbwzOrder = BeanUtil.toBean(bo, DbwzOrder.class);
dbwzOrder.setDid(bo.getDepartmentId());
dbwzOrder.setVisitor(bo.getVisitorId());
dbwzOrderMapper.insert(dbwzOrder);
}else if(bo.getBusinessId() == 4){//住院陪护
ZyphOrder zyphOrder = BeanUtil.toBean(bo, ZyphOrder.class);
zyphOrder.setDid(bo.getDepartmentId());
zyphOrder.setVisitor(bo.getVisitorId());
zyphOrderMapper.insert(zyphOrder);
}else if(bo.getBusinessId() == 5){//代办买药
......@@ -277,11 +342,38 @@ public class TotalOrderServiceImpl implements ITotalOrderService {
@Override
public Boolean cancelOrder(TotalOrderBo bo) {
TotalOrder totalOrder = baseMapper.selectById(bo.getId());
if(totalOrder.getBusinessId() == 1){//预约陪诊
yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId,totalOrder));
if(null != totalOrder.getEmId() && totalOrder.getEmId() != 0){//预约陪诊
//yypzOrderMapper.selectOne(new LambdaQueryWrapper<YypzOrder>().eq(YypzOrder::getOrderId,totalOrder));
totalOrder.setStatus(TotalOrderStatus.CANCEL.getCode());
return baseMapper.updateById(totalOrder) > 0;
}else {
throw new ServiceException("该订单已分配给陪诊员,不允许取消订单!");
}
return baseMapper.updateById(totalOrder) > 0;
}
@Override
public Object payOrder(TotalOrderBo bo) {
LoginUser loginUser = LoginHelper.getLoginUser();
TotalOrder totalOrder = baseMapper.selectById(Integer.parseInt(bo.getOrderSn()));
Object payment = null;
int money = (int) (totalOrder.getPayMoney() * 100);
try {
WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
orderRequest.setBody(bo.getOrderTitle());
orderRequest.setOutTradeNo(totalOrder.getOrderSn());
orderRequest.setTotalFee(money);//元转成分
orderRequest.setOpenid(sysUserMapper.selectById(loginUser.getUserId()).getOpenId());
orderRequest.setSpbillCreateIp("127.0.0.1");
orderRequest.setNotifyUrl("http://127.0.0.1:8089/applet/totalOrder/orderPayCallBack");
orderRequest.setTradeType("JSAPI");
payment = iPayService.createOrder(orderRequest);
} catch (Exception e) {
throw new ServiceException("微信支付失败!");
}
return payment;
}
@Override
......
......@@ -64,19 +64,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectEmployees" resultType="com.pz.merchant.domain.vo.EmployeesVo">
SELECT e.id, s.avatar ,e.name,e.working_hours,(SUM(CASE WHEN o.is_satisfaction = 1 THEN 1 ELSE 0 END) / NULLIF(COUNT(o.is_satisfaction), 0)) * 100 AS satisfaction_rate
SELECT e.id, s.avatar as avatar,e.name,e.working_hours,(SUM(CASE WHEN o.is_satisfaction = 1 THEN 1 ELSE 0 END) / NULLIF(COUNT(o.is_satisfaction), 0)) * 100 AS satisfaction_rate
FROM employees e
left join total_order o on o.em_id = e.id
left join company c on c.id = e.company_id
left join sys_user s on s.user_id = e.uid
WHERE e.`status` = 1 and e.now_type= 1 and e.del_flag= 0
<if test="bo.companyId != null and bo.companyId != 0">
e.company_id = #{bo.companyId}
<if test="bo.companyId != null and bo.companyId != ''">
and e.company_id = #{bo.companyId}
</if>
GROUP BY
e.id,
e.`name`
<if test="bo.favorableRate != null">
<if test="bo.favorableRate != null and bo.favorableRate != ''">
HAVING
satisfaction_rate >= #{bo.favorableRate};
</if>
......
......@@ -17,6 +17,7 @@
<result property="password" column="password"/>
<result property="status" column="status"/>
<result property="delFlag" column="del_flag"/>
<result property="openId" column="open_id"/>
<result property="loginIp" column="login_ip"/>
<result property="loginDate" column="login_date"/>
<result property="createBy" column="create_by"/>
......@@ -55,6 +56,7 @@
u.user_type,
u.email,
u.avatar,
u.open_id,
u.phonenumber,
u.password,
u.sex,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment