Browse Source

Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_his_scrm_java

caoliqin 2 tuần trước cách đây
mục cha
commit
1f70075284
19 tập tin đã thay đổi với 251 bổ sung31 xóa
  1. 4 0
      fs-admin/src/main/java/com/fs/company/controller/CompanyUserAllController.java
  2. 35 0
      fs-admin/src/main/java/com/fs/course/controller/FsUserCourseCategoryController.java
  3. 3 3
      fs-admin/src/main/java/com/fs/hisStore/task/LiveTask.java
  4. 1 1
      fs-admin/src/main/java/com/fs/qw/controller/QwExternalContactController.java
  5. 8 1
      fs-live-app/src/main/resources/application.yml
  6. 14 0
      fs-service/src/main/java/com/fs/course/dto/FsCourseCategoryImportDTO.java
  7. 12 0
      fs-service/src/main/java/com/fs/course/mapper/FsUserCourseCategoryMapper.java
  8. 8 0
      fs-service/src/main/java/com/fs/course/service/IFsUserCourseCategoryService.java
  9. 89 1
      fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseCategoryServiceImpl.java
  10. 2 0
      fs-service/src/main/java/com/fs/his/service/IFsUserService.java
  11. 5 0
      fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java
  12. 1 1
      fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderScrmMapper.java
  13. 1 1
      fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreProductScrmMapper.java
  14. 3 0
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java
  15. 0 2
      fs-service/src/main/java/com/fs/hisStore/vo/FsStoreProductListVO.java
  16. 2 0
      fs-service/src/main/java/com/fs/live/service/ILiveOrderService.java
  17. 8 0
      fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java
  18. 1 0
      fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml
  19. 54 21
      fs-user-app/src/main/java/com/fs/app/controller/AppLoginController.java

+ 4 - 0
fs-admin/src/main/java/com/fs/company/controller/CompanyUserAllController.java

