liujie
2023-10-31 904cfe3bad14c27857a062849fc92dd85035c524
修改bug
24个文件已修改
1个文件已添加
722 ■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 315 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/core/common/constant/Const.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/factory/UserFactory.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/User.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/transfer/UserDto.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/DeptMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/RoleMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/resources/mapper/UserMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_add.html 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit.html 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit1.html 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/user/user.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/SiteMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/StoreMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -1179,183 +1179,185 @@
    @Transactional
    public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) {
        System.out.println("exchangeType:--->");
        System.out.println(exchangeType);
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
        PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
        if (ToolUtil.isEmpty(merchandise)){
            return ResultUtil.error("商品不存在");
        }
        TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
        if(merchandise.getUserPopulation()==2){
            if(tAppUser.getIsVip()==0){
                return ResultUtil.error("该商品只能年度会员购买");
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
            String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
            PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
            if (ToolUtil.isEmpty(merchandise)){
                return ResultUtil.error("商品不存在");
            }
        }
            TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
        if(merchandise.getUserPopulation()==3){
            List<TStudent> students = tsmapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, userIdFormRedis));
            if(students.size()==0){
                return ResultUtil.error("该商品只能已有学员用户购买");
            if(merchandise.getUserPopulation()==2){
                if(tAppUser.getIsVip()==0){
                    return ResultUtil.error("该商品只能年度会员购买");
                }
            }
        }
            if(merchandise.getUserPopulation()==3){
                List<TStudent> students = tsmapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, userIdFormRedis));
                if(students.size()==0){
                    return ResultUtil.error("该商品只能已有学员用户购买");
                }
            }
        if (ToolUtil.isEmpty(tAppUser)){
            return ResultUtil.error("用户不存在");
        }
        int goodsNums = 0;
        if (ToolUtil.isEmpty(exchangeType.getNums())){
            goodsNums = 1;
        }else {
            goodsNums = exchangeType.getNums();
        }
        AppUserGoodResp goodResp = new AppUserGoodResp();
        goodResp.setAppUserId(userIdFormRedis);
        goodResp.setGoodId(merchandise.getId());
        int count = mcClient.queryUserHasGoodsNums(goodResp);
        if (ToolUtil.isNotEmpty(count) && count >= merchandise.getPickUpQuantity()){
            return ResultUtil.error("超过限领数量");
        }
        int count1 = mcClient.queryUserHasGoodsNums1(goodResp);
        if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()){
            return ResultUtil.error("超过发放数量");
        }
            if (ToolUtil.isEmpty(tAppUser)){
                return ResultUtil.error("用户不存在");
            }
            int goodsNums = 0;
            if (ToolUtil.isEmpty(exchangeType.getNums())){
                goodsNums = 1;
            }else {
                goodsNums = exchangeType.getNums();
            }
            AppUserGoodResp goodResp = new AppUserGoodResp();
            goodResp.setAppUserId(userIdFormRedis);
            goodResp.setGoodId(merchandise.getId());
            int count = mcClient.queryUserHasGoodsNums(goodResp);
            if (ToolUtil.isNotEmpty(count) && count >= merchandise.getPickUpQuantity()){
                return ResultUtil.error("超过限领数量");
            }
            int count1 = mcClient.queryUserHasGoodsNums1(goodResp);
            if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()){
                return ResultUtil.error("超过发放数量");
            }
            for (int i = 0; i < goodsNums; i++) {
//            新增积分商品兑换记录
                UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
                pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
                pointsMerchandise.setUserId(userIdFormRedis);
                pointsMerchandise.setStatus(1);
                pointsMerchandise.setState(1);
                pointsMerchandise.setPayStatus(1);
                if (merchandise.getUseScope() == 3){
                    if (exchangeType.getGoodsType() == 2){
                        CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
                        pointsMerchandise.setStoreId(coursePackage.getStoreId());
                    }else {
                        pointsMerchandise.setStoreId(exchangeType.getStoreId());
                    }
                }
                pointsMerchandise.setCode(code);
                mcClient.saveDetailsUserPointMercase(pointsMerchandise);
            }
        switch (exchangeType.getExchangeType()){
            switch (exchangeType.getExchangeType()){
//            积分
            case 1:
                boolean b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
                if (b){
                    switch (exchangeType.getGoodsType()){
                        case 2:
                            Integer stuNums = 0;
                            if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
                                stuNums = exchangeType.getStuIds().size();
                            }else {
                                stuNums = 1;
                            }
                            for (int i = 0; i < stuNums; i++) {
                                List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
                                TCoursePackagePayment packagePayment = new TCoursePackagePayment();
                                packagePayment.setAppUserId(userIdFormRedis);
                                packagePayment.setStudentId(exchangeType.getStuIds().get(i));
                                packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
                                for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
                                    if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
                                        packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
                                        packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
                                        packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
                                        packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
                                        break;
                                    }
                case 1:
                    boolean b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
                    if (b){
                        switch (exchangeType.getGoodsType()){
                            case 2:
                                Integer stuNums = 0;
                                if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
                                    stuNums = exchangeType.getStuIds().size();
                                }else {
                                    stuNums = 1;
                                }
                                packagePayment.setPlayPaiCoin(merchandise.getIntegral());
                                packagePayment.setAbsencesNumber(0);
                                packagePayment.setPayUserType(1);
                                packagePayment.setPayStatus(2);
                                packagePayment.setPayUserId(userIdFormRedis);
                                packagePayment.setStatus(1);
                                packagePayment.setState(1);
                                packagePayment.setCode(code);
                                paymentClient.savePaymentCoursePackage(packagePayment);
                                for (int i = 0; i < stuNums; i++) {
                                    List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
                                    TCoursePackagePayment packagePayment = new TCoursePackagePayment();
                                    packagePayment.setAppUserId(userIdFormRedis);
                                    packagePayment.setStudentId(exchangeType.getStuIds().get(i));
                                    packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
                                    for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
                                        if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
                                            packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
                                            packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
                                            packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
                                            packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
                                            break;
                                        }
                                    }
                                    packagePayment.setPlayPaiCoin(merchandise.getIntegral());
                                    packagePayment.setAbsencesNumber(0);
                                    packagePayment.setPayUserType(1);
                                    packagePayment.setPayStatus(2);
                                    packagePayment.setPayUserId(userIdFormRedis);
                                    packagePayment.setStatus(1);
                                    packagePayment.setState(1);
                                    packagePayment.setCode(code);
                                    paymentClient.savePaymentCoursePackage(packagePayment);
                                }
                                break;
                            case 4:
                                for (int i = 0; i < goodsNums; i++) {
                                    UserCoupon coupon = new UserCoupon();
                                    coupon.setCouponId(exchangeType.getGoodId());
                                    coupon.setUserId(userIdFormRedis);
                                    coupon.setStatus(1);
                                    ucponClient.insertToAppuserCoupon(coupon);
                                }
                                break;
                            default:
                                break;
                        }
                    }else {
                        return ResultUtil.error("用户积分不足!");
                    }
                    break;
                case 2:
//                积分+现金
                    boolean dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
                    switch (exchangeType.getPayType()) {
                        case 1:
                            try {
                                if (merchandise.getType() == 2) {
                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                                } else {
                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                                }
                            } catch (Exception e) {
                                return ResultUtil.runErr();
                            }
                            break;
                        case 4:
                            for (int i = 0; i < goodsNums; i++) {
                                UserCoupon coupon = new UserCoupon();
                                coupon.setCouponId(exchangeType.getGoodId());
                                coupon.setUserId(userIdFormRedis);
                                coupon.setStatus(1);
                                ucponClient.insertToAppuserCoupon(coupon);
                        case 2:
                            if (merchandise.getType() == 2) {
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                            } else {
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                            }
                            break;
                        default:
                            break;
                    }
                }else {
                    return ResultUtil.error("用户积分不足!");
                }
                break;
            case 2:
//                积分+现金
                boolean dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
                switch (exchangeType.getPayType()) {
                    case 1:
                        try {
                            if (merchandise.getType() == 2) {
                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                            } else {
                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                    break;
                case 3:
                    switch (exchangeType.getPayType()) {
                        case 1:
                            try {
                                if (merchandise.getType() == 2) {
                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                                } else {
                                    return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                                }
                            } catch (Exception e) {
                                return ResultUtil.runErr();
                            }
                        } catch (Exception e) {
                            return ResultUtil.runErr();
                        }
                    case 2:
                        if (merchandise.getType() == 2) {
                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                        } else {
                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                        }
                    default:
                        break;
                }
                break;
            case 3:
                switch (exchangeType.getPayType()) {
                    case 1:
                        try {
                        case 2:
                            if (merchandise.getType() == 2) {
                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                            } else {
                                return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                            }
                        } catch (Exception e) {
                            return ResultUtil.runErr();
                        }
                    case 2:
                        if (merchandise.getType() == 2) {
                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
                        } else {
                            return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
                        }
                    default:
                        break;
                }
                break;
            default:
                break;
        }
        for (int i = 0; i < goodsNums; i++) {
//            新增积分商品兑换记录
            UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
            pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
            pointsMerchandise.setUserId(userIdFormRedis);
            pointsMerchandise.setStatus(1);
            pointsMerchandise.setState(1);
            if (merchandise.getUseScope() == 3){
                if (exchangeType.getGoodsType() == 2){
                    CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
                    pointsMerchandise.setStoreId(coursePackage.getStoreId());
                }else {
                    pointsMerchandise.setStoreId(exchangeType.getStoreId());
                }
                        default:
                            break;
                    }
                    break;
                default:
                    break;
            }
            pointsMerchandise.setCode(code);
            mcClient.saveDetailsUserPointMercase(pointsMerchandise);
            return ResultUtil.success();
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
        return ResultUtil.success();
    }
    public boolean dealAppUserIntegral(Integer appUserId,TAppUser appUser,Integer points){
@@ -1382,7 +1384,8 @@
    }
    private ResultUtil AlipayPayment(BigDecimal cash, String code) {
        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "", "", code, cash.toString(),
        System.out.println("金额:"+cash);
        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", "", code, cash.toString(),
                "/base/pointMer/exchangeGoodPaymentAliCallback");
        if(alipay.getCode() == 200){
            new Thread(new Runnable() {
@@ -1395,7 +1398,9 @@
                            int min = 5000;
                            wait += (min * num);
                            Thread.sleep(wait);
                            System.out.println("code:"+code);
                            List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
                            System.out.println("list-----"+userPointsMerchandises);
                            if(userPointsMerchandises.get(0).getPayStatus() == 2){
                                break;
                            }
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -32,8 +32,6 @@
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Autowired
    private VipPaymentMapper vipPaymentMapper;
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -860,6 +860,7 @@
        upmseService.updateById(merchandise);
    }
    @ResponseBody
    @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode")
    public List<UserPointsMerchandise> queryUserPointMerchaseByCode(@RequestBody String code){
        return upmseService.list(new QueryWrapper<UserPointsMerchandise>()
cloud-server-management/src/main/java/com/dsh/guns/core/common/constant/Const.java
@@ -11,7 +11,7 @@
    /**
     * 系统默认的管理员密码
     */
    String DEFAULT_PWD = "111111";
    String DEFAULT_PWD = "a123456";
    /**
     * 管理员角色的名字
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/UserMgrController.java
@@ -1,6 +1,7 @@
package com.dsh.guns.modular.system.controller.system;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.mapper.UserMapper;
import com.dsh.guns.config.UserExt;
@@ -78,6 +79,13 @@
    @RequestMapping("/user_add")
    public String addView(Model model) {
        model.addAttribute("language",UserExt.getLanguage());
        LambdaQueryWrapper<Role> roleLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(UserExt.getUser().getObjectType()!=1){
            roleLambdaQueryWrapper.eq(Role::getObjId,UserExt.getUser().getObjectId());
        }
        roleLambdaQueryWrapper.eq(Role::getObjType,UserExt.getUser().getObjectType());
        List<Role> list = roleService.list(roleLambdaQueryWrapper);
        model.addAttribute("list",list);
        return PREFIX + "user_add.html";
    }
@@ -112,6 +120,13 @@
        model.addAttribute("roleName", ConstantFactory.me().getRoleName(user.getRoleid()));
        model.addAttribute("deptName", ConstantFactory.me().getDeptName(user.getDeptid()));
        LogObjectHolder.me().set(user);
        LambdaQueryWrapper<Role> roleLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(UserExt.getUser().getObjectType()!=1){
            roleLambdaQueryWrapper.eq(Role::getObjId,UserExt.getUser().getObjectId());
        }
        roleLambdaQueryWrapper.eq(Role::getObjType,UserExt.getUser().getObjectType());
        List<Role> list = roleService.list(roleLambdaQueryWrapper);
        model.addAttribute("list",list);
        model.addAttribute("language",UserExt.getLanguage());
        return PREFIX + "user_edit.html";
    }
@@ -224,6 +239,9 @@
        User objectUser = UserFactory.createUser(user);
        objectUser.setObjectType(UserExt.getUser().getObjectType());
        objectUser.setObjectId(UserExt.getUser().getObjectId());
        objectUser.setRoleid(user.getRoleid());
        objectUser.setAccount(user.getPhone());
        objectUser.setPassword(SecureUtil.md5("a123456"));
        //查找平台所属公司
        //Search for the company that owns the platform.
        this.userService.save(objectUser);
cloud-server-management/src/main/java/com/dsh/guns/modular/system/factory/UserFactory.java
@@ -36,8 +36,8 @@
            if (!StringUtils.isEmpty(newUser.getBirthday())) {
                oldUser.setBirthday(newUser.getBirthday());
            }
            if (!StringUtils.isEmpty(newUser.getDeptid())) {
                oldUser.setDeptid(newUser.getDeptid());
            if (!StringUtils.isEmpty(newUser.getRoleid())) {
                oldUser.setRoleid(newUser.getRoleid());
            }
            if (!StringUtils.isEmpty(newUser.getSex())) {
                oldUser.setSex(newUser.getSex());
@@ -47,6 +47,10 @@
            }
            if (!StringUtils.isEmpty(newUser.getPhone())) {
                oldUser.setPhone(newUser.getPhone());
                oldUser.setAccount(newUser.getPhone());
            }
            if (!StringUtils.isEmpty(newUser.getIdCard())) {
                oldUser.setIdCard(newUser.getIdCard());
            }
            return oldUser;
        }
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/User.java
@@ -94,7 +94,16 @@
     */
    @TableField("objectId")
    private Integer objectId;
    @TableField("idCard")
    private String idCard;
    public String getIdCard() {
        return idCard;
    }
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public Integer getId() {
        return id;
cloud-server-management/src/main/java/com/dsh/guns/modular/system/transfer/UserDto.java
@@ -29,7 +29,15 @@
    private Date createtime;
    private Integer version;
    private String avatar;
    private String idCard;
    public String getIdCard() {
        return idCard;
    }
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public Integer getId() {
        return id;
cloud-server-management/src/main/resources/mapper/DeptMapper.xml
@@ -37,6 +37,9 @@
        <if test="objectType == 3">
            and  objectType = 3 and objectId =#{objectId}
        </if>
        <if test="objectType == 1">
            and  objectType = 1
        </if>
        order by num ASC
    </select>
cloud-server-management/src/main/resources/mapper/RoleMapper.xml
@@ -26,6 +26,9 @@
        <if test="objectType == 3">
            and rr.objType =3  and rr.objId =#{objectId}
        </if>
        <if test="objectType == 1">
            and rr.objType =1
        </if>
    </select>
    <delete id="deleteRolesById">
cloud-server-management/src/main/resources/mapper/UserMapper.xml
@@ -109,6 +109,9 @@
            <if test="objectType ==3">
                and (o.objectType =3  and o.objectId =#{objectId})
            </if>
            <if test="objectType ==1">
                and o.objectType =1
            </if>
        </where>
        order by o.id desc
    </select>
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user.html
@@ -45,9 +45,6 @@
                            @if(shiro.hasPermission("/mgr/unfreeze")){
                            <#button name="解冻" icon="fa-check-circle" clickFun="MgrUser.unfreeze()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/mgr/setRoles")){
                            <#button name="角色分配" icon="fa-user-secret" clickFun="MgrUser.roleAssign()" space="true"/>
                            @}
                            @if(shiro.hasPermission("/mgr/kanbanPermissions")){
                            <#button name="看板权限设置" icon="fa-user-secret" clickFun="MgrUser.kanbanPermissions()" space="true"/>
                            @}
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_add.html
@@ -1,42 +1,48 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal" id="userInfoForm">
            <input type="hidden" id="id" value="">
            <div class="row">
    <div class="col-sm-6">
        <div id="driverInfoContent">
            <#input id="name" name="员工姓名" underline="true"/>
            <#input id="phone" name="联系电话" underline="true"/>
            <#avatar id="avatar" name="照片" underline="true"/>
            <#input id="birthday" name="生日" underline="true" type="text"/>
            <#select id="sex" name="性别" underline="true" >
            <option value="1">男</option>
            <option value="2">女</option>
            </#select>
            <#input id="idCard" name="身份证号" type="text" underline="true"/>
    <div class="ibox-content">
        <div class="form-horizontal" id="userInfoForm">
            <input type="hidden" id="id" value="">
            <div class="row">
                <div class="col-sm-6">
                    <div id="driverInfoContent">
                        <#input id="name" name="员工姓名" underline="true"/>
                        <#input id="phone" name="联系电话" underline="true"/>
                        <#avatar id="avatar" name="照片" underline="true"/>
                        <#input id="birthday" name="生日" underline="true" type="text"/>
                        <#select id="sex" name="性别" underline="true" >
                        <option value="1" selected>男</option>
                        <option value="2">女</option>
                    </#select>
                    <#input id="idCard" name="身份证号" type="text" underline="true"/>
                    <#select id="roleid" name="角色" underline="true" >
                    @for(l in list){
                    <option value="${l.id}">${l.name}</option>
                    @}
        </div>
    </div>
</div>
<!-- 这是部门选择的下拉框 -->
<div id="menuContent" class="menuContent"
     style="display: none; position: absolute; z-index: 200;">
    <ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
</div>
<div class="row btn-group-m-t">
    <div class="col-sm-10">
        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.addSubmit()"/>
        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
    </div>
</div>
</div>
</div>
                </#select>
            </div>
        </div>
    </div>
    <!-- 这是部门选择的下拉框 -->
    <div id="menuContent" class="menuContent"
         style="display: none; position: absolute; z-index: 200;">
        <ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
    </div>
    <div class="row btn-group-m-t">
        <div class="col-sm-10">
            <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.addSubmit()"/>
            <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
        </div>
    </div>
</div>
<script src="${ctxPath}/modular/system/user/user_info.js"></script>
<script>
    laydate.render({
        elem: '#birthday'
    });
    laydate.render({
        elem: '#birthday'
    });
</script>
@}
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit.html
@@ -2,69 +2,50 @@
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal" id="userInfoForm">
            <input type="hidden" id="id" value="${user.id}">
            <input type="hidden" id="sexValue" value="${user.sex}">
            <input type="hidden" id="roleid_" value="${user.roleid}">
            <div class="row">
                <div class="col-sm-6 b-r">
                    <#input id="account" name="账户" underline="true" value="${user.account}"/>
                    <#select id="sex" name="性别" underline="true">
                    <option value="1">男</option>
                    <option value="2">女</option>
                </#select>
                <#input id="roleid" name="角色" underline="true" value="${roleName}" disabled="disabled"/>
                <#input id="email" name="邮箱" type="email"  underline="true" value="${user.email}"/>
                <div class="form-group" ${userCompanyId! !=1? "hidden" :" "} >
                <label class="col-sm-3 control-label">所属公司</label>
                <div class="col-sm-9">
                    <select class="form-control" id="companyId" name="companyId">
                        @if(companyIds! !=null && companyId! !=null){
                        @for(item in companyIds!){
                        @if(item.id! == companyId!){
                        <option value="${item.id}">${item.name!}</option>
                        @}
                        @}
                        @for(item in companyIds!){
                        @if(item.id! !=companyId!){
                        <option value="${item.id}">${item.name!}</option>
                        @}
                        @}
                        @}
                    </select>
                </div>
                <div class="col-sm-6">
                    <div id="driverInfoContent">
                        <#input id="name" name="员工姓名" underline="true" value="${user.name}" />
                        <#input id="phone" name="联系电话" underline="true" value="${user.phone}" />
                        <#avatar id="avatar" name="照片" underline="true" avatarImg="${user.avatar}" />
                        <#input id="birthday" name="生日" underline="true" type="text" value="${user.birthday}" />
                        <#select id="sex" name="性别" underline="true" >
                        <option value="1" selected>男</option>
                        <option value="2">女</option>
                    </#select>
                    <#input id="idCard" name="身份证号" type="text" underline="true" value="${user.idCard}"/>
                    <#select id="roleid" name="角色" underline="true" >
                    @for(l in list){
                        <option value="${l.id}" ${l.id == user.roleid ? 'selected=selected' : ''}>${l.name}</option>
                    @}
                    </#select>
            </div>
            <div class="hr-line-dashed" ${companyId! !=1? "hidden" :" "} ></div>
    </div>
    <div class="col-sm-6">
        <div id="driverInfoContent">
            <#input id="name" name="姓名" underline="true" value="${user.name!}"/>
            <#input id="birthday" name="出生日期" underline="true" type="text"
            value="${user.birthday!}"/>
            <#input id="citySel" name="部门" underline="true" readonly="readonly" hidden="deptid" hiddenValue="${user.deptid!}" value="${deptName!}"
            clickFun="UserInfoDlg.showDeptSelectTree(); return false;"
            style="background-color: #ffffff !important;"/>
            <#input id="phone" name="电话"  underline="true" value="${user.phone}"/>
        </div>
    </div>
</div>
<!-- 这是部门选择的下拉框 -->
<div id="menuContent" class="menuContent"
     style="display: none; position: absolute; z-index: 200;">
    <ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
</div>
<div class="row btn-group-m-t">
    <div class="col-sm-10">
        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
    <!-- 这是部门选择的下拉框 -->
    <div id="menuContent" class="menuContent"
         style="display: none; position: absolute; z-index: 200;">
        <ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
    </div>
</div>
</div>
    <div class="row btn-group-m-t">
        <div class="col-sm-10">
            <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
            <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
        </div>
    </div>
</div>
</div>
<script src="${ctxPath}/modular/system/user/user_info.js"></script>
<script>
    laydate.render({
cloud-server-management/src/main/webapp/WEB-INF/view/system/user/user_edit1.html
New file
@@ -0,0 +1,60 @@
@layout("/common/_container.html"){
<div class="ibox float-e-margins">
    <div class="ibox-content">
        <div class="form-horizontal" id="userInfoForm">
            <input type="hidden" id="id" value="${user.id}">
            <input type="hidden" id="sexValue" value="${user.sex}">
            <input type="hidden" id="roleid_" value="${user.roleid}">
    </div>
        <div class="row">
    <div class="col-sm-6">
        <div id="driverInfoContent">
            <#input id="name" name="员工姓名" underline="true" value="${user.name}"/>
            <#input id="phone" name="联系电话" underline="true" value="${user.phone}"/>
            <#avatar id="avatar" name="照片" underline="true" avatarImg="${user.avatar}"/>
            <#input id="birthday" name="生日" underline="true" type="text" value="${user.birthday}"/>
            <#select id="sex" name="性别" underline="true" >
            <option value="1" >男</option>
            <option value="2">女</option>
        </#select>
        <#input id="idCard" name="身份证号" type="text" underline="true" value="${user.idCard}"/>
        <#select id="roleid" name="角色" underline="true" >
        @for(l in list){
        <option value="${l.id}" ${l.id == user.roleid ? 'selected=selected' : ''}>${l.name}</option>
        @}
    </#select>
        </div>
    </div>
</div>
<!-- 这是部门选择的下拉框 -->
<div id="menuContent" class="menuContent"
     style="display: none; position: absolute; z-index: 200;">
    <ul id="treeDemo" class="ztree tree-box" style="width: 249px !important;"></ul>
</div>
<div class="row btn-group-m-t">
    <div class="col-sm-10">
        <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="UserInfoDlg.editSubmit()"/>
        <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="UserInfoDlg.close()"/>
    </div>
</div>
</div>
</div>
</div>
<script src="${ctxPath}/modular/system/user/user_info.js"></script>
<script>
    laydate.render({
        elem: '#birthday'
    });
</script>
@}
cloud-server-management/src/main/webapp/static/modular/system/user/user.js
@@ -288,7 +288,7 @@
    if (this.check()) {
        var userId = this.seItem.id;
        if(language==1){
            parent.layer.confirm('是否重置密码为111111?', {
            parent.layer.confirm('是否重置密码为a123456?', {
                btn: ['确定', '取消'],
                shade: false //不显示遮罩
            }, function () {
cloud-server-management/src/main/webapp/static/modular/system/user/user_info.js
@@ -1,14 +1,14 @@
/**
 * 用户详情对话框(可用于添加和修改对话框)
 */
var language =$("#language").val()
var language =1
var UserInfoDlg = {
    userInfoData: {},
    validateFields: {
        account: {
        phone: {
            validators: {
                notEmpty: {
                    message: language==1?'账户不能为空':(language==2?"The account cannot be empty":"Akaun tidak dapat kosong")
                    message: language==1?'联系电话不能为空':(language==2?"The account cannot be empty":"Akaun tidak dapat kosong")
                }
            }
        },
@@ -26,25 +26,17 @@
                }
            }
        },*/
        password: {
        birthday: {
            validators: {
                notEmpty: {
                    message: '密码不能为空'
                },
                regexp: {
                    regexp: /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/,
                    message: '密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符'
                    message: '生日不能为空'
                },
            }
        },
        rePassword: {
        idCard: {
            validators: {
                notEmpty: {
                    message: '密码不能为空'
                },
                regexp: {
                    regexp: /(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])(?=.*[^a-zA-Z0-9]).{8,30}/,
                    message: '密码中必须包含大小字母、数字、特称字符,至少8个字符,最多30个字符'
                    message: '身份证号不能为空'
                },
            }
        }
@@ -169,7 +161,7 @@
 */
UserInfoDlg.collectData = function () {
    this.set('id').set('account').set('sex').set('password').set('avatar')
        .set('email').set('name').set('birthday').set('rePassword').set('deptid').set('phone');
        .set('email').set('name').set('birthday').set('rePassword').set('roleid').set('phone').set('idCard');
};
/**
@@ -208,32 +200,22 @@
    var birthday = $("#birthday").val();
    if ("" == birthday){
        if(language==1){
            Feng.info("出生日期不能为空!");
        }else if(language==2){
            Feng.info("The date of birth cannot be empty!");
        }else {
            Feng.info("Tanggal lahir tidak bisa kosong!");
        }
    var avatar = $("#avatar").val();
    if(avatar==''){
        Feng.info("请上传照片")
        return;
    }
    var citySel = $("#citySel").val();
    if ("" == citySel){
        if(language==1){
            Feng.info("部门不能为空!");
        }else if(language==2){
            Feng.info("The department cannot be empty!");
        }else {
            Feng.info("Departemen tidak bisa kosong!");
        }
    var sex = $("#sex").val();
    if(sex==''){
        Feng.info("请选择性别")
        return;
    }
    var roleid = $("#roleid").val();
    if(roleid==''){
        Feng.info("请选择角色")
        return;
    }
    console.log(this.userInfoData)
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/mgr/add", function (data) {
          Feng.success("添加成功!");
@@ -260,30 +242,8 @@
    if (!this.validate()) {
        return;
    }
    console.log(this.userInfoData)
    var birthday = $("#birthday").val();
    if ("" == birthday){
        if(language==1){
            Feng.info("出生日期不能为空!");
        }else if(language==2){
            Feng.info("The date of birth cannot be empty!");
        }else {
            Feng.info("Tanggal lahir tidak bisa kosong!");
        }
        return;
    }
    var citySel = $("#citySel").val();
    if ("" == citySel){
        if(language==1){
            Feng.info("部门不能为空!");
        }else if(language==2){
            Feng.info("The department cannot be empty!");
        }else {
            Feng.info("Departemen tidak bisa kosong!");
        }
        return;
    }
    //提交信息
    var ajax = new $ax(Feng.ctxPath + "/mgr/edit", function (data) {
@@ -368,4 +328,5 @@
    avatarUp.setUploadBarId("progressBar");
    avatarUp.init();
    document.getElementById('roleid').value = $("#roleid_").val();
});
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -358,8 +358,6 @@
    }
    @ResponseBody
    @PostMapping("/api/site/queryMySite")
    @ApiOperation(value = "获取我的预约场地列表", tags = {"用户—预约场地"})
cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -129,13 +129,14 @@
                info.setLongitude(storeLon);
                storeInfos.add(info);
            }
            Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() {
                @Override
                public int compare(StoreInfo store1, StoreInfo store2) {
                    return Long.compare(store1.getDistance(), store2.getDistance());
                }
            };
            Collections.sort(storeInfos, distanceComparator);
//            Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() {
//                @Override
//                public int compare(StoreInfo store1, StoreInfo store2) {
//                    return Long.compare(store1.getDistance(), store2.getDistance());
//                }
//            };
//            Collections.sort(storeInfos, distanceComparator);
            storeInfos = storeInfos.stream().sorted(Comparator.comparing(StoreInfo::getDistance)).collect(Collectors.toList());
        }
        return storeInfos;
    }
@@ -433,9 +434,9 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "城市code", name = "cityCode", dataType = "string", required = true),
    })
    public ResultUtil<List<BaseVo>> queryStoreByCityCode(String cityCode){
    public ResultUtil<List<BaseVo>> queryStoreByCityCode(String provinceCode,String cityCode){
        try {
            List<BaseVo> list = storeService.queryStoreByCityCode(cityCode);
            List<BaseVo> list = storeService.queryStoreByCityCode(provinceCode,cityCode);
            return ResultUtil.success(list);
        }catch (Exception e){
            e.printStackTrace();
cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java
@@ -43,7 +43,7 @@
     * @param cityCode
     * @return
     */
    List<BaseVo> queryStoreByCityCode(@Param("cityCode") String cityCode);
    List<BaseVo> queryStoreByCityCode(@Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode);
    /**
     * 根据城市管理员id获取门店集合
cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java
@@ -64,7 +64,7 @@
     * @return
     * @throws Exception
     */
    List<BaseVo> queryStoreByCityCode(String cityCode) throws Exception;
    List<BaseVo> queryStoreByCityCode(String provinceCode,String cityCode) throws Exception;
    List<Store> getStoreByCityManagerId(Integer id);
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java
@@ -623,7 +623,6 @@
            Site site = this.getById(siteBooking.getSiteId());
            String[] split = siteBooking.getTimes().split(";");
            if(site!=null){
                queryMySiteVo.setPlayPaiCoin(site.getPlayPaiCoin() * split.length);
            }
        }
cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java
@@ -167,8 +167,8 @@
     * @throws Exception
     */
    @Override
    public List<BaseVo> queryStoreByCityCode(String cityCode) throws Exception {
        return this.baseMapper.queryStoreByCityCode(cityCode);
    public List<BaseVo> queryStoreByCityCode(String provinceCode,String cityCode) throws Exception {
        return this.baseMapper.queryStoreByCityCode(provinceCode,cityCode);
    }
cloud-server-other/src/main/resources/mapper/SiteMapper.xml
@@ -133,7 +133,7 @@
            <if test="query.opId!=null ">
                and t1.operatorId =#{query.opId}
            </if>
            and t1.state != 3
            and t1.state != 3 and t1.sign=0
        </where>
        ORDER BY insertTime desc
cloud-server-other/src/main/resources/mapper/StoreMapper.xml
@@ -17,7 +17,12 @@
    </select>
    <select id="queryStoreByCityCode" resultType="com.dsh.other.model.BaseVo">
        select id, name from t_store where state = 1 and cityCode = #{cityCode}
        select id, name from t_store where state = 1
        and provinceCode = #{provinceCode}
        <if test="cityCode !=null and cityCode !='' ">
            and cityCode = #{cityCode}
        </if>
    </select>
    <select id="getStoreByCityManagerId" resultType="com.dsh.other.entity.Store">
        select * from t_store where operatorId = #{id}