@@ -415,6 +415,8 @@ public class CompanyUserAllController extends BaseController {
     /**
      * 批量修改 销售的所属区域(临时的)
      */
+    @PreAuthorize("@ss.hasPermi('company:user:updateCompanyUserAreaList')")
+    @Log(title = "用户管理", businessType = BusinessType.UPDATE)
     @PostMapping("/updateCompanyUserAreaList")
     public R updateCompanyUserAreaList(@RequestBody CompanyUserAreaParam param)
     {
@@ -432,6 +434,7 @@ public class CompanyUserAllController extends BaseController {
         return  R.ok().put("data",subDomain);
     }
 
+    @PreAuthorize("@ss.hasPermi('company:user:setRegister')")
     @Log(title = "设置是否需要单独注册会员", businessType = BusinessType.UPDATE)
     @PutMapping("/setRegister")
     public AjaxResult setIsRegisterMember(@RequestParam Boolean status, @RequestBody List<Long> userIds) {
@@ -443,6 +446,7 @@ public class CompanyUserAllController extends BaseController {
         }
     }
 
+    @PreAuthorize("@ss.hasPermi('company:user:allowedAllRegister')")
     @Log(title = "是否允许所有方式注册会员", businessType = BusinessType.UPDATE)
     @PutMapping("/allowedAllRegister")
     public AjaxResult isAllowedAllRegister(@RequestParam Boolean status, @RequestBody List<Long> userIds) {

+ 35 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCourseCategoryController.java

@@ -5,6 +5,7 @@ import java.util.List;
 import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.utils.ServletUtils;
+import com.fs.course.dto.FsCourseCategoryImportDTO;
 import com.fs.framework.web.service.TokenService;
 import com.fs.his.domain.FsStoreProductCategory;
 import com.fs.his.vo.FsStoreProductCategoryVO;
@@ -33,6 +34,7 @@ import com.fs.course.domain.FsUserCourseCategory;
 import com.fs.course.service.IFsUserCourseCategoryService;
 import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 /**
  * 课堂分类Controller
@@ -174,4 +176,37 @@ public class FsUserCourseCategoryController extends BaseController
         List<OptionsVO> list = fsUserCourseCategoryService.selectCateListByPid(pid);
         return R.ok().put("data", list);
     }
+
+    // 下载模板
+    @GetMapping("/importTemplate")
+    public AjaxResult importTemplate() {
+        ExcelUtil<FsCourseCategoryImportDTO> util = new ExcelUtil<>(FsCourseCategoryImportDTO.class);
+        return util.importTemplateExcel("课堂分类导入模板");
+    }
+
+    @Log(title = "导入", businessType = BusinessType.IMPORT)
+    @PreAuthorize("@ss.hasPermi('course:userCourseCategory:importData')")
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file) throws Exception {
+        ExcelUtil<FsCourseCategoryImportDTO> util = new ExcelUtil<>(FsCourseCategoryImportDTO.class);
+        List<FsCourseCategoryImportDTO> list = util.importExcel(file.getInputStream());
+
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        Long userId = loginUser.getUser().getUserId();
+        String json = configService.selectConfigByKey("course.config");
+        CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
+        if (ObjectUtil.isEmpty(config.getIsBound()) || !config.getIsBound()){
+            userId = null;
+        }
+
+        return AjaxResult.success(fsUserCourseCategoryService.importData(list, userId));
+    }
+
+    @PreAuthorize("@ss.hasPermi('course:userCourseCategory:exportFail')")
+    @Log(title = "课堂分类", businessType = BusinessType.EXPORT)
+    @PostMapping("/exportFail")
+    public AjaxResult exportFail(@RequestBody List<FsCourseCategoryImportDTO> list) {
+        ExcelUtil<FsCourseCategoryImportDTO> util = new ExcelUtil<>(FsCourseCategoryImportDTO.class);
+        return util.exportExcel(list, "课堂分类错误数据");
+    }
 }

+ 3 - 3
fs-admin/src/main/java/com/fs/hisStore/task/LiveTask.java

@@ -331,10 +331,10 @@ public class LiveTask {
     public void deliveryOp() {
         List<LiveOrder> list = liveOrderService.selectUpdateExpress();
         if(list == null || list.isEmpty()) return;
-
+        Date now = new Date();
         for (LiveOrder order : list) {
-            order.setUpdateTime(new Date());
-            liveOrderService.updateLiveOrder(order);
+            order.setUpdateTime(now);
+            liveOrderService.updateTime(order);
             ErpOrderQueryRequert request = new ErpOrderQueryRequert();
             request.setCode(order.getExtendOrderId());
             IErpOrderService erpOrderService = getErpOrderService();

+ 1 - 1
fs-admin/src/main/java/com/fs/qw/controller/QwExternalContactController.java

@@ -170,7 +170,7 @@ public class QwExternalContactController extends BaseController
     {
         return toAjax(qwExternalContactService.deleteQwExternalContactByIds(ids));
     }
-
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:getUserInfo')")
     @GetMapping(value = "getUserInfo/{id}")
     public R getUserInfo(@PathVariable("id") Long id)
     {

+ 8 - 1
fs-live-app/src/main/resources/application.yml

@@ -2,8 +2,15 @@
 server:
   # 服务器的HTTP端口,默认为
   port: 7114
+  tomcat:
+    max-connections: 1000000
+    max-threads: 32
+    connection-timeout: 600000
+    accept-count: 10000
+  compression:
+    enabled: true
 
 # Spring配置
 spring:
   profiles:
-    active: dev-test
+    active: druid-bjzm-test

+ 14 - 0
fs-service/src/main/java/com/fs/course/dto/FsCourseCategoryImportDTO.java

@@ -0,0 +1,14 @@
+package com.fs.course.dto;
+
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class FsCourseCategoryImportDTO {
+
+    @Excel(name = "父分类")
+    private String rootCate;
+
+    @Excel(name = "子分类")
+    private String subCate;
+}

+ 12 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCourseCategoryMapper.java

@@ -101,4 +101,16 @@ public interface FsUserCourseCategoryMapper
 
     @Select("select cate_id dict_value, cate_name dict_label  from fs_user_course_category WHERE pid = 0 and is_del=0 ")
     List<OptionsVO> selectAllFsUserCourseCategoryPidList();
+
+    /**
+     * 根据名称和上级ID查询分类
+     */
+    @Select("select * from fs_user_course_category where cate_name = #{name} and pid = #{parentId} and is_del = 0")
+    FsUserCourseCategory selectFsUserCourseCategoryByNameAndParentId(@Param("name") String name, @Param("parentId") Long parentId);
+
+    /**
+     * 获取序号
+     */
+    @Select("select ifnull(max(sort), 0) + 1 from fs_user_course_category where pid = #{parentId}")
+    Long getSortByParentId(@Param("parentId") Long parentId);
 }

+ 8 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCourseCategoryService.java

@@ -1,7 +1,10 @@
 package com.fs.course.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.fs.course.domain.FsUserCourseCategory;
+import com.fs.course.dto.FsCourseCategoryImportDTO;
 import com.fs.his.vo.OptionsVO;
 
 /**
@@ -68,4 +71,9 @@ public interface IFsUserCourseCategoryService
     List<OptionsVO> selectFsUserCourseCategoryPidList(Long userId);
 
     List<OptionsVO> selectCateListByPid(Long pid);
+
+    /**
+     * 课堂分类导入
+     */
+    Map<String, Object> importData(List<FsCourseCategoryImportDTO> list, Long userId);
 }

+ 89 - 1
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseCategoryServiceImpl.java

@@ -1,8 +1,14 @@
 package com.fs.course.service.impl;
 
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import com.fs.common.exception.CustomException;
 import com.fs.common.utils.DateUtils;
+import com.fs.common.utils.StringUtils;
+import com.fs.course.dto.FsCourseCategoryImportDTO;
 import com.fs.his.vo.OptionsVO;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.fs.course.mapper.FsUserCourseCategoryMapper;
@@ -15,6 +21,7 @@ import com.fs.course.service.IFsUserCourseCategoryService;
  * @author fs
  * @date 2024-05-15
  */
+@Slf4j
 @Service
 public class FsUserCourseCategoryServiceImpl implements IFsUserCourseCategoryService
 {
@@ -118,4 +125,85 @@ public class FsUserCourseCategoryServiceImpl implements IFsUserCourseCategorySer
     public List<OptionsVO> selectCateListByPid(Long pid) {
         return fsUserCourseCategoryMapper.selectCateListByPid(pid);
     }
+
+    /**
+     * 课堂分类导入
+     */
+    @Override
+    public Map<String, Object> importData(List<FsCourseCategoryImportDTO> list, Long userId) {
+        int suCnt = 0;
+        int filCnt = 0;
+        List<FsCourseCategoryImportDTO> failedList = new ArrayList<>();
+
+        if (list == null || list.isEmpty()) {
+            throw new CustomException("导入数据不能为空");
+        }
+
+        Map<String, List<FsCourseCategoryImportDTO>> rootMap = list.stream()
+                .filter(dto -> StringUtils.isNotBlank(dto.getRootCate()))
+                .collect(Collectors.groupingBy(FsCourseCategoryImportDTO::getRootCate));
+        for (Map.Entry<String, List<FsCourseCategoryImportDTO>> entry : rootMap.entrySet()) {
+            if (StringUtils.isBlank(entry.getKey())) {
+                failedList.addAll(entry.getValue());
+                filCnt += entry.getValue().size();
+                continue;
+            }
+
+            String rootCate = entry.getKey().trim();
+            FsUserCourseCategory root = fsUserCourseCategoryMapper.selectFsUserCourseCategoryByNameAndParentId(rootCate, 0L);
+            if (Objects.isNull(root)) {
+                root = new FsUserCourseCategory();
+                root.setPid(0L);
+                root.setCateName(rootCate);
+                root.setSort(fsUserCourseCategoryMapper.getSortByParentId(0L));
+                root.setIsShow(1);
+                root.setCreateTime(new Date());
+                root.setIsDel(0);
+                root.setUserId(userId);
+                fsUserCourseCategoryMapper.insertFsUserCourseCategory(root);
+            }
+
+            Long parentId = root.getCateId();
+            long curSort = fsUserCourseCategoryMapper.getSortByParentId(root.getCateId());
+            List<FsCourseCategoryImportDTO> subList = entry.getValue();
+            for (FsCourseCategoryImportDTO child : subList) {
+                try {
+                    if (StringUtils.isBlank(child.getSubCate())) {
+                        failedList.add(child);
+                        filCnt++;
+                        continue;
+                    }
+
+                    String cateName = child.getSubCate().trim();
+                    FsUserCourseCategory sub = fsUserCourseCategoryMapper.selectFsUserCourseCategoryByNameAndParentId(cateName, parentId);
+                    if (Objects.nonNull(sub)) {
+                        failedList.add(child);
+                        filCnt++;
+                        continue;
+                    }
+
+                    sub = new FsUserCourseCategory();
+                    sub.setPid(parentId);
+                    sub.setCateName(cateName);
+                    sub.setSort(curSort++);
+                    sub.setIsShow(1);
+                    sub.setCreateTime(new Date());
+                    sub.setIsDel(0);
+                    sub.setUserId(userId);
+                    fsUserCourseCategoryMapper.insertFsUserCourseCategory(sub);
+
+                    suCnt++;
+                } catch (Exception e) {
+                    filCnt++;
+                    log.error("导入子分类失败: {}", child, e);
+                }
+            }
+        }
+
+        String message = "导入完成!成功" + suCnt + "条,失败" + filCnt + "条。";
+        Map<String, Object> resp = new HashMap<>();
+        resp.put("message", message);
+        resp.put("failList", failedList);
+        return resp;
+    }
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/service/IFsUserService.java

@@ -98,6 +98,8 @@ public interface IFsUserService
      */
     public int deleteFsUserByUserId(Long userId);
 
+    int realDeleteFsUserByUserId(Long userId);
+
     List<FsUserVO> selectFsUserListVO(FsUserParam fsUser);
 
     FsUser selectFsUserByOpenId(String openId);

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -286,6 +286,11 @@ public class FsUserServiceImpl implements IFsUserService {
         return fsUserMapper.updateFsUserByUserId(userId);
     }
 
+    @Override
+    public int realDeleteFsUserByUserId(Long userId) {
+        return fsUserMapper.deleteFsUserByUserId(userId);
+    }
+
     /**
      * 列表查询
      * @param fsUser

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderScrmMapper.java

@@ -999,7 +999,7 @@ public interface FsStoreOrderScrmMapper
     @Select("select id from fs_store_order_scrm where status = 2  and DATE(pay_time)>='2023-11-1' and DATE(create_time)<='2024-2-7' and company_id is null ")
     List<Long> selectSyncExpressIds();
 
-    @Select("select id from fs_store_order_scrm where status = 2  and DATE(pay_time)>='2025-11-1' ")
+    @Select("select id from fs_store_order_scrm where status = 2  and DATE(pay_time)>='2025-11-1' and delivery_id is not null and delivery_sn is not null")
     List<Long> selectSyncExpressIdsNoDate();
 
 

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreProductScrmMapper.java

@@ -255,7 +255,7 @@ public interface FsStoreProductScrmMapper
     @Update("update fs_store_product_scrm set stock=stock-#{num}, sales=sales+#{num}" +
             " where product_id=#{productId} and stock >= #{num}")
     int decProductAttrStock(@Param("productId")Long productId, @Param("num")Integer cartNum);
-    
+
     /**
      * 使用行锁查询商品库存
      */

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -2747,6 +2747,9 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
             }
         }
         ExpressInfoDTO dto = expressService.getExpressInfo(order.getOrderCode(), order.getDeliverySn(), order.getDeliveryId(), lastFourNumber);
+        if (dto == null || dto.getState() == null || dto.getStateEx() == null) {
+            return null;
+        }
         FsStoreOrderScrm map = new FsStoreOrderScrm();
         map.setDeliveryStatus(Integer.parseInt(dto.getState()));
         map.setId(order.getId());

+ 0 - 2
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreProductListVO.java

@@ -35,7 +35,6 @@ public class FsStoreProductListVO  implements Serializable
 
     /** 产品条码(一维码) */
     private String barCode;
-
     /** 分类id */
     private Long cateId;
 
@@ -116,5 +115,4 @@ public class FsStoreProductListVO  implements Serializable
 
     private String storeId;
     private String storeName;
-
 }

+ 2 - 0
fs-service/src/main/java/com/fs/live/service/ILiveOrderService.java

@@ -270,4 +270,6 @@ public interface ILiveOrderService {
     Long isExistPayedRecord(Long orderId);
 
     void payConfirmPayment(Long existPayedRecordId);
+
+    void updateTime(LiveOrder order);
 }

+ 8 - 0
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java

@@ -3663,6 +3663,14 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
         this.payConfirm(1, null, payment.getPayCode(), payment.getTradeNo(), payment.getBankSerialNo(), payment.getBankSerialNo());
     }
 
+    @Override
+    public void updateTime(LiveOrder order) {
+        LiveOrder liveOrder = new LiveOrder();
+        liveOrder.setOrderId(order.getOrderId());
+        liveOrder.setUpdateTime(order.getUpdateTime());
+        liveOrderMapper.updateLiveOrder(liveOrder);
+    }
+
     public void deStockIncSale(List<FsStoreCartQueryVO> cartInfo) {
         for (FsStoreCartQueryVO storeCartVO : cartInfo) {
             fsStoreProductService.decProductStock(storeCartVO.getProductId(),

+ 1 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -97,6 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         u.is_need_register_member,u.is_allowed_all_register,
         u.avatar,u.address_id,
         u.qw_user_id,
+        u.doctor_id,
         d.dept_name,
         d.leader
         from

+ 54 - 21
fs-user-app/src/main/java/com/fs/app/controller/AppLoginController.java

@@ -277,7 +277,7 @@ public class AppLoginController extends AppBaseController{
                     userMap.setAppId(updatedAppId);
                     userService.updateFsUser(userMap);
                 }
-                
+
                 if (StringUtils.isNotEmpty(param.getJpushId())) {
                     updateExistingUserJpushId(user, param.getJpushId());
                 }
@@ -358,6 +358,7 @@ public class AppLoginController extends AppBaseController{
 
     @ApiOperation("绑定手机号")
     @PostMapping("/setPhone")
+    @Transactional(rollbackFor = Exception.class)
     public R setPhone(@Validated @RequestBody FsUserEditPhoneParam param) {
         logger.info("fcj 绑定手机号入参:{}", param);
         FsUser user = userService.selectFsUserByUnionid(param.getUnionId());
@@ -365,9 +366,20 @@ public class AppLoginController extends AppBaseController{
             return R.error("用户数据不存在");
         }
         FsUser userMap = findUserByPhone(param.getPhone());
-//        if (userMap!=null){
-//            return R.error("该手机号已绑定其他账号");
-//        }
+        //绑定的手机号已存在用户的情况,将微信登录的时候创建的新号的UnionId移动到老号中,删除新号(将两个号合并)
+        if (userMap!=null){
+            if (StringUtils.isNotEmpty(userMap.getUnionId())&&!userMap.getUnionId().equals(user.getUnionId())){
+                return R.error("该手机号已绑定其他微信");
+            }
+            userMap.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
+            userMap.setSource(param.getSource());
+            userMap.setUnionId(user.getUnionId());
+            if (userService.updateFsUser(userMap)>0){
+                userService.realDeleteFsUserByUserId(user.getUserId());
+                return generateTokenAndReturn(userMap);
+            }
+            return R.error("绑定手机号失败");
+        }
         user.setPhone(param.getPhone());
         user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null );
         user.setSource(param.getSource()!= null ? param.getSource() : null);
@@ -384,10 +396,14 @@ public class AppLoginController extends AppBaseController{
 
     @ApiOperation("绑定微信")
     @PostMapping("/bindWeChat")
+    @Transactional(rollbackFor = Exception.class)
     public R bindWeChat(@Validated @RequestBody FsUserEditUnionidParam param) {
         try {
             logger.info("zyp app绑定微信,param:{}", param);
             Map result = WxUtil.getAccessToken(param.getCode(), openProperties.getAppId(), openProperties.getSecret());
+            if (!result.containsKey("access_token")) {
+                return R.error("微信授权失败");
+            }
             String accessToken = result.get("access_token").toString();
             String unionid = result.get("unionid").toString();
             String openid = result.get("openid").toString();
@@ -398,21 +414,38 @@ public class AppLoginController extends AppBaseController{
             FsUser user = findUserByPhone(param.getPhone());
             if (user!=null && StringUtils.isEmpty(user.getUnionId())){
                 FsUser userByUnionId = userMapper.selectFsUserByUnionid(unionid);
-//                if (userByUnionId!=null){
-//                    return R.error("该微信已绑定其他用户,请勿重复绑定!");
-//                }
-                user.setSource(param.getSource() != null ? param.getSource() : null );
-                user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
-                user.setNickName(nickname);
-                user.setAvatar(avatar);
-                user.setSex(sex);
-                user.setUnionId(unionid);
-                if (userService.updateFsUser(user)>0){
-                    return generateTokenAndReturn(user);
+                //绑定的微信已存在用户的情况,将手机号一键登录的时候创建的新号的UnionId移动到老号中,删除新号(将两个号合并)
+                if (userByUnionId!=null){
+                    if (StringUtils.isNotEmpty(userByUnionId.getPhone())&&!user.getPhone().equals(userByUnionId.getPhone())){
+                        return R.error("该微信已绑定其他手机号");
+                    }
+                    userByUnionId.setPhone(user.getPhone());
+                    userByUnionId.setSource(param.getSource() != null ? param.getSource() : null );
+                    userByUnionId.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
+                    userByUnionId.setNickName(nickname);
+                    userByUnionId.setAvatar(avatar);
+                    userByUnionId.setSex(sex);
+                    if (userService.updateFsUser(userByUnionId)>0){
+                        userService.realDeleteFsUserByUserId(user.getUserId());
+                        return generateTokenAndReturn(userByUnionId);
+                    }
+                    else {
+                        return R.error("绑定微信失败");
+                    }
+                }else {
+                    user.setSource(param.getSource() != null ? param.getSource() : null );
+                    user.setLoginDevice(param.getLoginDevice() != null ? param.getLoginDevice() : null);
+                    user.setNickName(nickname);
+                    user.setAvatar(avatar);
+                    user.setSex(sex);
+                    user.setUnionId(unionid);
+                    if (userService.updateFsUser(user)>0){
+                        return generateTokenAndReturn(user);
+                    }
+                    else {
+                        return R.error("绑定微信失败");
+                    }
                 }
-//                else {
-//                    return R.error("绑定微信失败");
-//                }
             }
             return R.error("数据参数异常!");
         }catch (Exception e){
@@ -736,12 +769,12 @@ public class AppLoginController extends AppBaseController{
         if (StringUtils.isEmpty(newAppId)) {
             return currentAppIds == null ? "" : currentAppIds;
         }
-        
+
         // 如果当前appId为空,直接返回新appId
         if (StringUtils.isEmpty(currentAppIds)) {
             return newAppId;
         }
-        
+
         // 检查是否已存在
         String[] appIdArray = currentAppIds.split(",");
         for (String appId : appIdArray) {
@@ -750,7 +783,7 @@ public class AppLoginController extends AppBaseController{
                 return currentAppIds;
             }
         }
-        
+
         // 不存在,追加到末尾
         return currentAppIds + "," + newAppId;
     }